// 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) Go Code Generator. DO NOT EDIT.

package armservicefabricmanagedclusters

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

// PartitionClassification provides polymorphic access to related types.
// Call the interface's GetPartition() method to access the common type.
// Use a type switch to determine the concrete type.  The possible types are:
// - *NamedPartitionScheme, *Partition, *SingletonPartitionScheme, *UniformInt64RangePartitionScheme
type PartitionClassification interface {
	// GetPartition returns the Partition content of the underlying type.
	GetPartition() *Partition
}

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

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

// ServicePlacementPolicyClassification provides polymorphic access to related types.
// Call the interface's GetServicePlacementPolicy() method to access the common type.
// Use a type switch to determine the concrete type.  The possible types are:
// - *ServicePlacementInvalidDomainPolicy, *ServicePlacementNonPartiallyPlaceServicePolicy, *ServicePlacementPolicy, *ServicePlacementPreferPrimaryDomainPolicy,
// - *ServicePlacementRequireDomainDistributionPolicy, *ServicePlacementRequiredDomainPolicy
type ServicePlacementPolicyClassification interface {
	// GetServicePlacementPolicy returns the ServicePlacementPolicy content of the underlying type.
	GetServicePlacementPolicy() *ServicePlacementPolicy
}

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