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

type FleetsAutoUpgradeProfile_STATUS struct {
	// ETag: If eTag is provided in the response body, it may also be provided as a header per the normal etag convention.
	// Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 uses entity tags in
	// the etag (section 14.19), If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header
	// fields.
	ETag *string `json:"eTag,omitempty"`

	// Id: Fully qualified resource ID for the resource. E.g.
	// "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	Id *string `json:"id,omitempty"`

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

	// Properties: The resource-specific properties for this resource.
	Properties *AutoUpgradeProfileProperties_STATUS `json:"properties,omitempty"`

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

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

// The properties of the AutoUpgradeProfile.
type AutoUpgradeProfileProperties_STATUS struct {
	// AutoUpgradeProfileStatus: The status of the auto upgrade profile.
	AutoUpgradeProfileStatus *AutoUpgradeProfileStatus_STATUS `json:"autoUpgradeProfileStatus,omitempty"`

	// Channel: Configures how auto-upgrade will be run.
	Channel *UpgradeChannel_STATUS `json:"channel,omitempty"`

	// Disabled: If set to False: the auto upgrade has effect - target managed clusters will be upgraded on schedule.
	// If set to True: the auto upgrade has no effect - no upgrade will be run on the target managed clusters.
	// This is a boolean and not an enum because enabled/disabled are all available states of the auto upgrade profile.
	// By default, this is set to False.
	Disabled *bool `json:"disabled,omitempty"`

	// NodeImageSelection: The node image upgrade to be applied to the target clusters in auto upgrade.
	NodeImageSelection *AutoUpgradeNodeImageSelection_STATUS `json:"nodeImageSelection,omitempty"`

	// ProvisioningState: The provisioning state of the AutoUpgradeProfile resource.
	ProvisioningState *AutoUpgradeProfileProvisioningState_STATUS `json:"provisioningState,omitempty"`

	// UpdateStrategyId: The resource id of the UpdateStrategy resource to reference. If not specified, the auto upgrade will
	// run on all clusters which are members of the fleet.
	UpdateStrategyId *string `json:"updateStrategyId,omitempty"`
}

// The node image upgrade to be applied to the target clusters in auto upgrade.
type AutoUpgradeNodeImageSelection_STATUS struct {
	// Type: The node image upgrade type.
	Type *AutoUpgradeNodeImageSelectionType_STATUS `json:"type,omitempty"`
}

// The provisioning state of the AutoUpgradeProfile resource.
type AutoUpgradeProfileProvisioningState_STATUS string

const (
	AutoUpgradeProfileProvisioningState_STATUS_Canceled  = AutoUpgradeProfileProvisioningState_STATUS("Canceled")
	AutoUpgradeProfileProvisioningState_STATUS_Failed    = AutoUpgradeProfileProvisioningState_STATUS("Failed")
	AutoUpgradeProfileProvisioningState_STATUS_Succeeded = AutoUpgradeProfileProvisioningState_STATUS("Succeeded")
)

// Mapping from string to AutoUpgradeProfileProvisioningState_STATUS
var autoUpgradeProfileProvisioningState_STATUS_Values = map[string]AutoUpgradeProfileProvisioningState_STATUS{
	"canceled":  AutoUpgradeProfileProvisioningState_STATUS_Canceled,
	"failed":    AutoUpgradeProfileProvisioningState_STATUS_Failed,
	"succeeded": AutoUpgradeProfileProvisioningState_STATUS_Succeeded,
}

// AutoUpgradeProfileStatus is the status of an auto upgrade profile.
type AutoUpgradeProfileStatus_STATUS struct {
	// LastTriggerError: The error details of the last trigger.
	LastTriggerError *ErrorDetail_STATUS `json:"lastTriggerError,omitempty"`

	// LastTriggerStatus: The status of the last AutoUpgrade trigger.
	LastTriggerStatus *AutoUpgradeLastTriggerStatus_STATUS `json:"lastTriggerStatus,omitempty"`

	// LastTriggerUpgradeVersions: The target Kubernetes version or node image versions of the last trigger.
	LastTriggerUpgradeVersions []string `json:"lastTriggerUpgradeVersions"`

	// LastTriggeredAt: The UTC time of the last attempt to automatically create and start an UpdateRun as triggered by the
	// release of new versions.
	LastTriggeredAt *string `json:"lastTriggeredAt,omitempty"`
}

// Configuration of how auto upgrade will be run.
type UpgradeChannel_STATUS string

const (
	UpgradeChannel_STATUS_NodeImage = UpgradeChannel_STATUS("NodeImage")
	UpgradeChannel_STATUS_Rapid     = UpgradeChannel_STATUS("Rapid")
	UpgradeChannel_STATUS_Stable    = UpgradeChannel_STATUS("Stable")
)

// Mapping from string to UpgradeChannel_STATUS
var upgradeChannel_STATUS_Values = map[string]UpgradeChannel_STATUS{
	"nodeimage": UpgradeChannel_STATUS_NodeImage,
	"rapid":     UpgradeChannel_STATUS_Rapid,
	"stable":    UpgradeChannel_STATUS_Stable,
}

// AutoUpgradeLastTriggerStatus is the status of the last AutoUpgrade trigger (attempt to automatically create and start
// UpdateRun when there are new released versions) of an auto upgrade profile.
type AutoUpgradeLastTriggerStatus_STATUS string

const (
	AutoUpgradeLastTriggerStatus_STATUS_Failed    = AutoUpgradeLastTriggerStatus_STATUS("Failed")
	AutoUpgradeLastTriggerStatus_STATUS_Succeeded = AutoUpgradeLastTriggerStatus_STATUS("Succeeded")
)

// Mapping from string to AutoUpgradeLastTriggerStatus_STATUS
var autoUpgradeLastTriggerStatus_STATUS_Values = map[string]AutoUpgradeLastTriggerStatus_STATUS{
	"failed":    AutoUpgradeLastTriggerStatus_STATUS_Failed,
	"succeeded": AutoUpgradeLastTriggerStatus_STATUS_Succeeded,
}

// The node image upgrade type.
type AutoUpgradeNodeImageSelectionType_STATUS string

const (
	AutoUpgradeNodeImageSelectionType_STATUS_Consistent = AutoUpgradeNodeImageSelectionType_STATUS("Consistent")
	AutoUpgradeNodeImageSelectionType_STATUS_Latest     = AutoUpgradeNodeImageSelectionType_STATUS("Latest")
)

// Mapping from string to AutoUpgradeNodeImageSelectionType_STATUS
var autoUpgradeNodeImageSelectionType_STATUS_Values = map[string]AutoUpgradeNodeImageSelectionType_STATUS{
	"consistent": AutoUpgradeNodeImageSelectionType_STATUS_Consistent,
	"latest":     AutoUpgradeNodeImageSelectionType_STATUS_Latest,
}
