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

type FlexibleServer_STATUS struct {
	// Id: Fully qualified resource ID for the resource. Ex -
	// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	Id *string `json:"id,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: Properties of the server.
	Properties *ServerProperties_STATUS `json:"properties,omitempty"`

	// Sku: The SKU (pricing tier) of the server.
	Sku *Sku_STATUS `json:"sku,omitempty"`

	// SystemData: The system metadata relating to this resource.
	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"`
}

// The properties of a server.
type ServerProperties_STATUS struct {
	// AdministratorLogin: The administrator's login name of a server. Can only be specified when the server is being created
	// (and is required for creation).
	AdministratorLogin *string `json:"administratorLogin,omitempty"`

	// AvailabilityZone: availability zone information of the server.
	AvailabilityZone *string `json:"availabilityZone,omitempty"`

	// Backup: Backup properties of a server.
	Backup *Backup_STATUS `json:"backup,omitempty"`

	// CreateMode: The mode to create a new PostgreSQL server.
	CreateMode *ServerProperties_CreateMode_STATUS `json:"createMode,omitempty"`

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

	// HighAvailability: High availability properties of a server.
	HighAvailability *HighAvailability_STATUS `json:"highAvailability,omitempty"`

	// MaintenanceWindow: Maintenance window properties of a server.
	MaintenanceWindow *MaintenanceWindow_STATUS `json:"maintenanceWindow,omitempty"`

	// MinorVersion: The minor version of the server.
	MinorVersion *string `json:"minorVersion,omitempty"`

	// Network: Network properties of a server.
	Network *Network_STATUS `json:"network,omitempty"`

	// PointInTimeUTC: Restore point creation time (ISO8601 format), specifying the time to restore from. It's required when
	// 'createMode' is 'PointInTimeRestore'.
	PointInTimeUTC *string `json:"pointInTimeUTC,omitempty"`

	// SourceServerResourceId: The source server resource ID to restore from. It's required when 'createMode' is
	// 'PointInTimeRestore'.
	SourceServerResourceId *string `json:"sourceServerResourceId,omitempty"`

	// State: A state of a server that is visible to user.
	State *ServerProperties_State_STATUS `json:"state,omitempty"`

	// Storage: Storage properties of a server.
	Storage *Storage_STATUS `json:"storage,omitempty"`

	// Version: PostgreSQL Server version.
	Version *ServerVersion_STATUS `json:"version,omitempty"`
}

// Sku information related properties of a server.
type Sku_STATUS struct {
	// Name: The name of the sku, typically, tier + family + cores, e.g. Standard_D4s_v3.
	Name *string `json:"name,omitempty"`

	// Tier: The tier of the particular SKU, e.g. Burstable.
	Tier *Sku_Tier_STATUS `json:"tier,omitempty"`
}

// Metadata pertaining to creation and last modification of the resource.
type SystemData_STATUS struct {
	// CreatedAt: The timestamp of resource creation (UTC).
	CreatedAt *string `json:"createdAt,omitempty"`

	// CreatedBy: The identity that created the resource.
	CreatedBy *string `json:"createdBy,omitempty"`

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

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

	// LastModifiedBy: The identity that last modified the resource.
	LastModifiedBy *string `json:"lastModifiedBy,omitempty"`

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

// Backup properties of a server
type Backup_STATUS struct {
	// BackupRetentionDays: Backup retention days for the server.
	BackupRetentionDays *int `json:"backupRetentionDays,omitempty"`

	// EarliestRestoreDate: The earliest restore point time (ISO8601 format) for server.
	EarliestRestoreDate *string `json:"earliestRestoreDate,omitempty"`

	// GeoRedundantBackup: A value indicating whether Geo-Redundant backup is enabled on the server.
	GeoRedundantBackup *Backup_GeoRedundantBackup_STATUS `json:"geoRedundantBackup,omitempty"`
}

// High availability properties of a server
type HighAvailability_STATUS struct {
	// Mode: The HA mode for the server.
	Mode *HighAvailability_Mode_STATUS `json:"mode,omitempty"`

	// StandbyAvailabilityZone: availability zone information of the standby.
	StandbyAvailabilityZone *string `json:"standbyAvailabilityZone,omitempty"`

	// State: A state of a HA server that is visible to user.
	State *HighAvailability_State_STATUS `json:"state,omitempty"`
}

// Maintenance window properties of a server.
type MaintenanceWindow_STATUS struct {
	// CustomWindow: indicates whether custom window is enabled or disabled
	CustomWindow *string `json:"customWindow,omitempty"`

	// DayOfWeek: day of week for maintenance window
	DayOfWeek *int `json:"dayOfWeek,omitempty"`

	// StartHour: start hour for maintenance window
	StartHour *int `json:"startHour,omitempty"`

	// StartMinute: start minute for maintenance window
	StartMinute *int `json:"startMinute,omitempty"`
}

// Network properties of a server
type Network_STATUS struct {
	// DelegatedSubnetResourceId: delegated subnet arm resource id.
	DelegatedSubnetResourceId *string `json:"delegatedSubnetResourceId,omitempty"`

	// PrivateDnsZoneArmResourceId: private dns zone arm resource id.
	PrivateDnsZoneArmResourceId *string `json:"privateDnsZoneArmResourceId,omitempty"`

	// PublicNetworkAccess: public network access is enabled or not
	PublicNetworkAccess *Network_PublicNetworkAccess_STATUS `json:"publicNetworkAccess,omitempty"`
}

type ServerProperties_CreateMode_STATUS string

const (
	ServerProperties_CreateMode_STATUS_Create             = ServerProperties_CreateMode_STATUS("Create")
	ServerProperties_CreateMode_STATUS_Default            = ServerProperties_CreateMode_STATUS("Default")
	ServerProperties_CreateMode_STATUS_PointInTimeRestore = ServerProperties_CreateMode_STATUS("PointInTimeRestore")
	ServerProperties_CreateMode_STATUS_Update             = ServerProperties_CreateMode_STATUS("Update")
)

// Mapping from string to ServerProperties_CreateMode_STATUS
var serverProperties_CreateMode_STATUS_Values = map[string]ServerProperties_CreateMode_STATUS{
	"create":             ServerProperties_CreateMode_STATUS_Create,
	"default":            ServerProperties_CreateMode_STATUS_Default,
	"pointintimerestore": ServerProperties_CreateMode_STATUS_PointInTimeRestore,
	"update":             ServerProperties_CreateMode_STATUS_Update,
}

type ServerProperties_State_STATUS string

const (
	ServerProperties_State_STATUS_Disabled = ServerProperties_State_STATUS("Disabled")
	ServerProperties_State_STATUS_Dropping = ServerProperties_State_STATUS("Dropping")
	ServerProperties_State_STATUS_Ready    = ServerProperties_State_STATUS("Ready")
	ServerProperties_State_STATUS_Starting = ServerProperties_State_STATUS("Starting")
	ServerProperties_State_STATUS_Stopped  = ServerProperties_State_STATUS("Stopped")
	ServerProperties_State_STATUS_Stopping = ServerProperties_State_STATUS("Stopping")
	ServerProperties_State_STATUS_Updating = ServerProperties_State_STATUS("Updating")
)

// Mapping from string to ServerProperties_State_STATUS
var serverProperties_State_STATUS_Values = map[string]ServerProperties_State_STATUS{
	"disabled": ServerProperties_State_STATUS_Disabled,
	"dropping": ServerProperties_State_STATUS_Dropping,
	"ready":    ServerProperties_State_STATUS_Ready,
	"starting": ServerProperties_State_STATUS_Starting,
	"stopped":  ServerProperties_State_STATUS_Stopped,
	"stopping": ServerProperties_State_STATUS_Stopping,
	"updating": ServerProperties_State_STATUS_Updating,
}

// The version of a server.
type ServerVersion_STATUS string

const (
	ServerVersion_STATUS_11 = ServerVersion_STATUS("11")
	ServerVersion_STATUS_12 = ServerVersion_STATUS("12")
	ServerVersion_STATUS_13 = ServerVersion_STATUS("13")
	ServerVersion_STATUS_14 = ServerVersion_STATUS("14")
)

// Mapping from string to ServerVersion_STATUS
var serverVersion_STATUS_Values = map[string]ServerVersion_STATUS{
	"11": ServerVersion_STATUS_11,
	"12": ServerVersion_STATUS_12,
	"13": ServerVersion_STATUS_13,
	"14": ServerVersion_STATUS_14,
}

type Sku_Tier_STATUS string

const (
	Sku_Tier_STATUS_Burstable       = Sku_Tier_STATUS("Burstable")
	Sku_Tier_STATUS_GeneralPurpose  = Sku_Tier_STATUS("GeneralPurpose")
	Sku_Tier_STATUS_MemoryOptimized = Sku_Tier_STATUS("MemoryOptimized")
)

// Mapping from string to Sku_Tier_STATUS
var sku_Tier_STATUS_Values = map[string]Sku_Tier_STATUS{
	"burstable":       Sku_Tier_STATUS_Burstable,
	"generalpurpose":  Sku_Tier_STATUS_GeneralPurpose,
	"memoryoptimized": Sku_Tier_STATUS_MemoryOptimized,
}

// Storage properties of a server
type Storage_STATUS struct {
	// StorageSizeGB: Max storage allowed for a server.
	StorageSizeGB *int `json:"storageSizeGB,omitempty"`
}

type SystemData_CreatedByType_STATUS string

const (
	SystemData_CreatedByType_STATUS_Application     = SystemData_CreatedByType_STATUS("Application")
	SystemData_CreatedByType_STATUS_Key             = SystemData_CreatedByType_STATUS("Key")
	SystemData_CreatedByType_STATUS_ManagedIdentity = SystemData_CreatedByType_STATUS("ManagedIdentity")
	SystemData_CreatedByType_STATUS_User            = SystemData_CreatedByType_STATUS("User")
)

// Mapping from string to SystemData_CreatedByType_STATUS
var systemData_CreatedByType_STATUS_Values = map[string]SystemData_CreatedByType_STATUS{
	"application":     SystemData_CreatedByType_STATUS_Application,
	"key":             SystemData_CreatedByType_STATUS_Key,
	"managedidentity": SystemData_CreatedByType_STATUS_ManagedIdentity,
	"user":            SystemData_CreatedByType_STATUS_User,
}

type SystemData_LastModifiedByType_STATUS string

const (
	SystemData_LastModifiedByType_STATUS_Application     = SystemData_LastModifiedByType_STATUS("Application")
	SystemData_LastModifiedByType_STATUS_Key             = SystemData_LastModifiedByType_STATUS("Key")
	SystemData_LastModifiedByType_STATUS_ManagedIdentity = SystemData_LastModifiedByType_STATUS("ManagedIdentity")
	SystemData_LastModifiedByType_STATUS_User            = SystemData_LastModifiedByType_STATUS("User")
)

// Mapping from string to SystemData_LastModifiedByType_STATUS
var systemData_LastModifiedByType_STATUS_Values = map[string]SystemData_LastModifiedByType_STATUS{
	"application":     SystemData_LastModifiedByType_STATUS_Application,
	"key":             SystemData_LastModifiedByType_STATUS_Key,
	"managedidentity": SystemData_LastModifiedByType_STATUS_ManagedIdentity,
	"user":            SystemData_LastModifiedByType_STATUS_User,
}

type Backup_GeoRedundantBackup_STATUS string

const (
	Backup_GeoRedundantBackup_STATUS_Disabled = Backup_GeoRedundantBackup_STATUS("Disabled")
	Backup_GeoRedundantBackup_STATUS_Enabled  = Backup_GeoRedundantBackup_STATUS("Enabled")
)

// Mapping from string to Backup_GeoRedundantBackup_STATUS
var backup_GeoRedundantBackup_STATUS_Values = map[string]Backup_GeoRedundantBackup_STATUS{
	"disabled": Backup_GeoRedundantBackup_STATUS_Disabled,
	"enabled":  Backup_GeoRedundantBackup_STATUS_Enabled,
}

type HighAvailability_Mode_STATUS string

const (
	HighAvailability_Mode_STATUS_Disabled      = HighAvailability_Mode_STATUS("Disabled")
	HighAvailability_Mode_STATUS_SameZone      = HighAvailability_Mode_STATUS("SameZone")
	HighAvailability_Mode_STATUS_ZoneRedundant = HighAvailability_Mode_STATUS("ZoneRedundant")
)

// Mapping from string to HighAvailability_Mode_STATUS
var highAvailability_Mode_STATUS_Values = map[string]HighAvailability_Mode_STATUS{
	"disabled":      HighAvailability_Mode_STATUS_Disabled,
	"samezone":      HighAvailability_Mode_STATUS_SameZone,
	"zoneredundant": HighAvailability_Mode_STATUS_ZoneRedundant,
}

type HighAvailability_State_STATUS string

const (
	HighAvailability_State_STATUS_CreatingStandby = HighAvailability_State_STATUS("CreatingStandby")
	HighAvailability_State_STATUS_FailingOver     = HighAvailability_State_STATUS("FailingOver")
	HighAvailability_State_STATUS_Healthy         = HighAvailability_State_STATUS("Healthy")
	HighAvailability_State_STATUS_NotEnabled      = HighAvailability_State_STATUS("NotEnabled")
	HighAvailability_State_STATUS_RemovingStandby = HighAvailability_State_STATUS("RemovingStandby")
	HighAvailability_State_STATUS_ReplicatingData = HighAvailability_State_STATUS("ReplicatingData")
)

// Mapping from string to HighAvailability_State_STATUS
var highAvailability_State_STATUS_Values = map[string]HighAvailability_State_STATUS{
	"creatingstandby": HighAvailability_State_STATUS_CreatingStandby,
	"failingover":     HighAvailability_State_STATUS_FailingOver,
	"healthy":         HighAvailability_State_STATUS_Healthy,
	"notenabled":      HighAvailability_State_STATUS_NotEnabled,
	"removingstandby": HighAvailability_State_STATUS_RemovingStandby,
	"replicatingdata": HighAvailability_State_STATUS_ReplicatingData,
}

type Network_PublicNetworkAccess_STATUS string

const (
	Network_PublicNetworkAccess_STATUS_Disabled = Network_PublicNetworkAccess_STATUS("Disabled")
	Network_PublicNetworkAccess_STATUS_Enabled  = Network_PublicNetworkAccess_STATUS("Enabled")
)

// Mapping from string to Network_PublicNetworkAccess_STATUS
var network_PublicNetworkAccess_STATUS_Values = map[string]Network_PublicNetworkAccess_STATUS{
	"disabled": Network_PublicNetworkAccess_STATUS_Disabled,
	"enabled":  Network_PublicNetworkAccess_STATUS_Enabled,
}
