//go:build go1.18
// +build go1.18

// 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. DO NOT EDIT.
// Changes may cause incorrect behavior and will be lost if the code is regenerated.

package armrecoveryservicesdatareplication

// DraModelCustomPropertiesClassification provides polymorphic access to related types.
// Call the interface's GetDraModelCustomProperties() method to access the common type.
// Use a type switch to determine the concrete type.  The possible types are:
// - *DraModelCustomProperties, *VMwareDraModelCustomProperties
type DraModelCustomPropertiesClassification interface {
	// GetDraModelCustomProperties returns the DraModelCustomProperties content of the underlying type.
	GetDraModelCustomProperties() *DraModelCustomProperties
}

// EventModelCustomPropertiesClassification provides polymorphic access to related types.
// Call the interface's GetEventModelCustomProperties() method to access the common type.
// Use a type switch to determine the concrete type.  The possible types are:
// - *EventModelCustomProperties, *HyperVToAzStackHCIEventModelCustomProperties
type EventModelCustomPropertiesClassification interface {
	// GetEventModelCustomProperties returns the EventModelCustomProperties content of the underlying type.
	GetEventModelCustomProperties() *EventModelCustomProperties
}

// FabricModelCustomPropertiesClassification provides polymorphic access to related types.
// Call the interface's GetFabricModelCustomProperties() method to access the common type.
// Use a type switch to determine the concrete type.  The possible types are:
// - *AzStackHCIFabricModelCustomProperties, *FabricModelCustomProperties, *HyperVMigrateFabricModelCustomProperties, *VMwareMigrateFabricModelCustomProperties
type FabricModelCustomPropertiesClassification interface {
	// GetFabricModelCustomProperties returns the FabricModelCustomProperties content of the underlying type.
	GetFabricModelCustomProperties() *FabricModelCustomProperties
}

// PlannedFailoverModelCustomPropertiesClassification provides polymorphic access to related types.
// Call the interface's GetPlannedFailoverModelCustomProperties() method to access the common type.
// Use a type switch to determine the concrete type.  The possible types are:
// - *HyperVToAzStackHCIPlannedFailoverModelCustomProperties, *PlannedFailoverModelCustomProperties, *VMwareToAzStackHCIPlannedFailoverModelCustomProperties
type PlannedFailoverModelCustomPropertiesClassification interface {
	// GetPlannedFailoverModelCustomProperties returns the PlannedFailoverModelCustomProperties content of the underlying type.
	GetPlannedFailoverModelCustomProperties() *PlannedFailoverModelCustomProperties
}

// PolicyModelCustomPropertiesClassification provides polymorphic access to related types.
// Call the interface's GetPolicyModelCustomProperties() method to access the common type.
// Use a type switch to determine the concrete type.  The possible types are:
// - *HyperVToAzStackHCIPolicyModelCustomProperties, *PolicyModelCustomProperties, *VMwareToAzStackHCIPolicyModelCustomProperties
type PolicyModelCustomPropertiesClassification interface {
	// GetPolicyModelCustomProperties returns the PolicyModelCustomProperties content of the underlying type.
	GetPolicyModelCustomProperties() *PolicyModelCustomProperties
}

// ProtectedItemModelCustomPropertiesClassification provides polymorphic access to related types.
// Call the interface's GetProtectedItemModelCustomProperties() method to access the common type.
// Use a type switch to determine the concrete type.  The possible types are:
// - *HyperVToAzStackHCIProtectedItemModelCustomProperties, *ProtectedItemModelCustomProperties, *VMwareToAzStackHCIProtectedItemModelCustomProperties
type ProtectedItemModelCustomPropertiesClassification interface {
	// GetProtectedItemModelCustomProperties returns the ProtectedItemModelCustomProperties content of the underlying type.
	GetProtectedItemModelCustomProperties() *ProtectedItemModelCustomProperties
}

// RecoveryPointModelCustomPropertiesClassification provides polymorphic access to related types.
// Call the interface's GetRecoveryPointModelCustomProperties() method to access the common type.
// Use a type switch to determine the concrete type.  The possible types are:
// - *HyperVToAzStackHCIRecoveryPointModelCustomProperties, *RecoveryPointModelCustomProperties
type RecoveryPointModelCustomPropertiesClassification interface {
	// GetRecoveryPointModelCustomProperties returns the RecoveryPointModelCustomProperties content of the underlying type.
	GetRecoveryPointModelCustomProperties() *RecoveryPointModelCustomProperties
}

// ReplicationExtensionModelCustomPropertiesClassification provides polymorphic access to related types.
// Call the interface's GetReplicationExtensionModelCustomProperties() method to access the common type.
// Use a type switch to determine the concrete type.  The possible types are:
// - *HyperVToAzStackHCIReplicationExtensionModelCustomProperties, *ReplicationExtensionModelCustomProperties, *VMwareToAzStackHCIReplicationExtensionModelCustomProperties
type ReplicationExtensionModelCustomPropertiesClassification interface {
	// GetReplicationExtensionModelCustomProperties returns the ReplicationExtensionModelCustomProperties content of the underlying type.
	GetReplicationExtensionModelCustomProperties() *ReplicationExtensionModelCustomProperties
}

// WorkflowModelCustomPropertiesClassification provides polymorphic access to related types.
// Call the interface's GetWorkflowModelCustomProperties() method to access the common type.
// Use a type switch to determine the concrete type.  The possible types are:
// - *FailoverWorkflowModelCustomProperties, *TestFailoverCleanupWorkflowModelCustomProperties, *TestFailoverWorkflowModelCustomProperties,
// - *WorkflowModelCustomProperties
type WorkflowModelCustomPropertiesClassification interface {
	// GetWorkflowModelCustomProperties returns the WorkflowModelCustomProperties content of the underlying type.
	GetWorkflowModelCustomProperties() *WorkflowModelCustomProperties
}
