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

// AddonPropertiesClassification provides polymorphic access to related types.
// Call the interface's GetAddonProperties() method to access the common type.
// Use a type switch to determine the concrete type.  The possible types are:
// - *AddonArcProperties, *AddonHcxProperties, *AddonProperties, *AddonSrmProperties, *AddonVrProperties
type AddonPropertiesClassification interface {
	// GetAddonProperties returns the AddonProperties content of the underlying type.
	GetAddonProperties() *AddonProperties
}

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

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

// ScriptExecutionParameterClassification provides polymorphic access to related types.
// Call the interface's GetScriptExecutionParameter() method to access the common type.
// Use a type switch to determine the concrete type.  The possible types are:
// - *PSCredentialExecutionParameter, *ScriptExecutionParameter, *ScriptSecureStringExecutionParameter, *ScriptStringExecutionParameter
type ScriptExecutionParameterClassification interface {
	// GetScriptExecutionParameter returns the ScriptExecutionParameter content of the underlying type.
	GetScriptExecutionParameter() *ScriptExecutionParameter
}

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