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

// A profile is a logical grouping of endpoints that share the same settings.
type Profile_STATUS struct {
	// Id: Resource ID.
	Id *string `json:"id,omitempty"`

	// Kind: Kind of the profile. Used by portal to differentiate traditional CDN profile and new AFD profile.
	Kind *string `json:"kind,omitempty"`

	// Location: Resource location.
	Location *string `json:"location,omitempty"`

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

	// Properties: The JSON object that contains the properties required to create a profile.
	Properties *ProfileProperties_STATUS `json:"properties,omitempty"`

	// Sku: The pricing tier (defines Azure Front Door Standard or Premium or a CDN provider, feature list and rate) of the
	// profile.
	Sku *Sku_STATUS `json:"sku,omitempty"`

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

	// Tags: Resource tags.
	Tags map[string]string `json:"tags,omitempty"`

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

// The JSON object that contains the properties required to create a profile.
type ProfileProperties_STATUS struct {
	// FrontDoorId: The Id of the frontdoor.
	FrontDoorId *string `json:"frontDoorId,omitempty"`

	// OriginResponseTimeoutSeconds: Send and receive timeout on forwarding request to the origin. When timeout is reached, the
	// request fails and returns.
	OriginResponseTimeoutSeconds *int `json:"originResponseTimeoutSeconds,omitempty"`

	// ProvisioningState: Provisioning status of the profile.
	ProvisioningState *ProfileProperties_ProvisioningState_STATUS `json:"provisioningState,omitempty"`

	// ResourceState: Resource status of the profile.
	ResourceState *ProfileProperties_ResourceState_STATUS `json:"resourceState,omitempty"`
}

// Standard_Verizon = The SKU name for a Standard Verizon CDN profile.
// Premium_Verizon = The SKU name for a Premium Verizon
// CDN profile.
// Custom_Verizon = The SKU name for a Custom Verizon CDN profile.
// Standard_Akamai = The SKU name for an
// Akamai CDN profile.
// Standard_ChinaCdn = The SKU name for a China CDN profile for VOD, Web and download scenarios using
// GB based billing model.
// Standard_Microsoft = The SKU name for a Standard Microsoft CDN profile.
// Standard_AzureFrontDoor
// =  The SKU name for an Azure Front Door Standard profile.
// Premium_AzureFrontDoor = The SKU name for an Azure Front Door
// Premium profile.
// Standard_955BandWidth_ChinaCdn = The SKU name for a China CDN profile for VOD, Web and download
// scenarios using 95-5 peak bandwidth billing model.
// Standard_AvgBandWidth_ChinaCdn = The SKU name for a China CDN profile
// for VOD, Web and download scenarios using monthly average peak bandwidth billing model.
// StandardPlus_ChinaCdn = The SKU
// name for a China CDN profile for live-streaming using GB based billing model.
// StandardPlus_955BandWidth_ChinaCdn = The
// SKU name for a China CDN live-streaming profile using 95-5 peak bandwidth billing
// model.
// StandardPlus_AvgBandWidth_ChinaCdn = The SKU name for a China CDN live-streaming profile using monthly average
// peak bandwidth billing model.
type Sku_STATUS struct {
	// Name: Name of the pricing tier.
	Name *Sku_Name_STATUS `json:"name,omitempty"`
}

// Read only system data
type SystemData_STATUS struct {
	// CreatedAt: The timestamp of resource creation (UTC)
	CreatedAt *string `json:"createdAt,omitempty"`

	// CreatedBy: An identifier for the identity that created the resource
	CreatedBy *string `json:"createdBy,omitempty"`

	// CreatedByType: The type of identity that created the resource
	CreatedByType *IdentityType_STATUS `json:"createdByType,omitempty"`

	// LastModifiedAt: The timestamp of resource last modification (UTC)
	LastModifiedAt *string `json:"lastModifiedAt,omitempty"`

	// LastModifiedBy: An identifier for the identity that last modified the resource
	LastModifiedBy *string `json:"lastModifiedBy,omitempty"`

	// LastModifiedByType: The type of identity that last modified the resource
	LastModifiedByType *IdentityType_STATUS `json:"lastModifiedByType,omitempty"`
}

// The type of identity that creates/modifies resources
type IdentityType_STATUS string

const (
	IdentityType_STATUS_Application     = IdentityType_STATUS("application")
	IdentityType_STATUS_Key             = IdentityType_STATUS("key")
	IdentityType_STATUS_ManagedIdentity = IdentityType_STATUS("managedIdentity")
	IdentityType_STATUS_User            = IdentityType_STATUS("user")
)

// Mapping from string to IdentityType_STATUS
var identityType_STATUS_Values = map[string]IdentityType_STATUS{
	"application":     IdentityType_STATUS_Application,
	"key":             IdentityType_STATUS_Key,
	"managedidentity": IdentityType_STATUS_ManagedIdentity,
	"user":            IdentityType_STATUS_User,
}

type ProfileProperties_ProvisioningState_STATUS string

const (
	ProfileProperties_ProvisioningState_STATUS_Creating  = ProfileProperties_ProvisioningState_STATUS("Creating")
	ProfileProperties_ProvisioningState_STATUS_Deleting  = ProfileProperties_ProvisioningState_STATUS("Deleting")
	ProfileProperties_ProvisioningState_STATUS_Failed    = ProfileProperties_ProvisioningState_STATUS("Failed")
	ProfileProperties_ProvisioningState_STATUS_Succeeded = ProfileProperties_ProvisioningState_STATUS("Succeeded")
	ProfileProperties_ProvisioningState_STATUS_Updating  = ProfileProperties_ProvisioningState_STATUS("Updating")
)

// Mapping from string to ProfileProperties_ProvisioningState_STATUS
var profileProperties_ProvisioningState_STATUS_Values = map[string]ProfileProperties_ProvisioningState_STATUS{
	"creating":  ProfileProperties_ProvisioningState_STATUS_Creating,
	"deleting":  ProfileProperties_ProvisioningState_STATUS_Deleting,
	"failed":    ProfileProperties_ProvisioningState_STATUS_Failed,
	"succeeded": ProfileProperties_ProvisioningState_STATUS_Succeeded,
	"updating":  ProfileProperties_ProvisioningState_STATUS_Updating,
}

type ProfileProperties_ResourceState_STATUS string

const (
	ProfileProperties_ResourceState_STATUS_Active   = ProfileProperties_ResourceState_STATUS("Active")
	ProfileProperties_ResourceState_STATUS_Creating = ProfileProperties_ResourceState_STATUS("Creating")
	ProfileProperties_ResourceState_STATUS_Deleting = ProfileProperties_ResourceState_STATUS("Deleting")
	ProfileProperties_ResourceState_STATUS_Disabled = ProfileProperties_ResourceState_STATUS("Disabled")
)

// Mapping from string to ProfileProperties_ResourceState_STATUS
var profileProperties_ResourceState_STATUS_Values = map[string]ProfileProperties_ResourceState_STATUS{
	"active":   ProfileProperties_ResourceState_STATUS_Active,
	"creating": ProfileProperties_ResourceState_STATUS_Creating,
	"deleting": ProfileProperties_ResourceState_STATUS_Deleting,
	"disabled": ProfileProperties_ResourceState_STATUS_Disabled,
}

type Sku_Name_STATUS string

const (
	Sku_Name_STATUS_Custom_Verizon                     = Sku_Name_STATUS("Custom_Verizon")
	Sku_Name_STATUS_Premium_AzureFrontDoor             = Sku_Name_STATUS("Premium_AzureFrontDoor")
	Sku_Name_STATUS_Premium_Verizon                    = Sku_Name_STATUS("Premium_Verizon")
	Sku_Name_STATUS_StandardPlus_955BandWidth_ChinaCdn = Sku_Name_STATUS("StandardPlus_955BandWidth_ChinaCdn")
	Sku_Name_STATUS_StandardPlus_AvgBandWidth_ChinaCdn = Sku_Name_STATUS("StandardPlus_AvgBandWidth_ChinaCdn")
	Sku_Name_STATUS_StandardPlus_ChinaCdn              = Sku_Name_STATUS("StandardPlus_ChinaCdn")
	Sku_Name_STATUS_Standard_955BandWidth_ChinaCdn     = Sku_Name_STATUS("Standard_955BandWidth_ChinaCdn")
	Sku_Name_STATUS_Standard_Akamai                    = Sku_Name_STATUS("Standard_Akamai")
	Sku_Name_STATUS_Standard_AvgBandWidth_ChinaCdn     = Sku_Name_STATUS("Standard_AvgBandWidth_ChinaCdn")
	Sku_Name_STATUS_Standard_AzureFrontDoor            = Sku_Name_STATUS("Standard_AzureFrontDoor")
	Sku_Name_STATUS_Standard_ChinaCdn                  = Sku_Name_STATUS("Standard_ChinaCdn")
	Sku_Name_STATUS_Standard_Microsoft                 = Sku_Name_STATUS("Standard_Microsoft")
	Sku_Name_STATUS_Standard_Verizon                   = Sku_Name_STATUS("Standard_Verizon")
)

// Mapping from string to Sku_Name_STATUS
var sku_Name_STATUS_Values = map[string]Sku_Name_STATUS{
	"custom_verizon":                     Sku_Name_STATUS_Custom_Verizon,
	"premium_azurefrontdoor":             Sku_Name_STATUS_Premium_AzureFrontDoor,
	"premium_verizon":                    Sku_Name_STATUS_Premium_Verizon,
	"standardplus_955bandwidth_chinacdn": Sku_Name_STATUS_StandardPlus_955BandWidth_ChinaCdn,
	"standardplus_avgbandwidth_chinacdn": Sku_Name_STATUS_StandardPlus_AvgBandWidth_ChinaCdn,
	"standardplus_chinacdn":              Sku_Name_STATUS_StandardPlus_ChinaCdn,
	"standard_955bandwidth_chinacdn":     Sku_Name_STATUS_Standard_955BandWidth_ChinaCdn,
	"standard_akamai":                    Sku_Name_STATUS_Standard_Akamai,
	"standard_avgbandwidth_chinacdn":     Sku_Name_STATUS_Standard_AvgBandWidth_ChinaCdn,
	"standard_azurefrontdoor":            Sku_Name_STATUS_Standard_AzureFrontDoor,
	"standard_chinacdn":                  Sku_Name_STATUS_Standard_ChinaCdn,
	"standard_microsoft":                 Sku_Name_STATUS_Standard_Microsoft,
	"standard_verizon":                   Sku_Name_STATUS_Standard_Verizon,
}
