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

// An Azure SQL Database server.
type Server_STATUS struct {
	// Id: Resource ID.
	Id *string `json:"id,omitempty"`

	// Identity: The Azure Active Directory identity of the server.
	Identity *ResourceIdentity_STATUS `json:"identity,omitempty"`

	// Kind: Kind of sql server. This is metadata used for the Azure portal experience.
	Kind *string `json:"kind,omitempty"`

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

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

	// Properties: Resource properties.
	Properties *ServerProperties_STATUS `json:"properties,omitempty"`

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

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

// Azure Active Directory identity configuration for a resource.
type ResourceIdentity_STATUS struct {
	// PrincipalId: The Azure Active Directory principal id.
	PrincipalId *string `json:"principalId,omitempty"`

	// TenantId: The Azure Active Directory tenant id.
	TenantId *string `json:"tenantId,omitempty"`

	// Type: The identity type. Set this to 'SystemAssigned' in order to automatically create and assign an Azure Active
	// Directory principal for the resource.
	Type *ResourceIdentity_Type_STATUS `json:"type,omitempty"`

	// UserAssignedIdentities: The resource ids of the user assigned identities to use
	UserAssignedIdentities map[string]UserIdentity_STATUS `json:"userAssignedIdentities,omitempty"`
}

// The properties of a server.
type ServerProperties_STATUS struct {
	// AdministratorLogin: Administrator username for the server. Once created it cannot be changed.
	AdministratorLogin *string `json:"administratorLogin,omitempty"`

	// Administrators: The Azure Active Directory administrator of the server.
	Administrators *ServerExternalAdministrator_STATUS `json:"administrators,omitempty"`

	// FederatedClientId: The Client id used for cross tenant CMK scenario
	FederatedClientId *string `json:"federatedClientId,omitempty"`

	// FullyQualifiedDomainName: The fully qualified domain name of the server.
	FullyQualifiedDomainName *string `json:"fullyQualifiedDomainName,omitempty"`

	// KeyId: A CMK URI of the key to use for encryption.
	KeyId *string `json:"keyId,omitempty"`

	// MinimalTlsVersion: Minimal TLS version. Allowed values: '1.0', '1.1', '1.2'
	MinimalTlsVersion *string `json:"minimalTlsVersion,omitempty"`

	// PrimaryUserAssignedIdentityId: The resource id of a user assigned identity to be used by default.
	PrimaryUserAssignedIdentityId *string `json:"primaryUserAssignedIdentityId,omitempty"`

	// PrivateEndpointConnections: List of private endpoint connections on a server
	PrivateEndpointConnections []ServerPrivateEndpointConnection_STATUS `json:"privateEndpointConnections,omitempty"`

	// PublicNetworkAccess: Whether or not public endpoint access is allowed for this server.  Value is optional but if passed
	// in, must be 'Enabled' or 'Disabled'
	PublicNetworkAccess *ServerProperties_PublicNetworkAccess_STATUS `json:"publicNetworkAccess,omitempty"`

	// RestrictOutboundNetworkAccess: Whether or not to restrict outbound network access for this server.  Value is optional
	// but if passed in, must be 'Enabled' or 'Disabled'
	RestrictOutboundNetworkAccess *ServerProperties_RestrictOutboundNetworkAccess_STATUS `json:"restrictOutboundNetworkAccess,omitempty"`

	// State: The state of the server.
	State *string `json:"state,omitempty"`

	// Version: The version of the server.
	Version *string `json:"version,omitempty"`

	// WorkspaceFeature: Whether or not existing server has a workspace created and if it allows connection from workspace
	WorkspaceFeature *ServerProperties_WorkspaceFeature_STATUS `json:"workspaceFeature,omitempty"`
}

type ResourceIdentity_Type_STATUS string

const (
	ResourceIdentity_Type_STATUS_None                       = ResourceIdentity_Type_STATUS("None")
	ResourceIdentity_Type_STATUS_SystemAssigned             = ResourceIdentity_Type_STATUS("SystemAssigned")
	ResourceIdentity_Type_STATUS_SystemAssignedUserAssigned = ResourceIdentity_Type_STATUS("SystemAssigned,UserAssigned")
	ResourceIdentity_Type_STATUS_UserAssigned               = ResourceIdentity_Type_STATUS("UserAssigned")
)

// Mapping from string to ResourceIdentity_Type_STATUS
var resourceIdentity_Type_STATUS_Values = map[string]ResourceIdentity_Type_STATUS{
	"none":                        ResourceIdentity_Type_STATUS_None,
	"systemassigned":              ResourceIdentity_Type_STATUS_SystemAssigned,
	"systemassigned,userassigned": ResourceIdentity_Type_STATUS_SystemAssignedUserAssigned,
	"userassigned":                ResourceIdentity_Type_STATUS_UserAssigned,
}

// Properties of a active directory administrator.
type ServerExternalAdministrator_STATUS struct {
	// AdministratorType: Type of the sever administrator.
	AdministratorType *ServerExternalAdministrator_AdministratorType_STATUS `json:"administratorType,omitempty"`

	// AzureADOnlyAuthentication: Azure Active Directory only Authentication enabled.
	AzureADOnlyAuthentication *bool `json:"azureADOnlyAuthentication,omitempty"`

	// Login: Login name of the server administrator.
	Login *string `json:"login,omitempty"`

	// PrincipalType: Principal Type of the sever administrator.
	PrincipalType *ServerExternalAdministrator_PrincipalType_STATUS `json:"principalType,omitempty"`

	// Sid: SID (object ID) of the server administrator.
	Sid *string `json:"sid,omitempty"`

	// TenantId: Tenant ID of the administrator.
	TenantId *string `json:"tenantId,omitempty"`
}

// A private endpoint connection under a server
type ServerPrivateEndpointConnection_STATUS struct {
	// Id: Resource ID.
	Id *string `json:"id,omitempty"`

	// Properties: Private endpoint connection properties
	Properties *PrivateEndpointConnectionProperties_STATUS `json:"properties,omitempty"`
}

type ServerProperties_PublicNetworkAccess_STATUS string

const (
	ServerProperties_PublicNetworkAccess_STATUS_Disabled = ServerProperties_PublicNetworkAccess_STATUS("Disabled")
	ServerProperties_PublicNetworkAccess_STATUS_Enabled  = ServerProperties_PublicNetworkAccess_STATUS("Enabled")
)

// Mapping from string to ServerProperties_PublicNetworkAccess_STATUS
var serverProperties_PublicNetworkAccess_STATUS_Values = map[string]ServerProperties_PublicNetworkAccess_STATUS{
	"disabled": ServerProperties_PublicNetworkAccess_STATUS_Disabled,
	"enabled":  ServerProperties_PublicNetworkAccess_STATUS_Enabled,
}

type ServerProperties_RestrictOutboundNetworkAccess_STATUS string

const (
	ServerProperties_RestrictOutboundNetworkAccess_STATUS_Disabled = ServerProperties_RestrictOutboundNetworkAccess_STATUS("Disabled")
	ServerProperties_RestrictOutboundNetworkAccess_STATUS_Enabled  = ServerProperties_RestrictOutboundNetworkAccess_STATUS("Enabled")
)

// Mapping from string to ServerProperties_RestrictOutboundNetworkAccess_STATUS
var serverProperties_RestrictOutboundNetworkAccess_STATUS_Values = map[string]ServerProperties_RestrictOutboundNetworkAccess_STATUS{
	"disabled": ServerProperties_RestrictOutboundNetworkAccess_STATUS_Disabled,
	"enabled":  ServerProperties_RestrictOutboundNetworkAccess_STATUS_Enabled,
}

type ServerProperties_WorkspaceFeature_STATUS string

const (
	ServerProperties_WorkspaceFeature_STATUS_Connected    = ServerProperties_WorkspaceFeature_STATUS("Connected")
	ServerProperties_WorkspaceFeature_STATUS_Disconnected = ServerProperties_WorkspaceFeature_STATUS("Disconnected")
)

// Mapping from string to ServerProperties_WorkspaceFeature_STATUS
var serverProperties_WorkspaceFeature_STATUS_Values = map[string]ServerProperties_WorkspaceFeature_STATUS{
	"connected":    ServerProperties_WorkspaceFeature_STATUS_Connected,
	"disconnected": ServerProperties_WorkspaceFeature_STATUS_Disconnected,
}

// Azure Active Directory identity configuration for a resource.
type UserIdentity_STATUS struct {
	// ClientId: The Azure Active Directory client id.
	ClientId *string `json:"clientId,omitempty"`

	// PrincipalId: The Azure Active Directory principal id.
	PrincipalId *string `json:"principalId,omitempty"`
}

// Properties of a private endpoint connection.
type PrivateEndpointConnectionProperties_STATUS struct {
	// GroupIds: Group IDs.
	GroupIds []string `json:"groupIds,omitempty"`

	// PrivateEndpoint: Private endpoint which the connection belongs to.
	PrivateEndpoint *PrivateEndpointProperty_STATUS `json:"privateEndpoint,omitempty"`

	// PrivateLinkServiceConnectionState: Connection state of the private endpoint connection.
	PrivateLinkServiceConnectionState *PrivateLinkServiceConnectionStateProperty_STATUS `json:"privateLinkServiceConnectionState,omitempty"`

	// ProvisioningState: State of the private endpoint connection.
	ProvisioningState *PrivateEndpointConnectionProperties_ProvisioningState_STATUS `json:"provisioningState,omitempty"`
}

type ServerExternalAdministrator_AdministratorType_STATUS string

const ServerExternalAdministrator_AdministratorType_STATUS_ActiveDirectory = ServerExternalAdministrator_AdministratorType_STATUS("ActiveDirectory")

// Mapping from string to ServerExternalAdministrator_AdministratorType_STATUS
var serverExternalAdministrator_AdministratorType_STATUS_Values = map[string]ServerExternalAdministrator_AdministratorType_STATUS{
	"activedirectory": ServerExternalAdministrator_AdministratorType_STATUS_ActiveDirectory,
}

type ServerExternalAdministrator_PrincipalType_STATUS string

const (
	ServerExternalAdministrator_PrincipalType_STATUS_Application = ServerExternalAdministrator_PrincipalType_STATUS("Application")
	ServerExternalAdministrator_PrincipalType_STATUS_Group       = ServerExternalAdministrator_PrincipalType_STATUS("Group")
	ServerExternalAdministrator_PrincipalType_STATUS_User        = ServerExternalAdministrator_PrincipalType_STATUS("User")
)

// Mapping from string to ServerExternalAdministrator_PrincipalType_STATUS
var serverExternalAdministrator_PrincipalType_STATUS_Values = map[string]ServerExternalAdministrator_PrincipalType_STATUS{
	"application": ServerExternalAdministrator_PrincipalType_STATUS_Application,
	"group":       ServerExternalAdministrator_PrincipalType_STATUS_Group,
	"user":        ServerExternalAdministrator_PrincipalType_STATUS_User,
}

type PrivateEndpointConnectionProperties_ProvisioningState_STATUS string

const (
	PrivateEndpointConnectionProperties_ProvisioningState_STATUS_Approving = PrivateEndpointConnectionProperties_ProvisioningState_STATUS("Approving")
	PrivateEndpointConnectionProperties_ProvisioningState_STATUS_Dropping  = PrivateEndpointConnectionProperties_ProvisioningState_STATUS("Dropping")
	PrivateEndpointConnectionProperties_ProvisioningState_STATUS_Failed    = PrivateEndpointConnectionProperties_ProvisioningState_STATUS("Failed")
	PrivateEndpointConnectionProperties_ProvisioningState_STATUS_Ready     = PrivateEndpointConnectionProperties_ProvisioningState_STATUS("Ready")
	PrivateEndpointConnectionProperties_ProvisioningState_STATUS_Rejecting = PrivateEndpointConnectionProperties_ProvisioningState_STATUS("Rejecting")
)

// Mapping from string to PrivateEndpointConnectionProperties_ProvisioningState_STATUS
var privateEndpointConnectionProperties_ProvisioningState_STATUS_Values = map[string]PrivateEndpointConnectionProperties_ProvisioningState_STATUS{
	"approving": PrivateEndpointConnectionProperties_ProvisioningState_STATUS_Approving,
	"dropping":  PrivateEndpointConnectionProperties_ProvisioningState_STATUS_Dropping,
	"failed":    PrivateEndpointConnectionProperties_ProvisioningState_STATUS_Failed,
	"ready":     PrivateEndpointConnectionProperties_ProvisioningState_STATUS_Ready,
	"rejecting": PrivateEndpointConnectionProperties_ProvisioningState_STATUS_Rejecting,
}

type PrivateEndpointProperty_STATUS struct {
	// Id: Resource id of the private endpoint.
	Id *string `json:"id,omitempty"`
}

type PrivateLinkServiceConnectionStateProperty_STATUS struct {
	// ActionsRequired: The actions required for private link service connection.
	ActionsRequired *PrivateLinkServiceConnectionStateProperty_ActionsRequired_STATUS `json:"actionsRequired,omitempty"`

	// Description: The private link service connection description.
	Description *string `json:"description,omitempty"`

	// Status: The private link service connection status.
	Status *PrivateLinkServiceConnectionStateProperty_Status_STATUS `json:"status,omitempty"`
}

type PrivateLinkServiceConnectionStateProperty_ActionsRequired_STATUS string

const PrivateLinkServiceConnectionStateProperty_ActionsRequired_STATUS_None = PrivateLinkServiceConnectionStateProperty_ActionsRequired_STATUS("None")

// Mapping from string to PrivateLinkServiceConnectionStateProperty_ActionsRequired_STATUS
var privateLinkServiceConnectionStateProperty_ActionsRequired_STATUS_Values = map[string]PrivateLinkServiceConnectionStateProperty_ActionsRequired_STATUS{
	"none": PrivateLinkServiceConnectionStateProperty_ActionsRequired_STATUS_None,
}

type PrivateLinkServiceConnectionStateProperty_Status_STATUS string

const (
	PrivateLinkServiceConnectionStateProperty_Status_STATUS_Approved     = PrivateLinkServiceConnectionStateProperty_Status_STATUS("Approved")
	PrivateLinkServiceConnectionStateProperty_Status_STATUS_Disconnected = PrivateLinkServiceConnectionStateProperty_Status_STATUS("Disconnected")
	PrivateLinkServiceConnectionStateProperty_Status_STATUS_Pending      = PrivateLinkServiceConnectionStateProperty_Status_STATUS("Pending")
	PrivateLinkServiceConnectionStateProperty_Status_STATUS_Rejected     = PrivateLinkServiceConnectionStateProperty_Status_STATUS("Rejected")
)

// Mapping from string to PrivateLinkServiceConnectionStateProperty_Status_STATUS
var privateLinkServiceConnectionStateProperty_Status_STATUS_Values = map[string]PrivateLinkServiceConnectionStateProperty_Status_STATUS{
	"approved":     PrivateLinkServiceConnectionStateProperty_Status_STATUS_Approved,
	"disconnected": PrivateLinkServiceConnectionStateProperty_Status_STATUS_Disconnected,
	"pending":      PrivateLinkServiceConnectionStateProperty_Status_STATUS_Pending,
	"rejected":     PrivateLinkServiceConnectionStateProperty_Status_STATUS_Rejected,
}
