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

// Backup Vault Resource
type BackupVaultResource_STATUS struct {
	// ETag: Optional ETag.
	ETag *string `json:"eTag,omitempty"`

	// Id: Resource Id represents the complete path to the resource.
	Id *string `json:"id,omitempty"`

	// Identity: Input Managed Identity Details
	Identity *DppIdentityDetails_STATUS `json:"identity,omitempty"`

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

	// Name: Resource name associated with the resource.
	Name *string `json:"name,omitempty"`

	// Properties: BackupVaultResource properties
	Properties *BackupVault_STATUS `json:"properties,omitempty"`

	// SystemData: Metadata pertaining to creation and last modification of the resource.
	SystemData *SystemData_STATUS `json:"systemData,omitempty"`

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

	// Type: Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/...
	Type *string `json:"type,omitempty"`
}

// Backup Vault
type BackupVault_STATUS struct {
	// FeatureSettings: Feature Settings
	FeatureSettings *FeatureSettings_STATUS `json:"featureSettings,omitempty"`

	// IsVaultProtectedByResourceGuard: Is vault protected by resource guard
	IsVaultProtectedByResourceGuard *bool `json:"isVaultProtectedByResourceGuard,omitempty"`

	// MonitoringSettings: Monitoring Settings
	MonitoringSettings *MonitoringSettings_STATUS `json:"monitoringSettings,omitempty"`

	// ProvisioningState: Provisioning state of the BackupVault resource
	ProvisioningState *BackupVault_ProvisioningState_STATUS `json:"provisioningState,omitempty"`

	// ResourceMoveDetails: Resource move details for backup vault
	ResourceMoveDetails *ResourceMoveDetails_STATUS `json:"resourceMoveDetails,omitempty"`

	// ResourceMoveState: Resource move state for backup vault
	ResourceMoveState *BackupVault_ResourceMoveState_STATUS `json:"resourceMoveState,omitempty"`

	// SecuritySettings: Security Settings
	SecuritySettings *SecuritySettings_STATUS `json:"securitySettings,omitempty"`

	// StorageSettings: Storage Settings
	StorageSettings []StorageSetting_STATUS `json:"storageSettings,omitempty"`
}

// Identity details
type DppIdentityDetails_STATUS struct {
	// PrincipalId: The object ID of the service principal object for the managed identity that is used to grant role-based
	// access to an Azure resource.
	PrincipalId *string `json:"principalId,omitempty"`

	// TenantId: A Globally Unique Identifier (GUID) that represents the Azure AD tenant where the resource is now a member.
	TenantId *string `json:"tenantId,omitempty"`

	// Type: The identityType which can be either SystemAssigned or None
	Type *string `json:"type,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"`
}

type BackupVault_ProvisioningState_STATUS string

const (
	BackupVault_ProvisioningState_STATUS_Failed       = BackupVault_ProvisioningState_STATUS("Failed")
	BackupVault_ProvisioningState_STATUS_Provisioning = BackupVault_ProvisioningState_STATUS("Provisioning")
	BackupVault_ProvisioningState_STATUS_Succeeded    = BackupVault_ProvisioningState_STATUS("Succeeded")
	BackupVault_ProvisioningState_STATUS_Unknown      = BackupVault_ProvisioningState_STATUS("Unknown")
	BackupVault_ProvisioningState_STATUS_Updating     = BackupVault_ProvisioningState_STATUS("Updating")
)

// Mapping from string to BackupVault_ProvisioningState_STATUS
var backupVault_ProvisioningState_STATUS_Values = map[string]BackupVault_ProvisioningState_STATUS{
	"failed":       BackupVault_ProvisioningState_STATUS_Failed,
	"provisioning": BackupVault_ProvisioningState_STATUS_Provisioning,
	"succeeded":    BackupVault_ProvisioningState_STATUS_Succeeded,
	"unknown":      BackupVault_ProvisioningState_STATUS_Unknown,
	"updating":     BackupVault_ProvisioningState_STATUS_Updating,
}

type BackupVault_ResourceMoveState_STATUS string

const (
	BackupVault_ResourceMoveState_STATUS_CommitFailed    = BackupVault_ResourceMoveState_STATUS("CommitFailed")
	BackupVault_ResourceMoveState_STATUS_CommitTimedout  = BackupVault_ResourceMoveState_STATUS("CommitTimedout")
	BackupVault_ResourceMoveState_STATUS_CriticalFailure = BackupVault_ResourceMoveState_STATUS("CriticalFailure")
	BackupVault_ResourceMoveState_STATUS_Failed          = BackupVault_ResourceMoveState_STATUS("Failed")
	BackupVault_ResourceMoveState_STATUS_InProgress      = BackupVault_ResourceMoveState_STATUS("InProgress")
	BackupVault_ResourceMoveState_STATUS_MoveSucceeded   = BackupVault_ResourceMoveState_STATUS("MoveSucceeded")
	BackupVault_ResourceMoveState_STATUS_PartialSuccess  = BackupVault_ResourceMoveState_STATUS("PartialSuccess")
	BackupVault_ResourceMoveState_STATUS_PrepareFailed   = BackupVault_ResourceMoveState_STATUS("PrepareFailed")
	BackupVault_ResourceMoveState_STATUS_PrepareTimedout = BackupVault_ResourceMoveState_STATUS("PrepareTimedout")
	BackupVault_ResourceMoveState_STATUS_Unknown         = BackupVault_ResourceMoveState_STATUS("Unknown")
)

// Mapping from string to BackupVault_ResourceMoveState_STATUS
var backupVault_ResourceMoveState_STATUS_Values = map[string]BackupVault_ResourceMoveState_STATUS{
	"commitfailed":    BackupVault_ResourceMoveState_STATUS_CommitFailed,
	"committimedout":  BackupVault_ResourceMoveState_STATUS_CommitTimedout,
	"criticalfailure": BackupVault_ResourceMoveState_STATUS_CriticalFailure,
	"failed":          BackupVault_ResourceMoveState_STATUS_Failed,
	"inprogress":      BackupVault_ResourceMoveState_STATUS_InProgress,
	"movesucceeded":   BackupVault_ResourceMoveState_STATUS_MoveSucceeded,
	"partialsuccess":  BackupVault_ResourceMoveState_STATUS_PartialSuccess,
	"preparefailed":   BackupVault_ResourceMoveState_STATUS_PrepareFailed,
	"preparetimedout": BackupVault_ResourceMoveState_STATUS_PrepareTimedout,
	"unknown":         BackupVault_ResourceMoveState_STATUS_Unknown,
}

// Class containing feature settings of vault
type FeatureSettings_STATUS struct {
	// CrossSubscriptionRestoreSettings: CrossSubscriptionRestore Settings
	CrossSubscriptionRestoreSettings *CrossSubscriptionRestoreSettings_STATUS `json:"crossSubscriptionRestoreSettings,omitempty"`
}

// Monitoring Settings
type MonitoringSettings_STATUS struct {
	// AzureMonitorAlertSettings: Settings for Azure Monitor based alerts
	AzureMonitorAlertSettings *AzureMonitorAlertSettings_STATUS `json:"azureMonitorAlertSettings,omitempty"`
}

// ResourceMoveDetails will be returned in response to GetResource call from ARM
type ResourceMoveDetails_STATUS struct {
	// CompletionTimeUtc: Completion time in UTC of latest ResourceMove operation attempted. ISO 8601 format.
	CompletionTimeUtc *string `json:"completionTimeUtc,omitempty"`

	// OperationId: CorrelationId of latest ResourceMove operation attempted
	OperationId *string `json:"operationId,omitempty"`

	// SourceResourcePath: ARM resource path of source resource
	SourceResourcePath *string `json:"sourceResourcePath,omitempty"`

	// StartTimeUtc: Start time in UTC of latest ResourceMove operation attempted. ISO 8601 format.
	StartTimeUtc *string `json:"startTimeUtc,omitempty"`

	// TargetResourcePath: ARM resource path of target resource used in latest ResourceMove operation
	TargetResourcePath *string `json:"targetResourcePath,omitempty"`
}

// Class containing security settings of vault
type SecuritySettings_STATUS struct {
	// ImmutabilitySettings: Immutability Settings at vault level
	ImmutabilitySettings *ImmutabilitySettings_STATUS `json:"immutabilitySettings,omitempty"`

	// SoftDeleteSettings: Soft delete related settings
	SoftDeleteSettings *SoftDeleteSettings_STATUS `json:"softDeleteSettings,omitempty"`
}

// Storage setting
type StorageSetting_STATUS struct {
	// DatastoreType: Gets or sets the type of the datastore.
	DatastoreType *StorageSetting_DatastoreType_STATUS `json:"datastoreType,omitempty"`

	// Type: Gets or sets the type.
	Type *StorageSetting_Type_STATUS `json:"type,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,
}

// Settings for Azure Monitor based alerts
type AzureMonitorAlertSettings_STATUS struct {
	AlertsForAllJobFailures *AzureMonitorAlertSettings_AlertsForAllJobFailures_STATUS `json:"alertsForAllJobFailures,omitempty"`
}

// CrossSubscriptionRestore Settings
type CrossSubscriptionRestoreSettings_STATUS struct {
	// State: CrossSubscriptionRestore state
	State *CrossSubscriptionRestoreSettings_State_STATUS `json:"state,omitempty"`
}

// Immutability Settings at vault level
type ImmutabilitySettings_STATUS struct {
	// State: Immutability state
	State *ImmutabilitySettings_State_STATUS `json:"state,omitempty"`
}

// Soft delete related settings
type SoftDeleteSettings_STATUS struct {
	// RetentionDurationInDays: Soft delete retention duration
	RetentionDurationInDays *float64 `json:"retentionDurationInDays,omitempty"`

	// State: State of soft delete
	State *SoftDeleteSettings_State_STATUS `json:"state,omitempty"`
}

type StorageSetting_DatastoreType_STATUS string

const (
	StorageSetting_DatastoreType_STATUS_ArchiveStore     = StorageSetting_DatastoreType_STATUS("ArchiveStore")
	StorageSetting_DatastoreType_STATUS_OperationalStore = StorageSetting_DatastoreType_STATUS("OperationalStore")
	StorageSetting_DatastoreType_STATUS_VaultStore       = StorageSetting_DatastoreType_STATUS("VaultStore")
)

// Mapping from string to StorageSetting_DatastoreType_STATUS
var storageSetting_DatastoreType_STATUS_Values = map[string]StorageSetting_DatastoreType_STATUS{
	"archivestore":     StorageSetting_DatastoreType_STATUS_ArchiveStore,
	"operationalstore": StorageSetting_DatastoreType_STATUS_OperationalStore,
	"vaultstore":       StorageSetting_DatastoreType_STATUS_VaultStore,
}

type StorageSetting_Type_STATUS string

const (
	StorageSetting_Type_STATUS_GeoRedundant     = StorageSetting_Type_STATUS("GeoRedundant")
	StorageSetting_Type_STATUS_LocallyRedundant = StorageSetting_Type_STATUS("LocallyRedundant")
	StorageSetting_Type_STATUS_ZoneRedundant    = StorageSetting_Type_STATUS("ZoneRedundant")
)

// Mapping from string to StorageSetting_Type_STATUS
var storageSetting_Type_STATUS_Values = map[string]StorageSetting_Type_STATUS{
	"georedundant":     StorageSetting_Type_STATUS_GeoRedundant,
	"locallyredundant": StorageSetting_Type_STATUS_LocallyRedundant,
	"zoneredundant":    StorageSetting_Type_STATUS_ZoneRedundant,
}

type AzureMonitorAlertSettings_AlertsForAllJobFailures_STATUS string

const (
	AzureMonitorAlertSettings_AlertsForAllJobFailures_STATUS_Disabled = AzureMonitorAlertSettings_AlertsForAllJobFailures_STATUS("Disabled")
	AzureMonitorAlertSettings_AlertsForAllJobFailures_STATUS_Enabled  = AzureMonitorAlertSettings_AlertsForAllJobFailures_STATUS("Enabled")
)

// Mapping from string to AzureMonitorAlertSettings_AlertsForAllJobFailures_STATUS
var azureMonitorAlertSettings_AlertsForAllJobFailures_STATUS_Values = map[string]AzureMonitorAlertSettings_AlertsForAllJobFailures_STATUS{
	"disabled": AzureMonitorAlertSettings_AlertsForAllJobFailures_STATUS_Disabled,
	"enabled":  AzureMonitorAlertSettings_AlertsForAllJobFailures_STATUS_Enabled,
}

type CrossSubscriptionRestoreSettings_State_STATUS string

const (
	CrossSubscriptionRestoreSettings_State_STATUS_Disabled            = CrossSubscriptionRestoreSettings_State_STATUS("Disabled")
	CrossSubscriptionRestoreSettings_State_STATUS_Enabled             = CrossSubscriptionRestoreSettings_State_STATUS("Enabled")
	CrossSubscriptionRestoreSettings_State_STATUS_PermanentlyDisabled = CrossSubscriptionRestoreSettings_State_STATUS("PermanentlyDisabled")
)

// Mapping from string to CrossSubscriptionRestoreSettings_State_STATUS
var crossSubscriptionRestoreSettings_State_STATUS_Values = map[string]CrossSubscriptionRestoreSettings_State_STATUS{
	"disabled":            CrossSubscriptionRestoreSettings_State_STATUS_Disabled,
	"enabled":             CrossSubscriptionRestoreSettings_State_STATUS_Enabled,
	"permanentlydisabled": CrossSubscriptionRestoreSettings_State_STATUS_PermanentlyDisabled,
}

type ImmutabilitySettings_State_STATUS string

const (
	ImmutabilitySettings_State_STATUS_Disabled = ImmutabilitySettings_State_STATUS("Disabled")
	ImmutabilitySettings_State_STATUS_Locked   = ImmutabilitySettings_State_STATUS("Locked")
	ImmutabilitySettings_State_STATUS_Unlocked = ImmutabilitySettings_State_STATUS("Unlocked")
)

// Mapping from string to ImmutabilitySettings_State_STATUS
var immutabilitySettings_State_STATUS_Values = map[string]ImmutabilitySettings_State_STATUS{
	"disabled": ImmutabilitySettings_State_STATUS_Disabled,
	"locked":   ImmutabilitySettings_State_STATUS_Locked,
	"unlocked": ImmutabilitySettings_State_STATUS_Unlocked,
}

type SoftDeleteSettings_State_STATUS string

const (
	SoftDeleteSettings_State_STATUS_AlwaysOn = SoftDeleteSettings_State_STATUS("AlwaysOn")
	SoftDeleteSettings_State_STATUS_Off      = SoftDeleteSettings_State_STATUS("Off")
	SoftDeleteSettings_State_STATUS_On       = SoftDeleteSettings_State_STATUS("On")
)

// Mapping from string to SoftDeleteSettings_State_STATUS
var softDeleteSettings_State_STATUS_Values = map[string]SoftDeleteSettings_State_STATUS{
	"alwayson": SoftDeleteSettings_State_STATUS_AlwaysOn,
	"off":      SoftDeleteSettings_State_STATUS_Off,
	"on":       SoftDeleteSettings_State_STATUS_On,
}
