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

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

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

// DeliveryRuleActionClassification provides polymorphic access to related types.
// Call the interface's GetDeliveryRuleAction() method to access the common type.
// Use a type switch to determine the concrete type.  The possible types are:
// - *DeliveryRuleAction, *DeliveryRuleCacheExpirationAction, *DeliveryRuleCacheKeyQueryStringAction, *DeliveryRuleRequestHeaderAction,
// - *DeliveryRuleResponseHeaderAction, *DeliveryRuleRouteConfigurationOverrideAction, *OriginGroupOverrideAction, *URLRedirectAction,
// - *URLRewriteAction, *URLSigningAction
type DeliveryRuleActionClassification interface {
	// GetDeliveryRuleAction returns the DeliveryRuleAction content of the underlying type.
	GetDeliveryRuleAction() *DeliveryRuleAction
}

// DeliveryRuleActionParametersClassification provides polymorphic access to related types.
// Call the interface's GetDeliveryRuleActionParameters() method to access the common type.
// Use a type switch to determine the concrete type.  The possible types are:
// - *CacheExpirationActionParameters, *CacheKeyQueryStringActionParameters, *DeliveryRuleActionParameters, *HeaderActionParameters,
// - *OriginGroupOverrideActionParameters, *RouteConfigurationOverrideActionParameters, *URLRedirectActionParameters, *URLRewriteActionParameters,
// - *URLSigningActionParameters
type DeliveryRuleActionParametersClassification interface {
	// GetDeliveryRuleActionParameters returns the DeliveryRuleActionParameters content of the underlying type.
	GetDeliveryRuleActionParameters() *DeliveryRuleActionParameters
}

// DeliveryRuleConditionClassification provides polymorphic access to related types.
// Call the interface's GetDeliveryRuleCondition() method to access the common type.
// Use a type switch to determine the concrete type.  The possible types are:
// - *DeliveryRuleClientPortCondition, *DeliveryRuleCondition, *DeliveryRuleCookiesCondition, *DeliveryRuleHTTPVersionCondition,
// - *DeliveryRuleHostNameCondition, *DeliveryRuleIsDeviceCondition, *DeliveryRulePostArgsCondition, *DeliveryRuleQueryStringCondition,
// - *DeliveryRuleRemoteAddressCondition, *DeliveryRuleRequestBodyCondition, *DeliveryRuleRequestHeaderCondition, *DeliveryRuleRequestMethodCondition,
// - *DeliveryRuleRequestSchemeCondition, *DeliveryRuleRequestURICondition, *DeliveryRuleSSLProtocolCondition, *DeliveryRuleServerPortCondition,
// - *DeliveryRuleSocketAddrCondition, *DeliveryRuleURLFileExtensionCondition, *DeliveryRuleURLFileNameCondition, *DeliveryRuleURLPathCondition
type DeliveryRuleConditionClassification interface {
	// GetDeliveryRuleCondition returns the DeliveryRuleCondition content of the underlying type.
	GetDeliveryRuleCondition() *DeliveryRuleCondition
}

// DeliveryRuleConditionParametersClassification provides polymorphic access to related types.
// Call the interface's GetDeliveryRuleConditionParameters() method to access the common type.
// Use a type switch to determine the concrete type.  The possible types are:
// - *ClientPortMatchConditionParameters, *CookiesMatchConditionParameters, *DeliveryRuleConditionParameters, *HTTPVersionMatchConditionParameters,
// - *HostNameMatchConditionParameters, *IsDeviceMatchConditionParameters, *PostArgsMatchConditionParameters, *QueryStringMatchConditionParameters,
// - *RemoteAddressMatchConditionParameters, *RequestBodyMatchConditionParameters, *RequestHeaderMatchConditionParameters,
// - *RequestMethodMatchConditionParameters, *RequestSchemeMatchConditionParameters, *RequestURIMatchConditionParameters,
// - *SSLProtocolMatchConditionParameters, *ServerPortMatchConditionParameters, *SocketAddrMatchConditionParameters, *URLFileExtensionMatchConditionParameters,
// - *URLFileNameMatchConditionParameters, *URLPathMatchConditionParameters
type DeliveryRuleConditionParametersClassification interface {
	// GetDeliveryRuleConditionParameters returns the DeliveryRuleConditionParameters content of the underlying type.
	GetDeliveryRuleConditionParameters() *DeliveryRuleConditionParameters
}

// SecretParametersClassification provides polymorphic access to related types.
// Call the interface's GetSecretParameters() method to access the common type.
// Use a type switch to determine the concrete type.  The possible types are:
// - *AzureFirstPartyManagedCertificateParameters, *CustomerCertificateParameters, *ManagedCertificateParameters, *SecretParameters,
// - *URLSigningKeyParameters
type SecretParametersClassification interface {
	// GetSecretParameters returns the SecretParameters content of the underlying type.
	GetSecretParameters() *SecretParameters
}

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