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

// An environment for hosting container apps
type ManagedEnvironment_STATUS struct {
	// Id: Fully qualified resource ID for the resource. E.g.
	// "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	Id *string `json:"id,omitempty"`

	// Identity: Managed identities for the Managed Environment to interact with other Azure services without maintaining any
	// secrets or credentials in code.
	Identity *ManagedServiceIdentity_STATUS `json:"identity,omitempty"`

	// Kind: Kind of the Environment.
	Kind *string `json:"kind,omitempty"`

	// Location: The geo-location where the resource lives
	Location *string `json:"location,omitempty"`

	// Name: The name of the resource
	Name *string `json:"name,omitempty"`

	// Properties: Managed environment resource specific properties
	Properties *ManagedEnvironment_Properties_STATUS `json:"properties,omitempty"`

	// SystemData: Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData_STATUS `json:"systemData,omitempty"`

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

	// Type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string `json:"type,omitempty"`
}

type ManagedEnvironment_Properties_STATUS struct {
	// AppLogsConfiguration: Cluster configuration which enables the log daemon to export app logs to configured destination.
	AppLogsConfiguration *AppLogsConfiguration_STATUS `json:"appLogsConfiguration,omitempty"`

	// CustomDomainConfiguration: Custom domain configuration for the environment
	CustomDomainConfiguration *CustomDomainConfiguration_STATUS `json:"customDomainConfiguration,omitempty"`

	// DaprConfiguration: The configuration of Dapr component.
	DaprConfiguration *DaprConfiguration_STATUS `json:"daprConfiguration,omitempty"`

	// DefaultDomain: Default Domain Name for the cluster
	DefaultDomain *string `json:"defaultDomain,omitempty"`

	// DeploymentErrors: Any errors that occurred during deployment or deployment validation
	DeploymentErrors *string `json:"deploymentErrors,omitempty"`

	// EventStreamEndpoint: The endpoint of the eventstream of the Environment.
	EventStreamEndpoint *string `json:"eventStreamEndpoint,omitempty"`

	// InfrastructureResourceGroup: Name of the platform-managed resource group created for the Managed Environment to host
	// infrastructure resources. If a subnet ID is provided, this resource group will be created in the same subscription as
	// the subnet.
	InfrastructureResourceGroup *string `json:"infrastructureResourceGroup,omitempty"`

	// KedaConfiguration: The configuration of Keda component.
	KedaConfiguration *KedaConfiguration_STATUS `json:"kedaConfiguration,omitempty"`

	// PeerAuthentication: Peer authentication settings for the Managed Environment
	PeerAuthentication *ManagedEnvironment_Properties_PeerAuthentication_STATUS `json:"peerAuthentication,omitempty"`

	// PeerTrafficConfiguration: Peer traffic settings for the Managed Environment
	PeerTrafficConfiguration *ManagedEnvironment_Properties_PeerTrafficConfiguration_STATUS `json:"peerTrafficConfiguration,omitempty"`

	// ProvisioningState: Provisioning state of the Environment.
	ProvisioningState *ManagedEnvironment_Properties_ProvisioningState_STATUS `json:"provisioningState,omitempty"`

	// StaticIp: Static IP of the Environment
	StaticIp *string `json:"staticIp,omitempty"`

	// VnetConfiguration: Vnet configuration for the environment
	VnetConfiguration *VnetConfiguration_STATUS `json:"vnetConfiguration,omitempty"`

	// WorkloadProfiles: Workload profiles configured for the Managed Environment.
	WorkloadProfiles []WorkloadProfile_STATUS `json:"workloadProfiles,omitempty"`

	// ZoneRedundant: Whether or not this Managed Environment is zone-redundant.
	ZoneRedundant *bool `json:"zoneRedundant,omitempty"`
}

// Configuration of application logs
type AppLogsConfiguration_STATUS struct {
	// Destination: Logs destination, can be 'log-analytics', 'azure-monitor' or 'none'
	Destination *string `json:"destination,omitempty"`

	// LogAnalyticsConfiguration: Log Analytics configuration, must only be provided when destination is configured as
	// 'log-analytics'
	LogAnalyticsConfiguration *LogAnalyticsConfiguration_STATUS `json:"logAnalyticsConfiguration,omitempty"`
}

// Configuration properties for apps environment custom domain
type CustomDomainConfiguration_STATUS struct {
	// CertificateKeyVaultProperties: Certificate stored in Azure Key Vault.
	CertificateKeyVaultProperties *CertificateKeyVaultProperties_STATUS `json:"certificateKeyVaultProperties,omitempty"`

	// CustomDomainVerificationId: Id used to verify domain name ownership
	CustomDomainVerificationId *string `json:"customDomainVerificationId,omitempty"`

	// DnsSuffix: Dns suffix for the environment domain
	DnsSuffix *string `json:"dnsSuffix,omitempty"`

	// ExpirationDate: Certificate expiration date.
	ExpirationDate *string `json:"expirationDate,omitempty"`

	// SubjectName: Subject name of the certificate.
	SubjectName *string `json:"subjectName,omitempty"`

	// Thumbprint: Certificate thumbprint.
	Thumbprint *string `json:"thumbprint,omitempty"`
}

// Configuration properties Dapr component
type DaprConfiguration_STATUS struct {
	// Version: The version of Dapr
	Version *string `json:"version,omitempty"`
}

// Configuration properties Keda component
type KedaConfiguration_STATUS struct {
	// Version: The version of Keda
	Version *string `json:"version,omitempty"`
}

type ManagedEnvironment_Properties_PeerAuthentication_STATUS struct {
	// Mtls: Mutual TLS authentication settings for the Managed Environment
	Mtls *Mtls_STATUS `json:"mtls,omitempty"`
}

type ManagedEnvironment_Properties_PeerTrafficConfiguration_STATUS struct {
	// Encryption: Peer traffic encryption settings for the Managed Environment
	Encryption *ManagedEnvironment_Properties_PeerTrafficConfiguration_Encryption_STATUS `json:"encryption,omitempty"`
}

type ManagedEnvironment_Properties_ProvisioningState_STATUS string

const (
	ManagedEnvironment_Properties_ProvisioningState_STATUS_Canceled                      = ManagedEnvironment_Properties_ProvisioningState_STATUS("Canceled")
	ManagedEnvironment_Properties_ProvisioningState_STATUS_Failed                        = ManagedEnvironment_Properties_ProvisioningState_STATUS("Failed")
	ManagedEnvironment_Properties_ProvisioningState_STATUS_InfrastructureSetupComplete   = ManagedEnvironment_Properties_ProvisioningState_STATUS("InfrastructureSetupComplete")
	ManagedEnvironment_Properties_ProvisioningState_STATUS_InfrastructureSetupInProgress = ManagedEnvironment_Properties_ProvisioningState_STATUS("InfrastructureSetupInProgress")
	ManagedEnvironment_Properties_ProvisioningState_STATUS_InitializationInProgress      = ManagedEnvironment_Properties_ProvisioningState_STATUS("InitializationInProgress")
	ManagedEnvironment_Properties_ProvisioningState_STATUS_ScheduledForDelete            = ManagedEnvironment_Properties_ProvisioningState_STATUS("ScheduledForDelete")
	ManagedEnvironment_Properties_ProvisioningState_STATUS_Succeeded                     = ManagedEnvironment_Properties_ProvisioningState_STATUS("Succeeded")
	ManagedEnvironment_Properties_ProvisioningState_STATUS_UpgradeFailed                 = ManagedEnvironment_Properties_ProvisioningState_STATUS("UpgradeFailed")
	ManagedEnvironment_Properties_ProvisioningState_STATUS_UpgradeRequested              = ManagedEnvironment_Properties_ProvisioningState_STATUS("UpgradeRequested")
	ManagedEnvironment_Properties_ProvisioningState_STATUS_Waiting                       = ManagedEnvironment_Properties_ProvisioningState_STATUS("Waiting")
)

// Mapping from string to ManagedEnvironment_Properties_ProvisioningState_STATUS
var managedEnvironment_Properties_ProvisioningState_STATUS_Values = map[string]ManagedEnvironment_Properties_ProvisioningState_STATUS{
	"canceled":                      ManagedEnvironment_Properties_ProvisioningState_STATUS_Canceled,
	"failed":                        ManagedEnvironment_Properties_ProvisioningState_STATUS_Failed,
	"infrastructuresetupcomplete":   ManagedEnvironment_Properties_ProvisioningState_STATUS_InfrastructureSetupComplete,
	"infrastructuresetupinprogress": ManagedEnvironment_Properties_ProvisioningState_STATUS_InfrastructureSetupInProgress,
	"initializationinprogress":      ManagedEnvironment_Properties_ProvisioningState_STATUS_InitializationInProgress,
	"scheduledfordelete":            ManagedEnvironment_Properties_ProvisioningState_STATUS_ScheduledForDelete,
	"succeeded":                     ManagedEnvironment_Properties_ProvisioningState_STATUS_Succeeded,
	"upgradefailed":                 ManagedEnvironment_Properties_ProvisioningState_STATUS_UpgradeFailed,
	"upgraderequested":              ManagedEnvironment_Properties_ProvisioningState_STATUS_UpgradeRequested,
	"waiting":                       ManagedEnvironment_Properties_ProvisioningState_STATUS_Waiting,
}

// Configuration properties for apps environment to join a Virtual Network
type VnetConfiguration_STATUS struct {
	// DockerBridgeCidr: CIDR notation IP range assigned to the Docker bridge, network. Must not overlap with any other
	// provided IP ranges.
	DockerBridgeCidr *string `json:"dockerBridgeCidr,omitempty"`

	// InfrastructureSubnetId: Resource ID of a subnet for infrastructure components. Must not overlap with any other provided
	// IP ranges.
	InfrastructureSubnetId *string `json:"infrastructureSubnetId,omitempty"`

	// Internal: Boolean indicating the environment only has an internal load balancer. These environments do not have a public
	// static IP resource. They must provide infrastructureSubnetId if enabling this property
	Internal *bool `json:"internal,omitempty"`

	// PlatformReservedCidr: IP range in CIDR notation that can be reserved for environment infrastructure IP addresses. Must
	// not overlap with any other provided IP ranges.
	PlatformReservedCidr *string `json:"platformReservedCidr,omitempty"`

	// PlatformReservedDnsIP:  An IP address from the IP range defined by platformReservedCidr that will be reserved for the
	// internal DNS server.
	PlatformReservedDnsIP *string `json:"platformReservedDnsIP,omitempty"`
}

// Workload profile to scope container app execution.
type WorkloadProfile_STATUS struct {
	// MaximumCount: The maximum capacity.
	MaximumCount *int `json:"maximumCount,omitempty"`

	// MinimumCount: The minimum capacity.
	MinimumCount *int `json:"minimumCount,omitempty"`

	// Name: Workload profile type for the workloads to run on.
	Name *string `json:"name,omitempty"`

	// WorkloadProfileType: Workload profile type for the workloads to run on.
	WorkloadProfileType *string `json:"workloadProfileType,omitempty"`
}

// Properties for a certificate stored in a Key Vault.
type CertificateKeyVaultProperties_STATUS struct {
	// Identity: Resource ID of a managed identity to authenticate with Azure Key Vault, or System to use a system-assigned
	// identity.
	Identity *string `json:"identity,omitempty"`

	// KeyVaultUrl: URL pointing to the Azure Key Vault secret that holds the certificate.
	KeyVaultUrl *string `json:"keyVaultUrl,omitempty"`
}

// Log Analytics configuration, must only be provided when destination is configured as 'log-analytics'
type LogAnalyticsConfiguration_STATUS struct {
	// CustomerId: Log analytics customer id
	CustomerId *string `json:"customerId,omitempty"`
}

type ManagedEnvironment_Properties_PeerTrafficConfiguration_Encryption_STATUS struct {
	// Enabled: Boolean indicating whether the peer traffic encryption is enabled
	Enabled *bool `json:"enabled,omitempty"`
}

// Configuration properties for mutual TLS authentication
type Mtls_STATUS struct {
	// Enabled: Boolean indicating whether the mutual TLS authentication is enabled
	Enabled *bool `json:"enabled,omitempty"`
}
