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

type AfdOriginGroup_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 origin group.
	Properties *AFDOriginGroupProperties_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 origin group.
type AFDOriginGroupProperties_STATUS struct {
	DeploymentStatus *AFDOriginGroupProperties_DeploymentStatus_STATUS `json:"deploymentStatus,omitempty"`

	// HealthProbeSettings: Health probe settings to the origin that is used to determine the health of the origin.
	HealthProbeSettings *HealthProbeParameters_STATUS `json:"healthProbeSettings,omitempty"`

	// LoadBalancingSettings: Load balancing settings for a backend pool
	LoadBalancingSettings *LoadBalancingSettingsParameters_STATUS `json:"loadBalancingSettings,omitempty"`

	// ProfileName: The name of the profile which holds the origin group.
	ProfileName *string `json:"profileName,omitempty"`

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

	// SessionAffinityState: Whether to allow session affinity on this host. Valid options are 'Enabled' or 'Disabled'
	SessionAffinityState *AFDOriginGroupProperties_SessionAffinityState_STATUS `json:"sessionAffinityState,omitempty"`

	// TrafficRestorationTimeToHealedOrNewEndpointsInMinutes: Time in minutes to shift the traffic to the endpoint gradually
	// when an unhealthy endpoint comes healthy or a new endpoint is added. Default is 10 mins. This property is currently not
	// supported.
	TrafficRestorationTimeToHealedOrNewEndpointsInMinutes *int `json:"trafficRestorationTimeToHealedOrNewEndpointsInMinutes,omitempty"`
}

type AFDOriginGroupProperties_DeploymentStatus_STATUS string

const (
	AFDOriginGroupProperties_DeploymentStatus_STATUS_Failed     = AFDOriginGroupProperties_DeploymentStatus_STATUS("Failed")
	AFDOriginGroupProperties_DeploymentStatus_STATUS_InProgress = AFDOriginGroupProperties_DeploymentStatus_STATUS("InProgress")
	AFDOriginGroupProperties_DeploymentStatus_STATUS_NotStarted = AFDOriginGroupProperties_DeploymentStatus_STATUS("NotStarted")
	AFDOriginGroupProperties_DeploymentStatus_STATUS_Succeeded  = AFDOriginGroupProperties_DeploymentStatus_STATUS("Succeeded")
)

// Mapping from string to AFDOriginGroupProperties_DeploymentStatus_STATUS
var aFDOriginGroupProperties_DeploymentStatus_STATUS_Values = map[string]AFDOriginGroupProperties_DeploymentStatus_STATUS{
	"failed":     AFDOriginGroupProperties_DeploymentStatus_STATUS_Failed,
	"inprogress": AFDOriginGroupProperties_DeploymentStatus_STATUS_InProgress,
	"notstarted": AFDOriginGroupProperties_DeploymentStatus_STATUS_NotStarted,
	"succeeded":  AFDOriginGroupProperties_DeploymentStatus_STATUS_Succeeded,
}

type AFDOriginGroupProperties_ProvisioningState_STATUS string

const (
	AFDOriginGroupProperties_ProvisioningState_STATUS_Creating  = AFDOriginGroupProperties_ProvisioningState_STATUS("Creating")
	AFDOriginGroupProperties_ProvisioningState_STATUS_Deleting  = AFDOriginGroupProperties_ProvisioningState_STATUS("Deleting")
	AFDOriginGroupProperties_ProvisioningState_STATUS_Failed    = AFDOriginGroupProperties_ProvisioningState_STATUS("Failed")
	AFDOriginGroupProperties_ProvisioningState_STATUS_Succeeded = AFDOriginGroupProperties_ProvisioningState_STATUS("Succeeded")
	AFDOriginGroupProperties_ProvisioningState_STATUS_Updating  = AFDOriginGroupProperties_ProvisioningState_STATUS("Updating")
)

// Mapping from string to AFDOriginGroupProperties_ProvisioningState_STATUS
var aFDOriginGroupProperties_ProvisioningState_STATUS_Values = map[string]AFDOriginGroupProperties_ProvisioningState_STATUS{
	"creating":  AFDOriginGroupProperties_ProvisioningState_STATUS_Creating,
	"deleting":  AFDOriginGroupProperties_ProvisioningState_STATUS_Deleting,
	"failed":    AFDOriginGroupProperties_ProvisioningState_STATUS_Failed,
	"succeeded": AFDOriginGroupProperties_ProvisioningState_STATUS_Succeeded,
	"updating":  AFDOriginGroupProperties_ProvisioningState_STATUS_Updating,
}

type AFDOriginGroupProperties_SessionAffinityState_STATUS string

const (
	AFDOriginGroupProperties_SessionAffinityState_STATUS_Disabled = AFDOriginGroupProperties_SessionAffinityState_STATUS("Disabled")
	AFDOriginGroupProperties_SessionAffinityState_STATUS_Enabled  = AFDOriginGroupProperties_SessionAffinityState_STATUS("Enabled")
)

// Mapping from string to AFDOriginGroupProperties_SessionAffinityState_STATUS
var aFDOriginGroupProperties_SessionAffinityState_STATUS_Values = map[string]AFDOriginGroupProperties_SessionAffinityState_STATUS{
	"disabled": AFDOriginGroupProperties_SessionAffinityState_STATUS_Disabled,
	"enabled":  AFDOriginGroupProperties_SessionAffinityState_STATUS_Enabled,
}

// The JSON object that contains the properties to send health probes to origin.
type HealthProbeParameters_STATUS struct {
	// ProbeIntervalInSeconds: The number of seconds between health probes.Default is 240sec.
	ProbeIntervalInSeconds *int `json:"probeIntervalInSeconds,omitempty"`

	// ProbePath: The path relative to the origin that is used to determine the health of the origin.
	ProbePath *string `json:"probePath,omitempty"`

	// ProbeProtocol: Protocol to use for health probe.
	ProbeProtocol *HealthProbeParameters_ProbeProtocol_STATUS `json:"probeProtocol,omitempty"`

	// ProbeRequestType: The type of health probe request that is made.
	ProbeRequestType *HealthProbeParameters_ProbeRequestType_STATUS `json:"probeRequestType,omitempty"`
}

// Round-Robin load balancing settings for a backend pool
type LoadBalancingSettingsParameters_STATUS struct {
	// AdditionalLatencyInMilliseconds: The additional latency in milliseconds for probes to fall into the lowest latency bucket
	AdditionalLatencyInMilliseconds *int `json:"additionalLatencyInMilliseconds,omitempty"`

	// SampleSize: The number of samples to consider for load balancing decisions
	SampleSize *int `json:"sampleSize,omitempty"`

	// SuccessfulSamplesRequired: The number of samples within the sample period that must succeed
	SuccessfulSamplesRequired *int `json:"successfulSamplesRequired,omitempty"`
}

type HealthProbeParameters_ProbeProtocol_STATUS string

const (
	HealthProbeParameters_ProbeProtocol_STATUS_Http   = HealthProbeParameters_ProbeProtocol_STATUS("Http")
	HealthProbeParameters_ProbeProtocol_STATUS_Https  = HealthProbeParameters_ProbeProtocol_STATUS("Https")
	HealthProbeParameters_ProbeProtocol_STATUS_NotSet = HealthProbeParameters_ProbeProtocol_STATUS("NotSet")
)

// Mapping from string to HealthProbeParameters_ProbeProtocol_STATUS
var healthProbeParameters_ProbeProtocol_STATUS_Values = map[string]HealthProbeParameters_ProbeProtocol_STATUS{
	"http":   HealthProbeParameters_ProbeProtocol_STATUS_Http,
	"https":  HealthProbeParameters_ProbeProtocol_STATUS_Https,
	"notset": HealthProbeParameters_ProbeProtocol_STATUS_NotSet,
}

type HealthProbeParameters_ProbeRequestType_STATUS string

const (
	HealthProbeParameters_ProbeRequestType_STATUS_GET    = HealthProbeParameters_ProbeRequestType_STATUS("GET")
	HealthProbeParameters_ProbeRequestType_STATUS_HEAD   = HealthProbeParameters_ProbeRequestType_STATUS("HEAD")
	HealthProbeParameters_ProbeRequestType_STATUS_NotSet = HealthProbeParameters_ProbeRequestType_STATUS("NotSet")
)

// Mapping from string to HealthProbeParameters_ProbeRequestType_STATUS
var healthProbeParameters_ProbeRequestType_STATUS_Values = map[string]HealthProbeParameters_ProbeRequestType_STATUS{
	"get":    HealthProbeParameters_ProbeRequestType_STATUS_GET,
	"head":   HealthProbeParameters_ProbeRequestType_STATUS_HEAD,
	"notset": HealthProbeParameters_ProbeRequestType_STATUS_NotSet,
}
