//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 armservicefabric

// PartitionSchemeDescriptionClassification provides polymorphic access to related types.
// Call the interface's GetPartitionSchemeDescription() method to access the common type.
// Use a type switch to determine the concrete type.  The possible types are:
// - *NamedPartitionSchemeDescription, *PartitionSchemeDescription, *SingletonPartitionSchemeDescription, *UniformInt64RangePartitionSchemeDescription
type PartitionSchemeDescriptionClassification interface {
	// GetPartitionSchemeDescription returns the PartitionSchemeDescription content of the underlying type.
	GetPartitionSchemeDescription() *PartitionSchemeDescription
}

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

// 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
}

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