// 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.
import Foundation
// InMageAzureV2ReplicationDetailsProtocol is inMageAzureV2 provider specific settings
public protocol InMageAzureV2ReplicationDetailsProtocol : ReplicationProviderSpecificSettingsProtocol {
     var infrastructureVmId: String? { get set }
     var vCenterInfrastructureId: String? { get set }
     var protectionStage: String? { get set }
     var vmId: String? { get set }
     var vmProtectionState: String? { get set }
     var vmProtectionStateDescription: String? { get set }
     var resyncProgressPercentage: Int32? { get set }
     var rpoInSeconds: Int64? { get set }
     var compressedDataRateInMB: Double? { get set }
     var uncompressedDataRateInMB: Double? { get set }
     var ipAddress: String? { get set }
     var agentVersion: String? { get set }
     var agentExpiryDate: Date? { get set }
     var isAgentUpdateRequired: String? { get set }
     var isRebootAfterUpdateRequired: String? { get set }
     var lastHeartbeat: Date? { get set }
     var processServerId: String? { get set }
     var multiVmGroupId: String? { get set }
     var multiVmGroupName: String? { get set }
     var multiVmSyncStatus: String? { get set }
     var protectedDisks: [InMageAzureV2ProtectedDiskDetailsProtocol?]? { get set }
     var diskResized: String? { get set }
     var masterTargetId: String? { get set }
     var sourceVmCpuCount: Int32? { get set }
     var sourceVmRamSizeInMB: Int32? { get set }
     var osType: String? { get set }
     var vhdName: String? { get set }
     var osDiskId: String? { get set }
     var azureVMDiskDetails: [AzureVmDiskDetailsProtocol?]? { get set }
     var recoveryAzureVMName: String? { get set }
     var recoveryAzureVMSize: String? { get set }
     var recoveryAzureStorageAccount: String? { get set }
     var recoveryAzureLogStorageAccountId: String? { get set }
     var vmNics: [VMNicDetailsProtocol?]? { get set }
     var selectedRecoveryAzureNetworkId: String? { get set }
     var selectedSourceNicId: String? { get set }
     var discoveryType: String? { get set }
     var enableRdpOnTargetOption: String? { get set }
     var datastores: [String]? { get set }
     var targetVmId: String? { get set }
     var recoveryAzureResourceGroupId: String? { get set }
     var recoveryAvailabilitySetId: String? { get set }
     var useManagedDisks: String? { get set }
     var licenseType: String? { get set }
     var validationErrors: [HealthErrorProtocol?]? { get set }
     var lastRpoCalculatedTime: Date? { get set }
     var lastUpdateReceivedTime: Date? { get set }
     var replicaId: String? { get set }
     var osVersion: String? { get set }
}


// 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.
import Foundation
// InMageAzureV2ReprotectInputProtocol is inMageAzureV2 specific provider input.
public protocol InMageAzureV2ReprotectInputProtocol : ReverseReplicationProviderSpecificInputProtocol {
     var masterTargetId: String? { get set }
     var processServerId: String? { get set }
     var storageAccountId: String? { get set }
     var runAsAccountId: String? { get set }
     var policyId: String? { get set }
     var logStorageAccountId: String? { get set }
     var disksToInclude: [String]? { get set }
}


// 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.
import Foundation
// InMageAzureV2UpdateReplicationProtectedItemInputProtocol is inMage Azure V2 input to update replication protected
// item.
public protocol InMageAzureV2UpdateReplicationProtectedItemInputProtocol : UpdateReplicationProtectedItemProviderInputProtocol {
     var recoveryAzureV1ResourceGroupId: String? { get set }
     var recoveryAzureV2ResourceGroupId: String? { get set }
     var useManagedDisks: String? { get set }
}


// 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.
import Foundation
// InMageBasePolicyDetailsProtocol is base class for the policies of providers using InMage replication.
public protocol InMageBasePolicyDetailsProtocol : PolicyProviderSpecificDetailsProtocol {
     var recoveryPointThresholdInMinutes: Int32? { get set }
     var recoveryPointHistory: Int32? { get set }
     var appConsistentFrequencyInMinutes: Int32? { get set }
     var multiVmSyncStatus: String? { get set }
}


// 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.
import Foundation
// InMageDisableProtectionProviderSpecificInputProtocol is inMage disable protection provider specific input.
public protocol InMageDisableProtectionProviderSpecificInputProtocol : DisableProtectionProviderSpecificInputProtocol {
     var replicaVmDeletionStatus: String? { get set }
}


// 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.
import Foundation
// InMageDiskDetailsProtocol is vMware/Physical specific Disk Details
public protocol InMageDiskDetailsProtocol : Codable {
     var diskId: String? { get set }
     var diskName: String? { get set }
     var diskSizeInMB: String? { get set }
     var diskType: String? { get set }
     var diskConfiguration: String? { get set }
     var volumeList: [DiskVolumeDetailsProtocol?]? { get set }
}


// 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.
import Foundation
// InMageDiskExclusionInputProtocol is diskExclusionInput when doing enable protection of virtual machine in InMage
// provider.
public protocol InMageDiskExclusionInputProtocol : Codable {
     var volumeOptions: [InMageVolumeExclusionOptionsProtocol?]? { get set }
     var diskSignatureOptions: [InMageDiskSignatureExclusionOptionsProtocol?]? { get set }
}


// 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.
import Foundation
// InMageDiskSignatureExclusionOptionsProtocol is guest disk signature based disk exclusion option when doing enable
// protection of virtual machine in InMage provider.
public protocol InMageDiskSignatureExclusionOptionsProtocol : Codable {
     var diskSignature: String? { get set }
}


// 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.
import Foundation
// InMageEnableProtectionInputProtocol is vMware Azure specific enable protection input.
public protocol InMageEnableProtectionInputProtocol : EnableProtectionProviderSpecificInputProtocol {
     var vmFriendlyName: String? { get set }
     var masterTargetId: String { get set }
     var processServerId: String { get set }
     var retentionDrive: String { get set }
     var runAsAccountId: String? { get set }
     var multiVmGroupId: String { get set }
     var multiVmGroupName: String { get set }
     var datastoreName: String? { get set }
     var diskExclusionInput: InMageDiskExclusionInputProtocol? { get set }
     var disksToInclude: [String]? { get set }
}


// 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.
import Foundation
// InMageFailoverProviderInputProtocol is provider specific input for InMage failover.
public protocol InMageFailoverProviderInputProtocol : ProviderSpecificFailoverInputProtocol {
     var recoveryPointType: RecoveryPointTypeEnum? { get set }
     var recoveryPointId: String? { get set }
}


// 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.
import Foundation
// InMagePolicyDetailsProtocol is inMage specific protection profile details.
public protocol InMagePolicyDetailsProtocol : PolicyProviderSpecificDetailsProtocol {
     var recoveryPointThresholdInMinutes: Int32? { get set }
     var recoveryPointHistory: Int32? { get set }
     var appConsistentFrequencyInMinutes: Int32? { get set }
     var multiVmSyncStatus: String? { get set }
}


// 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.
import Foundation
// InMagePolicyInputProtocol is vMWare Azure specific protection profile Input.
public protocol InMagePolicyInputProtocol : PolicyProviderSpecificInputProtocol {
     var recoveryPointThresholdInMinutes: Int32? { get set }
     var recoveryPointHistory: Int32? { get set }
     var appConsistentFrequencyInMinutes: Int32? { get set }
     var multiVmSyncStatus: SetMultiVmSyncStatusEnum { get set }
}


// 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.
import Foundation
// InMageProtectedDiskDetailsProtocol is inMage protected disk details.
public protocol InMageProtectedDiskDetailsProtocol : Codable {
     var diskId: String? { get set }
     var diskName: String? { get set }
     var protectionStage: String? { get set }
     var healthErrorCode: String? { get set }
     var rpoInSeconds: Int64? { get set }
     var resyncRequired: String? { get set }
     var resyncProgressPercentage: Int32? { get set }
     var resyncDurationInSeconds: Int64? { get set }
     var diskCapacityInBytes: Int64? { get set }
     var fileSystemCapacityInBytes: Int64? { get set }
     var sourceDataInMB: Double? { get set }
     var psDataInMB: Double? { get set }
     var targetDataInMB: Double? { get set }
     var diskResized: String? { get set }
     var lastRpoCalculatedTime: Date? { get set }
}


// 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.
import Foundation
// InMageReplicationDetailsProtocol is inMage provider specific settings
public protocol InMageReplicationDetailsProtocol : ReplicationProviderSpecificSettingsProtocol {
     var activeSiteType: String? { get set }
     var sourceVmCpuCount: Int32? { get set }
     var sourceVmRamSizeInMB: Int32? { get set }
     var osDetails: OSDiskDetailsProtocol? { get set }
     var protectionStage: String? { get set }
     var vmId: String? { get set }
     var vmProtectionState: String? { get set }
     var vmProtectionStateDescription: String? { get set }
     var resyncDetails: InitialReplicationDetailsProtocol? { get set }
     var retentionWindowStart: Date? { get set }
     var retentionWindowEnd: Date? { get set }
     var compressedDataRateInMB: Double? { get set }
     var uncompressedDataRateInMB: Double? { get set }
     var rpoInSeconds: Int64? { get set }
     var protectedDisks: [InMageProtectedDiskDetailsProtocol?]? { get set }
     var ipAddress: String? { get set }
     var lastHeartbeat: Date? { get set }
     var processServerId: String? { get set }
     var masterTargetId: String? { get set }
     var consistencyPoints: [String:Date]? { get set }
     var diskResized: String? { get set }
     var rebootAfterUpdateStatus: String? { get set }
     var multiVmGroupId: String? { get set }
     var multiVmGroupName: String? { get set }
     var multiVmSyncStatus: String? { get set }
     var agentDetails: InMageAgentDetailsProtocol? { get set }
     var vCenterInfrastructureId: String? { get set }
     var infrastructureVmId: String? { get set }
     var vmNics: [VMNicDetailsProtocol?]? { get set }
     var discoveryType: String? { get set }
     var azureStorageAccountId: String? { get set }
     var datastores: [String]? { get set }
     var validationErrors: [HealthErrorProtocol?]? { get set }
     var lastRpoCalculatedTime: Date? { get set }
     var lastUpdateReceivedTime: Date? { get set }
     var replicaId: String? { get set }
     var osVersion: String? { get set }
}


// 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.
import Foundation
// InMageReprotectInputProtocol is inMageAzureV2 specific provider input.
public protocol InMageReprotectInputProtocol : ReverseReplicationProviderSpecificInputProtocol {
     var masterTargetId: String { get set }
     var processServerId: String { get set }
     var retentionDrive: String { get set }
     var runAsAccountId: String? { get set }
     var datastoreName: String? { get set }
     var diskExclusionInput: InMageDiskExclusionInputProtocol? { get set }
     var profileId: String { get set }
     var disksToInclude: [String]? { get set }
}


// 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.
import Foundation
// InMageVolumeExclusionOptionsProtocol is guest disk signature based disk exclusion option when doing enable
// protection of virtual machine in InMage provider.
public protocol InMageVolumeExclusionOptionsProtocol : Codable {
     var volumeLabel: String? { get set }
     var onlyExcludeIfSingleVolume: String? { get set }
}


// 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.
import Foundation
// InnerHealthErrorProtocol is implements InnerHealthError class. HealthError object has a list of InnerHealthErrors as
// child errors. InnerHealthError is used because this will prevent an infinite loop of structures when Hydra tries to
// auto-generate the contract. We are exposing the related health errors as inner health errors and all API consumers
// can utilize this in the same fashion as Exception -> InnerException.
public protocol InnerHealthErrorProtocol : Codable {
     var errorSource: String? { get set }
     var errorType: String? { get set }
     var errorLevel: String? { get set }
     var errorCategory: String? { get set }
     var errorCode: String? { get set }
     var summaryMessage: String? { get set }
     var errorMessage: String? { get set }
     var possibleCauses: String? { get set }
     var recommendedAction: String? { get set }
     var creationTimeUtc: Date? { get set }
     var recoveryProviderErrorMessage: String? { get set }
     var entityId: String? { get set }
}


// 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.
import Foundation
// InputEndpointProtocol is azure VM input endpoint details.
public protocol InputEndpointProtocol : Codable {
     var endpointName: String? { get set }
     var privatePort: Int32? { get set }
     var publicPort: Int32? { get set }
     var _protocol: String? { get set }
}


// 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.
import Foundation
// JobCollectionProtocol is collection of jobs.
public protocol JobCollectionProtocol : Codable {
     var value: [JobProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// JobDetailsProtocol is job details based on specific job type.
public protocol JobDetailsProtocol : Codable {
     var affectedObjectDetails: [String:String]? { get set }
}


// 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.
import Foundation
// JobEntityProtocol is this class contains the minimal job details required to navigate to the desired drill down.
public protocol JobEntityProtocol : Codable {
     var jobId: String? { get set }
     var jobFriendlyName: String? { get set }
     var targetObjectId: String? { get set }
     var targetObjectName: String? { get set }
     var targetInstanceType: String? { get set }
     var jobScenarioName: String? { get set }
}


// 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.
import Foundation
// JobErrorDetailsProtocol is this class contains the error details per object.
public protocol JobErrorDetailsProtocol : Codable {
     var serviceErrorDetails: ServiceErrorProtocol? { get set }
     var providerErrorDetails: ProviderErrorProtocol? { get set }
     var errorLevel: String? { get set }
     var creationTime: Date? { get set }
     var taskId: String? { get set }
}


// 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.
import Foundation
// JobPropertiesProtocol is job custom data details.
public protocol JobPropertiesProtocol : Codable {
     var activityId: String? { get set }
     var scenarioName: String? { get set }
     var friendlyName: String? { get set }
     var state: String? { get set }
     var stateDescription: String? { get set }
     var tasks: [ASRTaskProtocol?]? { get set }
     var errors: [JobErrorDetailsProtocol?]? { get set }
     var startTime: Date? { get set }
     var endTime: Date? { get set }
     var allowedActions: [String]? { get set }
     var targetObjectId: String? { get set }
     var targetObjectName: String? { get set }
     var targetInstanceType: String? { get set }
     var customDetails: JobDetailsProtocol? { get set }
}


// 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.
import Foundation
// JobProtocol is job details.
public protocol JobProtocol : ResourceProtocol {
     var properties: JobPropertiesProtocol? { get set }
}


// 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.
import Foundation
// JobQueryParameterProtocol is query parameter to enumerate jobs.
public protocol JobQueryParameterProtocol : Codable {
     var startTime: String? { get set }
     var endTime: String? { get set }
     var fabricId: String? { get set }
     var affectedObjectTypes: [String]? { get set }
     var jobStatus: [String]? { get set }
}


// 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.
import Foundation
// JobStatusEventDetailsProtocol is model class for event details of a job status event.
public protocol JobStatusEventDetailsProtocol : EventSpecificDetailsProtocol {
     var jobId: String? { get set }
     var jobFriendlyName: String? { get set }
     var jobStatus: String? { get set }
     var affectedObjectType: String? { get set }
}


// 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.
import Foundation
// JobTaskDetailsProtocol is this class represents a task which is actually a workflow so that one can navigate to its
// individual drill down.
public protocol JobTaskDetailsProtocol : TaskTypeDetailsProtocol {
     var jobTask: JobEntityProtocol? { get set }
}


// 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.
import Foundation
// LogicalNetworkCollectionProtocol is list of logical networks.
public protocol LogicalNetworkCollectionProtocol : Codable {
     var value: [LogicalNetworkProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// LogicalNetworkPropertiesProtocol is logical Network Properties.
public protocol LogicalNetworkPropertiesProtocol : Codable {
     var friendlyName: String? { get set }
     var networkVirtualizationStatus: String? { get set }
     var logicalNetworkUsage: String? { get set }
     var logicalNetworkDefinitionsStatus: String? { get set }
}


// 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.
import Foundation
// LogicalNetworkProtocol is logical network data model.
public protocol LogicalNetworkProtocol : ResourceProtocol {
     var properties: LogicalNetworkPropertiesProtocol? { get set }
}


// 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.
import Foundation
// ManualActionTaskDetailsProtocol is this class represents the manual action task details.
public protocol ManualActionTaskDetailsProtocol : TaskTypeDetailsProtocol {
     var name: String? { get set }
     var instructions: String? { get set }
     var observation: String? { get set }
}


// 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.
import Foundation
// MasterTargetServerProtocol is details of a Master Target Server.
public protocol MasterTargetServerProtocol : Codable {
     var id: String? { get set }
     var ipAddress: String? { get set }
     var name: String? { get set }
     var osType: String? { get set }
     var agentVersion: String? { get set }
     var lastHeartbeat: Date? { get set }
     var versionStatus: String? { get set }
     var retentionVolumes: [RetentionVolumeProtocol?]? { get set }
     var dataStores: [DataStoreProtocol?]? { get set }
     var validationErrors: [HealthErrorProtocol?]? { get set }
     var healthErrors: [HealthErrorProtocol?]? { get set }
     var diskCount: Int32? { get set }
     var osVersion: String? { get set }
     var agentExpiryDate: Date? { get set }
     var marsAgentVersion: String? { get set }
     var marsAgentExpiryDate: Date? { get set }
     var agentVersionDetails: VersionDetailsProtocol? { get set }
     var marsAgentVersionDetails: VersionDetailsProtocol? { get set }
}


// 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.
import Foundation
// MobilityServiceUpdateProtocol is the Mobility Service update details.
public protocol MobilityServiceUpdateProtocol : Codable {
     var version: String? { get set }
     var rebootStatus: String? { get set }
     var osType: String? { get set }
}


// 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.
import Foundation
// NetworkCollectionProtocol is list of networks.
public protocol NetworkCollectionProtocol : Codable {
     var value: [NetworkProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// NetworkMappingCollectionProtocol 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.
public protocol NetworkMappingCollectionProtocol : Codable {
     var value: [NetworkMappingProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// NetworkMappingFabricSpecificSettingsProtocol is network Mapping fabric specific settings.
public protocol NetworkMappingFabricSpecificSettingsProtocol : Codable {
}


// 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.
import Foundation
// NetworkMappingPropertiesProtocol is network Mapping Properties.
public protocol NetworkMappingPropertiesProtocol : Codable {
     var state: String? { get set }
     var primaryNetworkFriendlyName: String? { get set }
     var primaryNetworkId: String? { get set }
     var primaryFabricFriendlyName: String? { get set }
     var recoveryNetworkFriendlyName: String? { get set }
     var recoveryNetworkId: String? { get set }
     var recoveryFabricArmId: String? { get set }
     var recoveryFabricFriendlyName: String? { get set }
     var fabricSpecificSettings: NetworkMappingFabricSpecificSettingsProtocol? { get set }
}


// 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.
import Foundation
// NetworkMappingProtocol 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.
public protocol NetworkMappingProtocol : ResourceProtocol {
     var properties: NetworkMappingPropertiesProtocol? { get set }
}


// 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.
import Foundation
// NetworkPropertiesProtocol is network Properties
public protocol NetworkPropertiesProtocol : Codable {
     var fabricType: String? { get set }
     var subnets: [SubnetProtocol?]? { get set }
     var friendlyName: String? { get set }
     var networkType: String? { get set }
}


// 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.
import Foundation
// NetworkProtocol is network model.
public protocol NetworkProtocol : ResourceProtocol {
     var properties: NetworkPropertiesProtocol? { get set }
}


// 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.
import Foundation
// OperationsDiscoveryCollectionProtocol is collection of ClientDiscovery details.
public protocol OperationsDiscoveryCollectionProtocol : Codable {
     var value: [OperationsDiscoveryProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// OperationsDiscoveryProtocol is operations discovery class.
public protocol OperationsDiscoveryProtocol : Codable {
     var name: String? { get set }
     var display: DisplayProtocol? { get set }
     var origin: String? { get set }
     var properties: [String: String?]? { get set }
}


// 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.
import Foundation
// OSDetailsProtocol is disk Details.
public protocol OSDetailsProtocol : Codable {
     var osType: String? { get set }
     var productType: String? { get set }
     var osEdition: String? { get set }
     var oSVersion: String? { get set }
     var oSMajorVersion: String? { get set }
     var oSMinorVersion: String? { get set }
}


// 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.
import Foundation
// OSDiskDetailsProtocol is details of the OS Disk.
public protocol OSDiskDetailsProtocol : Codable {
     var osVhdId: String? { get set }
     var osType: String? { get set }
     var vhdName: String? { get set }
}


// 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.
import Foundation
// PlannedFailoverInputPropertiesProtocol is input definition for planned failover input properties.
public protocol PlannedFailoverInputPropertiesProtocol : Codable {
     var failoverDirection: String? { get set }
     var providerSpecificDetails: ProviderSpecificFailoverInputProtocol? { get set }
}


// 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.
import Foundation
// PlannedFailoverInputProtocol is input definition for planned failover.
public protocol PlannedFailoverInputProtocol : Codable {
     var properties: PlannedFailoverInputPropertiesProtocol? { get set }
}


// 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.
import Foundation
// PolicyCollectionProtocol is protection Profile Collection details.
public protocol PolicyCollectionProtocol : Codable {
     var value: [PolicyProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// PolicyPropertiesProtocol is protection profile custom data details.
public protocol PolicyPropertiesProtocol : Codable {
     var friendlyName: String? { get set }
     var providerSpecificDetails: PolicyProviderSpecificDetailsProtocol? { get set }
}


// 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.
import Foundation
// PolicyProtocol is protection profile details.
public protocol PolicyProtocol : ResourceProtocol {
     var properties: PolicyPropertiesProtocol? { get set }
}


// 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.
import Foundation
// PolicyProviderSpecificDetailsProtocol is base class for Provider specific details for policies.
public protocol PolicyProviderSpecificDetailsProtocol : Codable {
}


// 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.
import Foundation
// PolicyProviderSpecificInputProtocol is base class for provider specific input
public protocol PolicyProviderSpecificInputProtocol : Codable {
}


// 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.
import Foundation
// ProcessServerProtocol is details of the Process Server.
public protocol ProcessServerProtocol : Codable {
     var friendlyName: String? { get set }
     var id: String? { get set }
     var ipAddress: String? { get set }
     var osType: String? { get set }
     var agentVersion: String? { get set }
     var lastHeartbeat: Date? { get set }
     var versionStatus: String? { get set }
     var mobilityServiceUpdates: [MobilityServiceUpdateProtocol?]? { get set }
     var hostId: String? { get set }
     var machineCount: String? { get set }
     var replicationPairCount: String? { get set }
     var systemLoad: String? { get set }
     var systemLoadStatus: String? { get set }
     var cpuLoad: String? { get set }
     var cpuLoadStatus: String? { get set }
     var totalMemoryInBytes: Int64? { get set }
     var availableMemoryInBytes: Int64? { get set }
     var memoryUsageStatus: String? { get set }
     var totalSpaceInBytes: Int64? { get set }
     var availableSpaceInBytes: Int64? { get set }
     var spaceUsageStatus: String? { get set }
     var psServiceStatus: String? { get set }
     var sslCertExpiryDate: Date? { get set }
     var sslCertExpiryRemainingDays: Int32? { get set }
     var osVersion: String? { get set }
     var healthErrors: [HealthErrorProtocol?]? { get set }
     var agentExpiryDate: Date? { get set }
     var agentVersionDetails: VersionDetailsProtocol? { get set }
}


// 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.
import Foundation
// ProtectableItemCollectionProtocol is protectable item collection.
public protocol ProtectableItemCollectionProtocol : Codable {
     var value: [ProtectableItemProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// ProtectableItemPropertiesProtocol is replication protected item custom data details.
public protocol ProtectableItemPropertiesProtocol : Codable {
     var friendlyName: String? { get set }
     var protectionStatus: String? { get set }
     var replicationProtectedItemId: String? { get set }
     var recoveryServicesProviderId: String? { get set }
     var protectionReadinessErrors: [String]? { get set }
     var supportedReplicationProviders: [String]? { get set }
     var customDetails: ConfigurationSettingsProtocol? { get set }
}


// 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.
import Foundation
// ProtectableItemProtocol is replication protected item
public protocol ProtectableItemProtocol : ResourceProtocol {
     var properties: ProtectableItemPropertiesProtocol? { get set }
}


// 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.
import Foundation
// ProtectedItemsQueryParameterProtocol is query parameter to enumerate protected items.
public protocol ProtectedItemsQueryParameterProtocol : Codable {
     var sourceFabricName: String? { get set }
     var recoveryPlanName: String? { get set }
     var vCenterName: String? { get set }
     var instanceType: String? { get set }
     var multiVmGroupCreateOption: MultiVmGroupCreateOptionEnum? { get set }
}


// 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.
import Foundation
// ProtectionContainerCollectionProtocol is protection Container collection.
public protocol ProtectionContainerCollectionProtocol : Codable {
     var value: [ProtectionContainerProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// ProtectionContainerFabricSpecificDetailsProtocol is base class for fabric specific details of container.
public protocol ProtectionContainerFabricSpecificDetailsProtocol : Codable {
     var instanceType: String? { get set }
}


// 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.
import Foundation
// ProtectionContainerMappingCollectionProtocol is protection container mapping collection class.
public protocol ProtectionContainerMappingCollectionProtocol : Codable {
     var value: [ProtectionContainerMappingProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// ProtectionContainerMappingPropertiesProtocol is protection container mapping properties.
public protocol ProtectionContainerMappingPropertiesProtocol : Codable {
     var targetProtectionContainerId: String? { get set }
     var targetProtectionContainerFriendlyName: String? { get set }
     var providerSpecificDetails: ProtectionContainerMappingProviderSpecificDetailsProtocol? { get set }
     var health: String? { get set }
     var healthErrorDetails: [HealthErrorProtocol?]? { get set }
     var policyId: String? { get set }
     var state: String? { get set }
     var sourceProtectionContainerFriendlyName: String? { get set }
     var sourceFabricFriendlyName: String? { get set }
     var targetFabricFriendlyName: String? { get set }
     var policyFriendlyName: String? { get set }
}


// 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.
import Foundation
// ProtectionContainerMappingProtocol is protection container mapping object.
public protocol ProtectionContainerMappingProtocol : ResourceProtocol {
     var properties: ProtectionContainerMappingPropertiesProtocol? { get set }
}


// 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.
import Foundation
// ProtectionContainerMappingProviderSpecificDetailsProtocol is container mapping provider specific details.
public protocol ProtectionContainerMappingProviderSpecificDetailsProtocol : Codable {
     var instanceType: String? { get set }
}


// 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.
import Foundation
// ProtectionContainerPropertiesProtocol is protection profile custom data details.
public protocol ProtectionContainerPropertiesProtocol : Codable {
     var fabricFriendlyName: String? { get set }
     var friendlyName: String? { get set }
     var fabricType: String? { get set }
     var protectedItemCount: Int32? { get set }
     var pairingStatus: String? { get set }
     var role: String? { get set }
     var fabricSpecificDetails: ProtectionContainerFabricSpecificDetailsProtocol? { get set }
}


// 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.
import Foundation
// ProtectionContainerProtocol is protection container details.
public protocol ProtectionContainerProtocol : ResourceProtocol {
     var properties: ProtectionContainerPropertiesProtocol? { get set }
}


// 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.
import Foundation
// ProviderErrorProtocol is this class contains the error details per object.
public protocol ProviderErrorProtocol : Codable {
     var errorCode: Int32? { get set }
     var errorMessage: String? { get set }
     var errorId: String? { get set }
     var possibleCauses: String? { get set }
     var recommendedAction: String? { get set }
}


// 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.
import Foundation
// ProviderSpecificFailoverInputProtocol is provider specific failover input.
public protocol ProviderSpecificFailoverInputProtocol : Codable {
}


// 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.
import Foundation
// ProviderSpecificRecoveryPointDetailsProtocol is replication provider specific recovery point details.
public protocol ProviderSpecificRecoveryPointDetailsProtocol : Codable {
}


// 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.
import Foundation
// RcmAzureMigrationPolicyDetailsProtocol is RCM based Azure migration specific policy details.
public protocol RcmAzureMigrationPolicyDetailsProtocol : PolicyProviderSpecificDetailsProtocol {
     var recoveryPointThresholdInMinutes: Int32? { get set }
     var recoveryPointHistory: Int32? { get set }
     var appConsistentFrequencyInMinutes: Int32? { get set }
     var multiVmSyncStatus: MultiVmSyncStatusEnum? { get set }
     var crashConsistentFrequencyInMinutes: Int32? { get set }
}


// 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.
import Foundation
// RecoveryPlanA2AFailoverInputProtocol is recovery plan A2A failover input.
public protocol RecoveryPlanA2AFailoverInputProtocol : RecoveryPlanProviderSpecificFailoverInputProtocol {
     var recoveryPointType: A2ARpRecoveryPointTypeEnum { get set }
     var cloudServiceCreationOption: String? { get set }
     var multiVmSyncPointOption: MultiVmSyncPointOptionEnum? { get set }
}


// 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.
import Foundation
// RecoveryPlanActionDetailsProtocol is recovery plan action custom details.
public protocol RecoveryPlanActionDetailsProtocol : Codable {
}


// 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.
import Foundation
// RecoveryPlanActionProtocol is recovery plan action details.
public protocol RecoveryPlanActionProtocol : Codable {
     var actionName: String { get set }
     var failoverTypes: [ReplicationProtectedItemOperationEnum] { get set }
     var failoverDirections: [PossibleOperationsDirectionsEnum] { get set }
     var customDetails: RecoveryPlanActionDetailsProtocol { get set }
}


// 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.
import Foundation
// RecoveryPlanAutomationRunbookActionDetailsProtocol is recovery plan Automation runbook action details.
public protocol RecoveryPlanAutomationRunbookActionDetailsProtocol : RecoveryPlanActionDetailsProtocol {
     var runbookId: String? { get set }
     var timeout: String? { get set }
     var fabricLocation: RecoveryPlanActionLocationEnum { get set }
}


// 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.
import Foundation
// RecoveryPlanCollectionProtocol is recovery plan collection details.
public protocol RecoveryPlanCollectionProtocol : Codable {
     var value: [RecoveryPlanProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// RecoveryPlanGroupProtocol is recovery plan group details.
public protocol RecoveryPlanGroupProtocol : Codable {
     var groupType: RecoveryPlanGroupTypeEnum { get set }
     var replicationProtectedItems: [RecoveryPlanProtectedItemProtocol?]? { get set }
     var startGroupActions: [RecoveryPlanActionProtocol?]? { get set }
     var endGroupActions: [RecoveryPlanActionProtocol?]? { get set }
}


// 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.
import Foundation
// RecoveryPlanGroupTaskDetailsProtocol is this class represents the recovery plan group task.
public protocol RecoveryPlanGroupTaskDetailsProtocol : GroupTaskDetailsProtocol {
     var name: String? { get set }
     var groupId: String? { get set }
     var rpGroupType: String? { get set }
}


// 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.
import Foundation
// RecoveryPlanHyperVReplicaAzureFailbackInputProtocol is recovery plan HVR Azure failback input.
public protocol RecoveryPlanHyperVReplicaAzureFailbackInputProtocol : RecoveryPlanProviderSpecificFailoverInputProtocol {
     var dataSyncOption: DataSyncStatusEnum { get set }
     var recoveryVmCreationOption: AlternateLocationRecoveryOptionEnum { get set }
}


// 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.
import Foundation
// RecoveryPlanHyperVReplicaAzureFailoverInputProtocol is recovery plan HVR Azure failover input.
public protocol RecoveryPlanHyperVReplicaAzureFailoverInputProtocol : RecoveryPlanProviderSpecificFailoverInputProtocol {
     var vaultLocation: String { get set }
     var primaryKekCertificatePfx: String? { get set }
     var secondaryKekCertificatePfx: String? { get set }
     var recoveryPointType: HyperVReplicaAzureRpRecoveryPointTypeEnum? { get set }
}


// 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.
import Foundation
// RecoveryPlanInMageAzureV2FailoverInputProtocol is recovery plan InMageAzureV2 failover input.
public protocol RecoveryPlanInMageAzureV2FailoverInputProtocol : RecoveryPlanProviderSpecificFailoverInputProtocol {
     var vaultLocation: String { get set }
     var recoveryPointType: InMageV2RpRecoveryPointTypeEnum { get set }
     var useMultiVmSyncPoint: String? { get set }
}


// 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.
import Foundation
// RecoveryPlanInMageFailoverInputProtocol is recovery plan InMage failover input.
public protocol RecoveryPlanInMageFailoverInputProtocol : RecoveryPlanProviderSpecificFailoverInputProtocol {
     var recoveryPointType: RpInMageRecoveryPointTypeEnum { get set }
}


// 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.
import Foundation
// RecoveryPlanManualActionDetailsProtocol is recovery plan manual action details.
public protocol RecoveryPlanManualActionDetailsProtocol : RecoveryPlanActionDetailsProtocol {
     var description: String? { get set }
}


// 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.
import Foundation
// RecoveryPlanPlannedFailoverInputPropertiesProtocol is recovery plan planned failover input properties.
public protocol RecoveryPlanPlannedFailoverInputPropertiesProtocol : Codable {
     var failoverDirection: PossibleOperationsDirectionsEnum { get set }
     var providerSpecificDetails: [RecoveryPlanProviderSpecificFailoverInputProtocol?]? { get set }
}


// 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.
import Foundation
// RecoveryPlanPlannedFailoverInputProtocol is recovery plan planned failover input.
public protocol RecoveryPlanPlannedFailoverInputProtocol : Codable {
     var properties: RecoveryPlanPlannedFailoverInputPropertiesProtocol { get set }
}


// 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.
import Foundation
// RecoveryPlanPropertiesProtocol is recovery plan custom details.
public protocol RecoveryPlanPropertiesProtocol : Codable {
     var friendlyName: String? { get set }
     var primaryFabricId: String? { get set }
     var primaryFabricFriendlyName: String? { get set }
     var recoveryFabricId: String? { get set }
     var recoveryFabricFriendlyName: String? { get set }
     var failoverDeploymentModel: String? { get set }
     var replicationProviders: [String]? { get set }
     var allowedOperations: [String]? { get set }
     var lastPlannedFailoverTime: Date? { get set }
     var lastUnplannedFailoverTime: Date? { get set }
     var lastTestFailoverTime: Date? { get set }
     var currentScenario: CurrentScenarioDetailsProtocol? { get set }
     var currentScenarioStatus: String? { get set }
     var currentScenarioStatusDescription: String? { get set }
     var groups: [RecoveryPlanGroupProtocol?]? { get set }
}


// 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.
import Foundation
// RecoveryPlanProtectedItemProtocol is recovery plan protected item.
public protocol RecoveryPlanProtectedItemProtocol : Codable {
     var id: String? { get set }
     var virtualMachineId: String? { get set }
}


// 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.
import Foundation
// RecoveryPlanProtocol is recovery plan details.
public protocol RecoveryPlanProtocol : ResourceProtocol {
     var properties: RecoveryPlanPropertiesProtocol? { get set }
}


// 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.
import Foundation
// RecoveryPlanProviderSpecificFailoverInputProtocol is recovery plan provider specific failover input base class.
public protocol RecoveryPlanProviderSpecificFailoverInputProtocol : Codable {
}


// 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.
import Foundation
// RecoveryPlanScriptActionDetailsProtocol is recovery plan script action details.
public protocol RecoveryPlanScriptActionDetailsProtocol : RecoveryPlanActionDetailsProtocol {
     var path: String { get set }
     var timeout: String? { get set }
     var fabricLocation: RecoveryPlanActionLocationEnum { get set }
}


// 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.
import Foundation
// RecoveryPlanShutdownGroupTaskDetailsProtocol is this class represents the recovery plan shutdown group task details.
public protocol RecoveryPlanShutdownGroupTaskDetailsProtocol : GroupTaskDetailsProtocol {
     var name: String? { get set }
     var groupId: String? { get set }
     var rpGroupType: String? { get set }
}


// 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.
import Foundation
// RecoveryPlanTestFailoverCleanupInputPropertiesProtocol is recovery plan test failover cleanup input properties.
public protocol RecoveryPlanTestFailoverCleanupInputPropertiesProtocol : Codable {
     var comments: String? { get set }
}


// 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.
import Foundation
// RecoveryPlanTestFailoverCleanupInputProtocol is recovery plan test failover cleanup input.
public protocol RecoveryPlanTestFailoverCleanupInputProtocol : Codable {
     var properties: RecoveryPlanTestFailoverCleanupInputPropertiesProtocol { get set }
}


// 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.
import Foundation
// RecoveryPlanTestFailoverInputPropertiesProtocol is recovery plan test failover input properties.
public protocol RecoveryPlanTestFailoverInputPropertiesProtocol : Codable {
     var failoverDirection: PossibleOperationsDirectionsEnum { get set }
     var networkType: String { get set }
     var networkId: String? { get set }
     var skipTestFailoverCleanup: String? { get set }
     var providerSpecificDetails: [RecoveryPlanProviderSpecificFailoverInputProtocol?]? { get set }
}


// 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.
import Foundation
// RecoveryPlanTestFailoverInputProtocol is recovery plan test failover input.
public protocol RecoveryPlanTestFailoverInputProtocol : Codable {
     var properties: RecoveryPlanTestFailoverInputPropertiesProtocol { get set }
}


// 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.
import Foundation
// RecoveryPlanUnplannedFailoverInputPropertiesProtocol is recovery plan unplanned failover input properties.
public protocol RecoveryPlanUnplannedFailoverInputPropertiesProtocol : Codable {
     var failoverDirection: PossibleOperationsDirectionsEnum { get set }
     var sourceSiteOperations: SourceSiteOperationsEnum { get set }
     var providerSpecificDetails: [RecoveryPlanProviderSpecificFailoverInputProtocol?]? { get set }
}


// 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.
import Foundation
// RecoveryPlanUnplannedFailoverInputProtocol is recovery plan unplanned failover input.
public protocol RecoveryPlanUnplannedFailoverInputProtocol : Codable {
     var properties: RecoveryPlanUnplannedFailoverInputPropertiesProtocol { get set }
}


// 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.
import Foundation
// RecoveryPointCollectionProtocol is collection of recovery point details.
public protocol RecoveryPointCollectionProtocol : Codable {
     var value: [RecoveryPointProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// RecoveryPointPropertiesProtocol is recovery point properties.
public protocol RecoveryPointPropertiesProtocol : Codable {
     var recoveryPointTime: Date? { get set }
     var recoveryPointType: String? { get set }
     var providerSpecificDetails: ProviderSpecificRecoveryPointDetailsProtocol? { get set }
}


// 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.
import Foundation
// RecoveryPointProtocol is base class representing a recovery point.
public protocol RecoveryPointProtocol : ResourceProtocol {
     var properties: RecoveryPointPropertiesProtocol? { get set }
}


// 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.
import Foundation
// RecoveryServicesProviderCollectionProtocol is collection of providers.
public protocol RecoveryServicesProviderCollectionProtocol : Codable {
     var value: [RecoveryServicesProviderProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// RecoveryServicesProviderPropertiesProtocol is recovery services provider properties.
public protocol RecoveryServicesProviderPropertiesProtocol : Codable {
     var fabricType: String? { get set }
     var friendlyName: String? { get set }
     var providerVersion: String? { get set }
     var serverVersion: String? { get set }
     var providerVersionState: String? { get set }
     var providerVersionExpiryDate: Date? { get set }
     var fabricFriendlyName: String? { get set }
     var lastHeartBeat: Date? { get set }
     var connectionStatus: String? { get set }
     var protectedItemCount: Int32? { get set }
     var allowedScenarios: [String]? { get set }
     var healthErrorDetails: [HealthErrorProtocol?]? { get set }
     var draIdentifier: String? { get set }
     var identityDetails: IdentityInformationProtocol? { get set }
     var providerVersionDetails: VersionDetailsProtocol? { get set }
}


// 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.
import Foundation
// RecoveryServicesProviderProtocol is provider details.
public protocol RecoveryServicesProviderProtocol : ResourceProtocol {
     var properties: RecoveryServicesProviderPropertiesProtocol? { get set }
}


// 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.
import Foundation
// RemoveProtectionContainerMappingInputPropertiesProtocol is unpairing input properties.
public protocol RemoveProtectionContainerMappingInputPropertiesProtocol : Codable {
     var providerSpecificInput: ReplicationProviderContainerUnmappingInputProtocol? { get set }
}


// 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.
import Foundation
// RemoveProtectionContainerMappingInputProtocol is container unpairing input.
public protocol RemoveProtectionContainerMappingInputProtocol : Codable {
     var properties: RemoveProtectionContainerMappingInputPropertiesProtocol? { get set }
}


// 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.
import Foundation
// RenewCertificateInputPropertiesProtocol is renew Certificate input properties.
public protocol RenewCertificateInputPropertiesProtocol : Codable {
     var renewCertificateType: String? { get set }
}


// 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.
import Foundation
// RenewCertificateInputProtocol is certificate renewal input.
public protocol RenewCertificateInputProtocol : Codable {
     var properties: RenewCertificateInputPropertiesProtocol? { get set }
}


// 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.
import Foundation
// ReplicationGroupDetailsProtocol is replication group details. This will be used in case of San and Wvr.
public protocol ReplicationGroupDetailsProtocol : ConfigurationSettingsProtocol {
}


// 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.
import Foundation
// ReplicationProtectedItemCollectionProtocol is replication protected item collection.
public protocol ReplicationProtectedItemCollectionProtocol : Codable {
     var value: [ReplicationProtectedItemProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// ReplicationProtectedItemPropertiesProtocol is replication protected item custom data details.
public protocol ReplicationProtectedItemPropertiesProtocol : Codable {
     var friendlyName: String? { get set }
     var protectedItemType: String? { get set }
     var protectableItemId: String? { get set }
     var recoveryServicesProviderId: String? { get set }
     var primaryFabricFriendlyName: String? { get set }
     var primaryFabricProvider: String? { get set }
     var recoveryFabricFriendlyName: String? { get set }
     var recoveryFabricId: String? { get set }
     var primaryProtectionContainerFriendlyName: String? { get set }
     var recoveryProtectionContainerFriendlyName: String? { get set }
     var protectionState: String? { get set }
     var protectionStateDescription: String? { get set }
     var activeLocation: String? { get set }
     var testFailoverState: String? { get set }
     var testFailoverStateDescription: String? { get set }
     var allowedOperations: [String]? { get set }
     var replicationHealth: String? { get set }
     var failoverHealth: String? { get set }
     var healthErrors: [HealthErrorProtocol?]? { get set }
     var policyId: String? { get set }
     var policyFriendlyName: String? { get set }
     var lastSuccessfulFailoverTime: Date? { get set }
     var lastSuccessfulTestFailoverTime: Date? { get set }
     var currentScenario: CurrentScenarioDetailsProtocol? { get set }
     var failoverRecoveryPointId: String? { get set }
     var providerSpecificDetails: ReplicationProviderSpecificSettingsProtocol? { get set }
     var recoveryContainerId: String? { get set }
}


// 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.
import Foundation
// ReplicationProtectedItemProtocol is replication protected item.
public protocol ReplicationProtectedItemProtocol : ResourceProtocol {
     var properties: ReplicationProtectedItemPropertiesProtocol? { get set }
}


// 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.
import Foundation
// ReplicationProviderContainerUnmappingInputProtocol is provider specific input for unpairing operations.
public protocol ReplicationProviderContainerUnmappingInputProtocol : Codable {
     var instanceType: String? { get set }
}


// 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.
import Foundation
// ReplicationProviderSpecificContainerCreationInputProtocol is provider specific input for container creation
// operation.
public protocol ReplicationProviderSpecificContainerCreationInputProtocol : Codable {
}


// 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.
import Foundation
// ReplicationProviderSpecificContainerMappingInputProtocol is provider specific input for pairing operations.
public protocol ReplicationProviderSpecificContainerMappingInputProtocol : Codable {
     var instanceType: String? { get set }
}


// 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.
import Foundation
// ReplicationProviderSpecificSettingsProtocol is replication provider specific settings.
public protocol ReplicationProviderSpecificSettingsProtocol : Codable {
}


// 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.
import Foundation
// ResourceHealthSummaryProtocol is base class to define the health summary of the resources contained under an Arm
// resource.
public protocol ResourceHealthSummaryProtocol : Codable {
     var resourceCount: Int32? { get set }
     var issues: [HealthErrorSummaryProtocol?]? { get set }
}


// 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.
import Foundation
// ResourceProtocol is azure resource.
public protocol ResourceProtocol : Codable {
     var id: String? { get set }
     var name: String? { get set }
     var type: String? { get set }
     var location: String? { get set }
}


// 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.
import Foundation
// ResumeJobParamsPropertiesProtocol is resume job properties.
public protocol ResumeJobParamsPropertiesProtocol : Codable {
     var comments: String? { get set }
}


// 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.
import Foundation
// ResumeJobParamsProtocol is resume job params.
public protocol ResumeJobParamsProtocol : Codable {
     var properties: ResumeJobParamsPropertiesProtocol? { get set }
}


// 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.
import Foundation
// RetentionVolumeProtocol is the retention details of the MT.
public protocol RetentionVolumeProtocol : Codable {
     var volumeName: String? { get set }
     var capacityInBytes: Int64? { get set }
     var freeSpaceInBytes: Int64? { get set }
     var thresholdPercentage: Int32? { get set }
}


// 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.
import Foundation
// ReverseReplicationInputPropertiesProtocol is reverse replication input properties.
public protocol ReverseReplicationInputPropertiesProtocol : Codable {
     var failoverDirection: String? { get set }
     var providerSpecificDetails: ReverseReplicationProviderSpecificInputProtocol? { get set }
}


// 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.
import Foundation
// ReverseReplicationInputProtocol is reverse replication input.
public protocol ReverseReplicationInputProtocol : Codable {
     var properties: ReverseReplicationInputPropertiesProtocol? { get set }
}


// 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.
import Foundation
// ReverseReplicationProviderSpecificInputProtocol is provider specific reverse replication input.
public protocol ReverseReplicationProviderSpecificInputProtocol : Codable {
}


// 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.
import Foundation
// RoleAssignmentProtocol is azure role assignment details.
public protocol RoleAssignmentProtocol : Codable {
     var id: String? { get set }
     var name: String? { get set }
     var scope: String? { get set }
     var principalId: String? { get set }
     var roleDefinitionId: String? { get set }
}


// 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.
import Foundation
// RunAsAccountProtocol is CS Accounts Details.
public protocol RunAsAccountProtocol : Codable {
     var accountId: String? { get set }
     var accountName: String? { get set }
}


// 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.
import Foundation
// SanEnableProtectionInputProtocol is san enable protection provider specific input.
public protocol SanEnableProtectionInputProtocol : EnableProtectionProviderSpecificInputProtocol {
}


// 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.
import Foundation
// ScriptActionTaskDetailsProtocol is this class represents the script action task details.
public protocol ScriptActionTaskDetailsProtocol : TaskTypeDetailsProtocol {
     var name: String? { get set }
     var path: String? { get set }
     var output: String? { get set }
     var isPrimarySideScript: Bool? { get set }
}


// 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.
import Foundation
// ServiceErrorProtocol is ASR error model
public protocol ServiceErrorProtocol : Codable {
     var code: String? { get set }
     var message: String? { get set }
     var possibleCauses: String? { get set }
     var recommendedAction: String? { get set }
     var activityId: String? { get set }
}


// 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.
import Foundation
// StorageClassificationCollectionProtocol is collection of storage details.
public protocol StorageClassificationCollectionProtocol : Codable {
     var value: [StorageClassificationProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// StorageClassificationMappingCollectionProtocol is collection of storage mapping details.
public protocol StorageClassificationMappingCollectionProtocol : Codable {
     var value: [StorageClassificationMappingProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// StorageClassificationMappingInputProtocol is storage mapping input.
public protocol StorageClassificationMappingInputProtocol : Codable {
     var properties: StorageMappingInputPropertiesProtocol? { get set }
}


// 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.
import Foundation
// StorageClassificationMappingPropertiesProtocol is storage mapping properties.
public protocol StorageClassificationMappingPropertiesProtocol : Codable {
     var targetStorageClassificationId: String? { get set }
}


// 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.
import Foundation
// StorageClassificationMappingProtocol is storage mapping object.
public protocol StorageClassificationMappingProtocol : ResourceProtocol {
     var properties: StorageClassificationMappingPropertiesProtocol? { get set }
}


// 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.
import Foundation
// StorageClassificationPropertiesProtocol is storage object properties.
public protocol StorageClassificationPropertiesProtocol : Codable {
     var friendlyName: String? { get set }
}


// 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.
import Foundation
// StorageClassificationProtocol is storage object definition.
public protocol StorageClassificationProtocol : ResourceProtocol {
     var properties: StorageClassificationPropertiesProtocol? { get set }
}


// 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.
import Foundation
// StorageMappingInputPropertiesProtocol is storage mapping input properties.
public protocol StorageMappingInputPropertiesProtocol : Codable {
     var targetStorageClassificationId: String? { get set }
}


// 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.
import Foundation
// SubnetProtocol is subnets of the network.
public protocol SubnetProtocol : Codable {
     var name: String? { get set }
     var friendlyName: String? { get set }
     var addressList: [String]? { get set }
}


// 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.
import Foundation
// SwitchProtectionInputPropertiesProtocol is switch protection input properties.
public protocol SwitchProtectionInputPropertiesProtocol : Codable {
     var replicationProtectedItemName: String? { get set }
     var providerSpecificDetails: SwitchProtectionProviderSpecificInputProtocol? { get set }
}


// 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.
import Foundation
// SwitchProtectionInputProtocol is switch protection input.
public protocol SwitchProtectionInputProtocol : Codable {
     var properties: SwitchProtectionInputPropertiesProtocol? { get set }
}


// 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.
import Foundation
// SwitchProtectionJobDetailsProtocol is this class represents details for switch protection job.
public protocol SwitchProtectionJobDetailsProtocol : JobDetailsProtocol {
     var newReplicationProtectedItemId: String? { get set }
}


// 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.
import Foundation
// SwitchProtectionProviderSpecificInputProtocol is provider specific switch protection input.
public protocol SwitchProtectionProviderSpecificInputProtocol : Codable {
}


// 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.
import Foundation
// TargetComputeSizeCollectionProtocol is target compute size collection.
public protocol TargetComputeSizeCollectionProtocol : Codable {
     var value: [TargetComputeSizeProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// TargetComputeSizePropertiesProtocol is represents applicable recovery vm sizes properties.
public protocol TargetComputeSizePropertiesProtocol : Codable {
     var name: String? { get set }
     var friendlyName: String? { get set }
     var cpuCoresCount: Int32? { get set }
     var memoryInGB: Double? { get set }
     var maxDataDiskCount: Int32? { get set }
     var maxNicsCount: Int32? { get set }
     var errors: [ComputeSizeErrorDetailsProtocol?]? { get set }
     var highIopsSupported: String? { get set }
}


// 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.
import Foundation
// TargetComputeSizeProtocol is represents applicable recovery vm sizes.
public protocol TargetComputeSizeProtocol : Codable {
     var id: String? { get set }
     var name: String? { get set }
     var type: String? { get set }
     var properties: TargetComputeSizePropertiesProtocol? { get set }
}


// 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.
import Foundation
// TaskTypeDetailsProtocol is task details based on specific task type.
public protocol TaskTypeDetailsProtocol : Codable {
}


// 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.
import Foundation
// TestFailoverCleanupInputPropertiesProtocol is input definition for test failover cleanup input properties.
public protocol TestFailoverCleanupInputPropertiesProtocol : Codable {
     var comments: String? { get set }
}


// 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.
import Foundation
// TestFailoverCleanupInputProtocol is input definition for test failover cleanup.
public protocol TestFailoverCleanupInputProtocol : Codable {
     var properties: TestFailoverCleanupInputPropertiesProtocol { get set }
}


// 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.
import Foundation
// TestFailoverInputPropertiesProtocol is input definition for planned failover input properties.
public protocol TestFailoverInputPropertiesProtocol : Codable {
     var failoverDirection: String? { get set }
     var networkType: String? { get set }
     var networkId: String? { get set }
     var skipTestFailoverCleanup: String? { get set }
     var providerSpecificDetails: ProviderSpecificFailoverInputProtocol? { get set }
}


// 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.
import Foundation
// TestFailoverInputProtocol is input definition for planned failover.
public protocol TestFailoverInputProtocol : Codable {
     var properties: TestFailoverInputPropertiesProtocol? { get set }
}


// 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.
import Foundation
// TestFailoverJobDetailsProtocol is this class represents the details for a test failover job.
public protocol TestFailoverJobDetailsProtocol : JobDetailsProtocol {
     var testFailoverStatus: String? { get set }
     var comments: String? { get set }
     var networkName: String? { get set }
     var networkFriendlyName: String? { get set }
     var networkType: String? { get set }
     var protectedItemDetails: [FailoverReplicationProtectedItemDetailsProtocol?]? { get set }
}


// 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.
import Foundation
// UnplannedFailoverInputPropertiesProtocol is input definition for planned failover input properties.
public protocol UnplannedFailoverInputPropertiesProtocol : Codable {
     var failoverDirection: String? { get set }
     var sourceSiteOperations: String? { get set }
     var providerSpecificDetails: ProviderSpecificFailoverInputProtocol? { get set }
}


// 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.
import Foundation
// UnplannedFailoverInputProtocol is input definition for planned failover.
public protocol UnplannedFailoverInputProtocol : Codable {
     var properties: UnplannedFailoverInputPropertiesProtocol? { get set }
}


// 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.
import Foundation
// UpdateMobilityServiceRequestPropertiesProtocol is the properties of an update mobility service request.
public protocol UpdateMobilityServiceRequestPropertiesProtocol : Codable {
     var runAsAccountId: String? { get set }
}


// 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.
import Foundation
// UpdateMobilityServiceRequestProtocol is request to update the mobility service on a protected item.
public protocol UpdateMobilityServiceRequestProtocol : Codable {
     var properties: UpdateMobilityServiceRequestPropertiesProtocol? { get set }
}


// 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.
import Foundation
// UpdateNetworkMappingInputPropertiesProtocol is common input details for network mapping operation.
public protocol UpdateNetworkMappingInputPropertiesProtocol : Codable {
     var recoveryFabricName: String? { get set }
     var recoveryNetworkId: String? { get set }
     var fabricSpecificDetails: FabricSpecificUpdateNetworkMappingInputProtocol? { get set }
}


// 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.
import Foundation
// UpdateNetworkMappingInputProtocol is update network mapping input.
public protocol UpdateNetworkMappingInputProtocol : Codable {
     var properties: UpdateNetworkMappingInputPropertiesProtocol? { get set }
}


// 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.
import Foundation
// UpdatePolicyInputPropertiesProtocol is policy update properties.
public protocol UpdatePolicyInputPropertiesProtocol : Codable {
     var replicationProviderSettings: PolicyProviderSpecificInputProtocol? { get set }
}


// 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.
import Foundation
// UpdatePolicyInputProtocol is update policy input.
public protocol UpdatePolicyInputProtocol : Codable {
     var properties: UpdatePolicyInputPropertiesProtocol? { get set }
}


// 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.
import Foundation
// UpdateRecoveryPlanInputPropertiesProtocol is recovery plan updation properties.
public protocol UpdateRecoveryPlanInputPropertiesProtocol : Codable {
     var groups: [RecoveryPlanGroupProtocol?]? { get set }
}


// 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.
import Foundation
// UpdateRecoveryPlanInputProtocol is update recovery plan input class.
public protocol UpdateRecoveryPlanInputProtocol : Codable {
     var properties: UpdateRecoveryPlanInputPropertiesProtocol? { get set }
}


// 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.
import Foundation
// UpdateReplicationProtectedItemInputPropertiesProtocol is update protected item input properties.
public protocol UpdateReplicationProtectedItemInputPropertiesProtocol : Codable {
     var recoveryAzureVMName: String? { get set }
     var recoveryAzureVMSize: String? { get set }
     var selectedRecoveryAzureNetworkId: String? { get set }
     var selectedSourceNicId: String? { get set }
     var enableRdpOnTargetOption: String? { get set }
     var vmNics: [VMNicInputDetailsProtocol?]? { get set }
     var licenseType: LicenseTypeEnum? { get set }
     var recoveryAvailabilitySetId: String? { get set }
     var providerSpecificDetails: UpdateReplicationProtectedItemProviderInputProtocol? { get set }
}


// 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.
import Foundation
// UpdateReplicationProtectedItemInputProtocol is update replication protected item input.
public protocol UpdateReplicationProtectedItemInputProtocol : Codable {
     var properties: UpdateReplicationProtectedItemInputPropertiesProtocol? { get set }
}


// 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.
import Foundation
// UpdateReplicationProtectedItemProviderInputProtocol is update replication protected item provider specific input.
public protocol UpdateReplicationProtectedItemProviderInputProtocol : Codable {
}


// 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.
import Foundation
// UpdateVCenterRequestPropertiesProtocol is the properties of an update vCenter request.
public protocol UpdateVCenterRequestPropertiesProtocol : Codable {
     var friendlyName: String? { get set }
     var ipAddress: String? { get set }
     var processServerId: String? { get set }
     var port: String? { get set }
     var runAsAccountId: String? { get set }
}


// 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.
import Foundation
// UpdateVCenterRequestProtocol is input required to update vCenter.
public protocol UpdateVCenterRequestProtocol : Codable {
     var properties: UpdateVCenterRequestPropertiesProtocol? { get set }
}


// 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.
import Foundation
// VaultHealthDetailsProtocol is vault health details definition.
public protocol VaultHealthDetailsProtocol : ResourceProtocol {
     var properties: VaultHealthPropertiesProtocol? { get set }
}


// 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.
import Foundation
// VaultHealthPropertiesProtocol is class to define the health summary of the Vault.
public protocol VaultHealthPropertiesProtocol : Codable {
     var vaultErrors: [HealthErrorProtocol?]? { get set }
     var protectedItemsHealth: ResourceHealthSummaryProtocol? { get set }
     var fabricsHealth: ResourceHealthSummaryProtocol? { get set }
}


// 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.
import Foundation
// VCenterCollectionProtocol is collection of vCenter details.
public protocol VCenterCollectionProtocol : Codable {
     var value: [VCenterProtocol?]? { get set }
     var _nextLink: String? { get set }
}


// 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.
import Foundation
// VCenterPropertiesProtocol is vCenter properties.
public protocol VCenterPropertiesProtocol : Codable {
     var friendlyName: String? { get set }
     var internalId: String? { get set }
     var lastHeartbeat: Date? { get set }
     var discoveryStatus: String? { get set }
     var processServerId: String? { get set }
     var ipAddress: String? { get set }
     var infrastructureId: String? { get set }
     var port: String? { get set }
     var runAsAccountId: String? { get set }
     var fabricArmResourceName: String? { get set }
     var healthErrors: [HealthErrorProtocol?]? { get set }
}


// 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.
import Foundation
// VCenterProtocol is vCenter definition.
public protocol VCenterProtocol : ResourceProtocol {
     var properties: VCenterPropertiesProtocol? { get set }
}


// 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.
import Foundation
// VersionDetailsProtocol is version related deatils.
public protocol VersionDetailsProtocol : Codable {
     var version: String? { get set }
     var expiryDate: Date? { get set }
     var status: AgentVersionStatusEnum? { get set }
}


// 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.
import Foundation
// VirtualMachineTaskDetailsProtocol is this class represents the virtual machine task details.
public protocol VirtualMachineTaskDetailsProtocol : TaskTypeDetailsProtocol {
     var skippedReason: String? { get set }
     var skippedReasonString: String? { get set }
     var jobTask: JobEntityProtocol? { get set }
}


// 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.
import Foundation
// VmmDetailsProtocol is VMM fabric specific details.
public protocol VmmDetailsProtocol : FabricSpecificDetailsProtocol {
}