// Code generated by azure-service-operator-codegen. DO NOT EDIT.
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
package arm

type Route_STATUS struct {
	// Id: Resource ID.
	Id *string `json:"id,omitempty"`

	// Name: Resource name.
	Name *string `json:"name,omitempty"`

	// Properties: The JSON object that contains the properties of the Routes to create.
	Properties *RouteProperties_STATUS `json:"properties,omitempty"`

	// SystemData: Read only system data
	SystemData *SystemData_STATUS `json:"systemData,omitempty"`

	// Type: Resource type.
	Type *string `json:"type,omitempty"`
}

// The JSON object that contains the properties of the Routes to create.
type RouteProperties_STATUS struct {
	// CacheConfiguration: The caching configuration for this route. To disable caching, do not provide a cacheConfiguration
	// object.
	CacheConfiguration *AfdRouteCacheConfiguration_STATUS `json:"cacheConfiguration,omitempty"`

	// CustomDomains: Domains referenced by this endpoint.
	CustomDomains    []ActivatedResourceReference_STATUS_Profiles_AfdEndpoints_Route_SubResourceEmbedded `json:"customDomains,omitempty"`
	DeploymentStatus *RouteProperties_DeploymentStatus_STATUS                                            `json:"deploymentStatus,omitempty"`

	// EnabledState: Whether to enable use of this rule. Permitted values are 'Enabled' or 'Disabled'
	EnabledState *RouteProperties_EnabledState_STATUS `json:"enabledState,omitempty"`

	// EndpointName: The name of the endpoint which holds the route.
	EndpointName *string `json:"endpointName,omitempty"`

	// ForwardingProtocol: Protocol this rule will use when forwarding traffic to backends.
	ForwardingProtocol *RouteProperties_ForwardingProtocol_STATUS `json:"forwardingProtocol,omitempty"`

	// HttpsRedirect: Whether to automatically redirect HTTP traffic to HTTPS traffic. Note that this is a easy way to set up
	// this rule and it will be the first rule that gets executed.
	HttpsRedirect *RouteProperties_HttpsRedirect_STATUS `json:"httpsRedirect,omitempty"`

	// LinkToDefaultDomain: whether this route will be linked to the default endpoint domain.
	LinkToDefaultDomain *RouteProperties_LinkToDefaultDomain_STATUS `json:"linkToDefaultDomain,omitempty"`

	// OriginGroup: A reference to the origin group.
	OriginGroup *ResourceReference_STATUS `json:"originGroup,omitempty"`

	// OriginPath: A directory path on the origin that AzureFrontDoor can use to retrieve content from, e.g.
	// contoso.cloudapp.net/originpath.
	OriginPath *string `json:"originPath,omitempty"`

	// PatternsToMatch: The route patterns of the rule.
	PatternsToMatch []string `json:"patternsToMatch,omitempty"`

	// ProvisioningState: Provisioning status
	ProvisioningState *RouteProperties_ProvisioningState_STATUS `json:"provisioningState,omitempty"`

	// RuleSets: rule sets referenced by this endpoint.
	RuleSets []ResourceReference_STATUS `json:"ruleSets,omitempty"`

	// SupportedProtocols: List of supported protocols for this route.
	SupportedProtocols []AFDEndpointProtocols_STATUS `json:"supportedProtocols,omitempty"`
}

// Reference to another resource along with its state.
type ActivatedResourceReference_STATUS_Profiles_AfdEndpoints_Route_SubResourceEmbedded struct {
	// Id: Resource ID.
	Id *string `json:"id,omitempty"`
}

// Supported protocols for the customer's endpoint.
type AFDEndpointProtocols_STATUS string

const (
	AFDEndpointProtocols_STATUS_Http  = AFDEndpointProtocols_STATUS("Http")
	AFDEndpointProtocols_STATUS_Https = AFDEndpointProtocols_STATUS("Https")
)

// Mapping from string to AFDEndpointProtocols_STATUS
var aFDEndpointProtocols_STATUS_Values = map[string]AFDEndpointProtocols_STATUS{
	"http":  AFDEndpointProtocols_STATUS_Http,
	"https": AFDEndpointProtocols_STATUS_Https,
}

// Caching settings for a caching-type route. To disable caching, do not provide a cacheConfiguration object.
type AfdRouteCacheConfiguration_STATUS struct {
	// CompressionSettings: compression settings.
	CompressionSettings *CompressionSettings_STATUS `json:"compressionSettings,omitempty"`

	// QueryParameters: query parameters to include or exclude (comma separated).
	QueryParameters *string `json:"queryParameters,omitempty"`

	// QueryStringCachingBehavior: Defines how Frontdoor caches requests that include query strings. You can ignore any query
	// strings when caching, ignore specific query strings, cache every request with a unique URL, or cache specific query
	// strings.
	QueryStringCachingBehavior *AfdRouteCacheConfiguration_QueryStringCachingBehavior_STATUS `json:"queryStringCachingBehavior,omitempty"`
}

type RouteProperties_DeploymentStatus_STATUS string

const (
	RouteProperties_DeploymentStatus_STATUS_Failed     = RouteProperties_DeploymentStatus_STATUS("Failed")
	RouteProperties_DeploymentStatus_STATUS_InProgress = RouteProperties_DeploymentStatus_STATUS("InProgress")
	RouteProperties_DeploymentStatus_STATUS_NotStarted = RouteProperties_DeploymentStatus_STATUS("NotStarted")
	RouteProperties_DeploymentStatus_STATUS_Succeeded  = RouteProperties_DeploymentStatus_STATUS("Succeeded")
)

// Mapping from string to RouteProperties_DeploymentStatus_STATUS
var routeProperties_DeploymentStatus_STATUS_Values = map[string]RouteProperties_DeploymentStatus_STATUS{
	"failed":     RouteProperties_DeploymentStatus_STATUS_Failed,
	"inprogress": RouteProperties_DeploymentStatus_STATUS_InProgress,
	"notstarted": RouteProperties_DeploymentStatus_STATUS_NotStarted,
	"succeeded":  RouteProperties_DeploymentStatus_STATUS_Succeeded,
}

type RouteProperties_EnabledState_STATUS string

const (
	RouteProperties_EnabledState_STATUS_Disabled = RouteProperties_EnabledState_STATUS("Disabled")
	RouteProperties_EnabledState_STATUS_Enabled  = RouteProperties_EnabledState_STATUS("Enabled")
)

// Mapping from string to RouteProperties_EnabledState_STATUS
var routeProperties_EnabledState_STATUS_Values = map[string]RouteProperties_EnabledState_STATUS{
	"disabled": RouteProperties_EnabledState_STATUS_Disabled,
	"enabled":  RouteProperties_EnabledState_STATUS_Enabled,
}

type RouteProperties_ForwardingProtocol_STATUS string

const (
	RouteProperties_ForwardingProtocol_STATUS_HttpOnly     = RouteProperties_ForwardingProtocol_STATUS("HttpOnly")
	RouteProperties_ForwardingProtocol_STATUS_HttpsOnly    = RouteProperties_ForwardingProtocol_STATUS("HttpsOnly")
	RouteProperties_ForwardingProtocol_STATUS_MatchRequest = RouteProperties_ForwardingProtocol_STATUS("MatchRequest")
)

// Mapping from string to RouteProperties_ForwardingProtocol_STATUS
var routeProperties_ForwardingProtocol_STATUS_Values = map[string]RouteProperties_ForwardingProtocol_STATUS{
	"httponly":     RouteProperties_ForwardingProtocol_STATUS_HttpOnly,
	"httpsonly":    RouteProperties_ForwardingProtocol_STATUS_HttpsOnly,
	"matchrequest": RouteProperties_ForwardingProtocol_STATUS_MatchRequest,
}

type RouteProperties_HttpsRedirect_STATUS string

const (
	RouteProperties_HttpsRedirect_STATUS_Disabled = RouteProperties_HttpsRedirect_STATUS("Disabled")
	RouteProperties_HttpsRedirect_STATUS_Enabled  = RouteProperties_HttpsRedirect_STATUS("Enabled")
)

// Mapping from string to RouteProperties_HttpsRedirect_STATUS
var routeProperties_HttpsRedirect_STATUS_Values = map[string]RouteProperties_HttpsRedirect_STATUS{
	"disabled": RouteProperties_HttpsRedirect_STATUS_Disabled,
	"enabled":  RouteProperties_HttpsRedirect_STATUS_Enabled,
}

type RouteProperties_LinkToDefaultDomain_STATUS string

const (
	RouteProperties_LinkToDefaultDomain_STATUS_Disabled = RouteProperties_LinkToDefaultDomain_STATUS("Disabled")
	RouteProperties_LinkToDefaultDomain_STATUS_Enabled  = RouteProperties_LinkToDefaultDomain_STATUS("Enabled")
)

// Mapping from string to RouteProperties_LinkToDefaultDomain_STATUS
var routeProperties_LinkToDefaultDomain_STATUS_Values = map[string]RouteProperties_LinkToDefaultDomain_STATUS{
	"disabled": RouteProperties_LinkToDefaultDomain_STATUS_Disabled,
	"enabled":  RouteProperties_LinkToDefaultDomain_STATUS_Enabled,
}

type RouteProperties_ProvisioningState_STATUS string

const (
	RouteProperties_ProvisioningState_STATUS_Creating  = RouteProperties_ProvisioningState_STATUS("Creating")
	RouteProperties_ProvisioningState_STATUS_Deleting  = RouteProperties_ProvisioningState_STATUS("Deleting")
	RouteProperties_ProvisioningState_STATUS_Failed    = RouteProperties_ProvisioningState_STATUS("Failed")
	RouteProperties_ProvisioningState_STATUS_Succeeded = RouteProperties_ProvisioningState_STATUS("Succeeded")
	RouteProperties_ProvisioningState_STATUS_Updating  = RouteProperties_ProvisioningState_STATUS("Updating")
)

// Mapping from string to RouteProperties_ProvisioningState_STATUS
var routeProperties_ProvisioningState_STATUS_Values = map[string]RouteProperties_ProvisioningState_STATUS{
	"creating":  RouteProperties_ProvisioningState_STATUS_Creating,
	"deleting":  RouteProperties_ProvisioningState_STATUS_Deleting,
	"failed":    RouteProperties_ProvisioningState_STATUS_Failed,
	"succeeded": RouteProperties_ProvisioningState_STATUS_Succeeded,
	"updating":  RouteProperties_ProvisioningState_STATUS_Updating,
}

type AfdRouteCacheConfiguration_QueryStringCachingBehavior_STATUS string

const (
	AfdRouteCacheConfiguration_QueryStringCachingBehavior_STATUS_IgnoreQueryString            = AfdRouteCacheConfiguration_QueryStringCachingBehavior_STATUS("IgnoreQueryString")
	AfdRouteCacheConfiguration_QueryStringCachingBehavior_STATUS_IgnoreSpecifiedQueryStrings  = AfdRouteCacheConfiguration_QueryStringCachingBehavior_STATUS("IgnoreSpecifiedQueryStrings")
	AfdRouteCacheConfiguration_QueryStringCachingBehavior_STATUS_IncludeSpecifiedQueryStrings = AfdRouteCacheConfiguration_QueryStringCachingBehavior_STATUS("IncludeSpecifiedQueryStrings")
	AfdRouteCacheConfiguration_QueryStringCachingBehavior_STATUS_UseQueryString               = AfdRouteCacheConfiguration_QueryStringCachingBehavior_STATUS("UseQueryString")
)

// Mapping from string to AfdRouteCacheConfiguration_QueryStringCachingBehavior_STATUS
var afdRouteCacheConfiguration_QueryStringCachingBehavior_STATUS_Values = map[string]AfdRouteCacheConfiguration_QueryStringCachingBehavior_STATUS{
	"ignorequerystring":            AfdRouteCacheConfiguration_QueryStringCachingBehavior_STATUS_IgnoreQueryString,
	"ignorespecifiedquerystrings":  AfdRouteCacheConfiguration_QueryStringCachingBehavior_STATUS_IgnoreSpecifiedQueryStrings,
	"includespecifiedquerystrings": AfdRouteCacheConfiguration_QueryStringCachingBehavior_STATUS_IncludeSpecifiedQueryStrings,
	"usequerystring":               AfdRouteCacheConfiguration_QueryStringCachingBehavior_STATUS_UseQueryString,
}

// settings for compression.
type CompressionSettings_STATUS struct {
	// ContentTypesToCompress: List of content types on which compression applies. The value should be a valid MIME type.
	ContentTypesToCompress []string `json:"contentTypesToCompress,omitempty"`

	// IsCompressionEnabled: Indicates whether content compression is enabled on AzureFrontDoor. Default value is false. If
	// compression is enabled, content will be served as compressed if user requests for a compressed version. Content won't be
	// compressed on AzureFrontDoor when requested content is smaller than 1 byte or larger than 1 MB.
	IsCompressionEnabled *bool `json:"isCompressionEnabled,omitempty"`
}
