// 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"`

	// Identity: Managed service identity (system assigned and/or user assigned identities).
	Identity *ManagedServiceIdentity_STATUS `json:"identity,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"`
}

// Managed service identity (system assigned and/or user assigned identities)
type ManagedServiceIdentity_STATUS struct {
	// PrincipalId: The service principal ID of the system assigned identity. This property will only be provided for a system
	// assigned identity.
	PrincipalId *string `json:"principalId,omitempty"`

	// TenantId: The tenant ID of the system assigned identity. This property will only be provided for a system assigned
	// identity.
	TenantId *string `json:"tenantId,omitempty"`

	// Type: Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).
	Type                   *ManagedServiceIdentityType_STATUS     `json:"type,omitempty"`
	UserAssignedIdentities map[string]UserAssignedIdentity_STATUS `json:"userAssignedIdentities,omitempty"`
}

// The JSON object that contains the properties required to create a profile.
type ProfileProperties_STATUS struct {
	// ExtendedProperties: Key-Value pair representing additional properties for profiles.
	ExtendedProperties map[string]string `json:"extendedProperties,omitempty"`

	// 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"`
}

// Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).
type ManagedServiceIdentityType_STATUS string

const (
	ManagedServiceIdentityType_STATUS_None                       = ManagedServiceIdentityType_STATUS("None")
	ManagedServiceIdentityType_STATUS_SystemAssigned             = ManagedServiceIdentityType_STATUS("SystemAssigned")
	ManagedServiceIdentityType_STATUS_SystemAssignedUserAssigned = ManagedServiceIdentityType_STATUS("SystemAssigned, UserAssigned")
	ManagedServiceIdentityType_STATUS_UserAssigned               = ManagedServiceIdentityType_STATUS("UserAssigned")
)

// Mapping from string to ManagedServiceIdentityType_STATUS
var managedServiceIdentityType_STATUS_Values = map[string]ManagedServiceIdentityType_STATUS{
	"none":                         ManagedServiceIdentityType_STATUS_None,
	"systemassigned":               ManagedServiceIdentityType_STATUS_SystemAssigned,
	"systemassigned, userassigned": ManagedServiceIdentityType_STATUS_SystemAssignedUserAssigned,
	"userassigned":                 ManagedServiceIdentityType_STATUS_UserAssigned,
}

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_AbortingMigration      = ProfileProperties_ResourceState_STATUS("AbortingMigration")
	ProfileProperties_ResourceState_STATUS_Active                 = ProfileProperties_ResourceState_STATUS("Active")
	ProfileProperties_ResourceState_STATUS_CommittingMigration    = ProfileProperties_ResourceState_STATUS("CommittingMigration")
	ProfileProperties_ResourceState_STATUS_Creating               = ProfileProperties_ResourceState_STATUS("Creating")
	ProfileProperties_ResourceState_STATUS_Deleting               = ProfileProperties_ResourceState_STATUS("Deleting")
	ProfileProperties_ResourceState_STATUS_Disabled               = ProfileProperties_ResourceState_STATUS("Disabled")
	ProfileProperties_ResourceState_STATUS_Migrated               = ProfileProperties_ResourceState_STATUS("Migrated")
	ProfileProperties_ResourceState_STATUS_Migrating              = ProfileProperties_ResourceState_STATUS("Migrating")
	ProfileProperties_ResourceState_STATUS_PendingMigrationCommit = ProfileProperties_ResourceState_STATUS("PendingMigrationCommit")
)

// Mapping from string to ProfileProperties_ResourceState_STATUS
var profileProperties_ResourceState_STATUS_Values = map[string]ProfileProperties_ResourceState_STATUS{
	"abortingmigration":      ProfileProperties_ResourceState_STATUS_AbortingMigration,
	"active":                 ProfileProperties_ResourceState_STATUS_Active,
	"committingmigration":    ProfileProperties_ResourceState_STATUS_CommittingMigration,
	"creating":               ProfileProperties_ResourceState_STATUS_Creating,
	"deleting":               ProfileProperties_ResourceState_STATUS_Deleting,
	"disabled":               ProfileProperties_ResourceState_STATUS_Disabled,
	"migrated":               ProfileProperties_ResourceState_STATUS_Migrated,
	"migrating":              ProfileProperties_ResourceState_STATUS_Migrating,
	"pendingmigrationcommit": ProfileProperties_ResourceState_STATUS_PendingMigrationCommit,
}

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,
}

// User assigned identity properties
type UserAssignedIdentity_STATUS struct {
	// ClientId: The client ID of the assigned identity.
	ClientId *string `json:"clientId,omitempty"`

	// PrincipalId: The principal ID of the assigned identity.
	PrincipalId *string `json:"principalId,omitempty"`
}
