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

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

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

// SignalDefinitionPropertiesClassification provides polymorphic access to related types.
// Call the interface's GetSignalDefinitionProperties() method to access the common type.
// Use a type switch to determine the concrete type.  The possible types are:
// - *LogAnalyticsQuerySignalDefinitionProperties, *PrometheusMetricsSignalDefinitionProperties, *ResourceMetricSignalDefinitionProperties,
// - *SignalDefinitionProperties
type SignalDefinitionPropertiesClassification interface {
	// GetSignalDefinitionProperties returns the SignalDefinitionProperties content of the underlying type.
	GetSignalDefinitionProperties() *SignalDefinitionProperties
}

// SignalInstancePropertiesClassification provides polymorphic access to related types.
// Call the interface's GetSignalInstanceProperties() method to access the common type.
// Use a type switch to determine the concrete type.  The possible types are:
// - *AzureResourceSignal, *ExternalSignal, *LogAnalyticsSignal, *PrometheusMetricsSignal, *SignalInstanceProperties
type SignalInstancePropertiesClassification interface {
	// GetSignalInstanceProperties returns the SignalInstanceProperties content of the underlying type.
	GetSignalInstanceProperties() *SignalInstanceProperties
}
