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

import (
	"encoding/json"
	"k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
)

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

	// Identity: The identity of the resource.
	Identity *ManagedServiceIdentity_STATUS `json:"identity,omitempty"`

	// Location: Specifies the location of the resource.
	Location *string `json:"location,omitempty"`

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

	// Properties: Compute properties
	Properties *Compute_STATUS `json:"properties,omitempty"`

	// Sku: The sku of the workspace.
	Sku *Sku_STATUS `json:"sku,omitempty"`

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

	// Tags: Contains resource tags defined as key/value pairs.
	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 Compute_STATUS struct {
	// AKS: Mutually exclusive with all other properties
	AKS *AKS_STATUS `json:"aks,omitempty"`

	// AmlCompute: Mutually exclusive with all other properties
	AmlCompute *AmlCompute_STATUS `json:"amlCompute,omitempty"`

	// ComputeInstance: Mutually exclusive with all other properties
	ComputeInstance *ComputeInstance_STATUS `json:"computeInstance,omitempty"`

	// DataFactory: Mutually exclusive with all other properties
	DataFactory *DataFactory_STATUS `json:"dataFactory,omitempty"`

	// DataLakeAnalytics: Mutually exclusive with all other properties
	DataLakeAnalytics *DataLakeAnalytics_STATUS `json:"dataLakeAnalytics,omitempty"`

	// Databricks: Mutually exclusive with all other properties
	Databricks *Databricks_STATUS `json:"databricks,omitempty"`

	// HDInsight: Mutually exclusive with all other properties
	HDInsight *HDInsight_STATUS `json:"hdInsight,omitempty"`

	// Kubernetes: Mutually exclusive with all other properties
	Kubernetes *Kubernetes_STATUS `json:"kubernetes,omitempty"`

	// SynapseSpark: Mutually exclusive with all other properties
	SynapseSpark *SynapseSpark_STATUS `json:"synapseSpark,omitempty"`

	// VirtualMachine: Mutually exclusive with all other properties
	VirtualMachine *VirtualMachine_STATUS `json:"virtualMachine,omitempty"`
}

// MarshalJSON defers JSON marshaling to the first non-nil property, because Compute_STATUS represents a discriminated union (JSON OneOf)
func (compute Compute_STATUS) MarshalJSON() ([]byte, error) {
	if compute.AKS != nil {
		return json.Marshal(compute.AKS)
	}

	if compute.AmlCompute != nil {
		return json.Marshal(compute.AmlCompute)
	}

	if compute.ComputeInstance != nil {
		return json.Marshal(compute.ComputeInstance)
	}

	if compute.DataFactory != nil {
		return json.Marshal(compute.DataFactory)
	}

	if compute.DataLakeAnalytics != nil {
		return json.Marshal(compute.DataLakeAnalytics)
	}

	if compute.Databricks != nil {
		return json.Marshal(compute.Databricks)
	}

	if compute.HDInsight != nil {
		return json.Marshal(compute.HDInsight)
	}

	if compute.Kubernetes != nil {
		return json.Marshal(compute.Kubernetes)
	}

	if compute.SynapseSpark != nil {
		return json.Marshal(compute.SynapseSpark)
	}

	if compute.VirtualMachine != nil {
		return json.Marshal(compute.VirtualMachine)
	}

	return nil, nil
}

// UnmarshalJSON unmarshals the Compute_STATUS
func (compute *Compute_STATUS) UnmarshalJSON(data []byte) error {
	var rawJson map[string]interface{}
	err := json.Unmarshal(data, &rawJson)
	if err != nil {
		return err
	}
	discriminator := rawJson["computeType"]
	if discriminator == "AKS" {
		compute.AKS = &AKS_STATUS{}
		return json.Unmarshal(data, compute.AKS)
	}
	if discriminator == "AmlCompute" {
		compute.AmlCompute = &AmlCompute_STATUS{}
		return json.Unmarshal(data, compute.AmlCompute)
	}
	if discriminator == "ComputeInstance" {
		compute.ComputeInstance = &ComputeInstance_STATUS{}
		return json.Unmarshal(data, compute.ComputeInstance)
	}
	if discriminator == "DataFactory" {
		compute.DataFactory = &DataFactory_STATUS{}
		return json.Unmarshal(data, compute.DataFactory)
	}
	if discriminator == "DataLakeAnalytics" {
		compute.DataLakeAnalytics = &DataLakeAnalytics_STATUS{}
		return json.Unmarshal(data, compute.DataLakeAnalytics)
	}
	if discriminator == "Databricks" {
		compute.Databricks = &Databricks_STATUS{}
		return json.Unmarshal(data, compute.Databricks)
	}
	if discriminator == "HDInsight" {
		compute.HDInsight = &HDInsight_STATUS{}
		return json.Unmarshal(data, compute.HDInsight)
	}
	if discriminator == "Kubernetes" {
		compute.Kubernetes = &Kubernetes_STATUS{}
		return json.Unmarshal(data, compute.Kubernetes)
	}
	if discriminator == "SynapseSpark" {
		compute.SynapseSpark = &SynapseSpark_STATUS{}
		return json.Unmarshal(data, compute.SynapseSpark)
	}
	if discriminator == "VirtualMachine" {
		compute.VirtualMachine = &VirtualMachine_STATUS{}
		return json.Unmarshal(data, compute.VirtualMachine)
	}

	// No error
	return nil
}

type AKS_STATUS struct {
	// ComputeLocation: Location for the underlying compute
	ComputeLocation *string `json:"computeLocation,omitempty"`

	// ComputeType: The type of compute
	ComputeType AKS_ComputeType_STATUS `json:"computeType,omitempty"`

	// CreatedOn: The time at which the compute was created.
	CreatedOn *string `json:"createdOn,omitempty"`

	// Description: The description of the Machine Learning compute.
	Description *string `json:"description,omitempty"`

	// DisableLocalAuth: Opt-out of local authentication and ensure customers can use only MSI and AAD exclusively for
	// authentication.
	DisableLocalAuth *bool `json:"disableLocalAuth,omitempty"`

	// IsAttachedCompute: Indicating whether the compute was provisioned by user and brought from outside if true, or machine
	// learning service provisioned it if false.
	IsAttachedCompute *bool `json:"isAttachedCompute,omitempty"`

	// ModifiedOn: The time at which the compute was last modified.
	ModifiedOn *string `json:"modifiedOn,omitempty"`

	// Properties: AKS properties
	Properties *AKS_Properties_STATUS `json:"properties,omitempty"`

	// ProvisioningErrors: Errors during provisioning
	ProvisioningErrors []ErrorResponse_STATUS `json:"provisioningErrors,omitempty"`

	// ProvisioningState: The provision state of the cluster. Valid values are Unknown, Updating, Provisioning, Succeeded, and
	// Failed.
	ProvisioningState *AKS_ProvisioningState_STATUS `json:"provisioningState,omitempty"`

	// ResourceId: ARM resource id of the underlying compute
	ResourceId *string `json:"resourceId,omitempty"`
}

type AmlCompute_STATUS struct {
	// ComputeLocation: Location for the underlying compute
	ComputeLocation *string `json:"computeLocation,omitempty"`

	// ComputeType: The type of compute
	ComputeType AmlCompute_ComputeType_STATUS `json:"computeType,omitempty"`

	// CreatedOn: The time at which the compute was created.
	CreatedOn *string `json:"createdOn,omitempty"`

	// Description: The description of the Machine Learning compute.
	Description *string `json:"description,omitempty"`

	// DisableLocalAuth: Opt-out of local authentication and ensure customers can use only MSI and AAD exclusively for
	// authentication.
	DisableLocalAuth *bool `json:"disableLocalAuth,omitempty"`

	// IsAttachedCompute: Indicating whether the compute was provisioned by user and brought from outside if true, or machine
	// learning service provisioned it if false.
	IsAttachedCompute *bool `json:"isAttachedCompute,omitempty"`

	// ModifiedOn: The time at which the compute was last modified.
	ModifiedOn *string `json:"modifiedOn,omitempty"`

	// Properties: Properties of AmlCompute
	Properties *AmlComputeProperties_STATUS `json:"properties,omitempty"`

	// ProvisioningErrors: Errors during provisioning
	ProvisioningErrors []ErrorResponse_STATUS `json:"provisioningErrors,omitempty"`

	// ProvisioningState: The provision state of the cluster. Valid values are Unknown, Updating, Provisioning, Succeeded, and
	// Failed.
	ProvisioningState *AmlCompute_ProvisioningState_STATUS `json:"provisioningState,omitempty"`

	// ResourceId: ARM resource id of the underlying compute
	ResourceId *string `json:"resourceId,omitempty"`
}

type ComputeInstance_STATUS struct {
	// ComputeLocation: Location for the underlying compute
	ComputeLocation *string `json:"computeLocation,omitempty"`

	// ComputeType: The type of compute
	ComputeType ComputeInstance_ComputeType_STATUS `json:"computeType,omitempty"`

	// CreatedOn: The time at which the compute was created.
	CreatedOn *string `json:"createdOn,omitempty"`

	// Description: The description of the Machine Learning compute.
	Description *string `json:"description,omitempty"`

	// DisableLocalAuth: Opt-out of local authentication and ensure customers can use only MSI and AAD exclusively for
	// authentication.
	DisableLocalAuth *bool `json:"disableLocalAuth,omitempty"`

	// IsAttachedCompute: Indicating whether the compute was provisioned by user and brought from outside if true, or machine
	// learning service provisioned it if false.
	IsAttachedCompute *bool `json:"isAttachedCompute,omitempty"`

	// ModifiedOn: The time at which the compute was last modified.
	ModifiedOn *string `json:"modifiedOn,omitempty"`

	// Properties: Properties of ComputeInstance
	Properties *ComputeInstanceProperties_STATUS `json:"properties,omitempty"`

	// ProvisioningErrors: Errors during provisioning
	ProvisioningErrors []ErrorResponse_STATUS `json:"provisioningErrors,omitempty"`

	// ProvisioningState: The provision state of the cluster. Valid values are Unknown, Updating, Provisioning, Succeeded, and
	// Failed.
	ProvisioningState *ComputeInstance_ProvisioningState_STATUS `json:"provisioningState,omitempty"`

	// ResourceId: ARM resource id of the underlying compute
	ResourceId *string `json:"resourceId,omitempty"`
}

type Databricks_STATUS struct {
	// ComputeLocation: Location for the underlying compute
	ComputeLocation *string `json:"computeLocation,omitempty"`

	// ComputeType: The type of compute
	ComputeType Databricks_ComputeType_STATUS `json:"computeType,omitempty"`

	// CreatedOn: The time at which the compute was created.
	CreatedOn *string `json:"createdOn,omitempty"`

	// Description: The description of the Machine Learning compute.
	Description *string `json:"description,omitempty"`

	// DisableLocalAuth: Opt-out of local authentication and ensure customers can use only MSI and AAD exclusively for
	// authentication.
	DisableLocalAuth *bool `json:"disableLocalAuth,omitempty"`

	// IsAttachedCompute: Indicating whether the compute was provisioned by user and brought from outside if true, or machine
	// learning service provisioned it if false.
	IsAttachedCompute *bool `json:"isAttachedCompute,omitempty"`

	// ModifiedOn: The time at which the compute was last modified.
	ModifiedOn *string `json:"modifiedOn,omitempty"`

	// Properties: Properties of Databricks
	Properties *DatabricksProperties_STATUS `json:"properties,omitempty"`

	// ProvisioningErrors: Errors during provisioning
	ProvisioningErrors []ErrorResponse_STATUS `json:"provisioningErrors,omitempty"`

	// ProvisioningState: The provision state of the cluster. Valid values are Unknown, Updating, Provisioning, Succeeded, and
	// Failed.
	ProvisioningState *Databricks_ProvisioningState_STATUS `json:"provisioningState,omitempty"`

	// ResourceId: ARM resource id of the underlying compute
	ResourceId *string `json:"resourceId,omitempty"`
}

type DataFactory_STATUS struct {
	// ComputeLocation: Location for the underlying compute
	ComputeLocation *string `json:"computeLocation,omitempty"`

	// ComputeType: The type of compute
	ComputeType DataFactory_ComputeType_STATUS `json:"computeType,omitempty"`

	// CreatedOn: The time at which the compute was created.
	CreatedOn *string `json:"createdOn,omitempty"`

	// Description: The description of the Machine Learning compute.
	Description *string `json:"description,omitempty"`

	// DisableLocalAuth: Opt-out of local authentication and ensure customers can use only MSI and AAD exclusively for
	// authentication.
	DisableLocalAuth *bool `json:"disableLocalAuth,omitempty"`

	// IsAttachedCompute: Indicating whether the compute was provisioned by user and brought from outside if true, or machine
	// learning service provisioned it if false.
	IsAttachedCompute *bool `json:"isAttachedCompute,omitempty"`

	// ModifiedOn: The time at which the compute was last modified.
	ModifiedOn *string `json:"modifiedOn,omitempty"`

	// ProvisioningErrors: Errors during provisioning
	ProvisioningErrors []ErrorResponse_STATUS `json:"provisioningErrors,omitempty"`

	// ProvisioningState: The provision state of the cluster. Valid values are Unknown, Updating, Provisioning, Succeeded, and
	// Failed.
	ProvisioningState *DataFactory_ProvisioningState_STATUS `json:"provisioningState,omitempty"`

	// ResourceId: ARM resource id of the underlying compute
	ResourceId *string `json:"resourceId,omitempty"`
}

type DataLakeAnalytics_STATUS struct {
	// ComputeLocation: Location for the underlying compute
	ComputeLocation *string `json:"computeLocation,omitempty"`

	// ComputeType: The type of compute
	ComputeType DataLakeAnalytics_ComputeType_STATUS `json:"computeType,omitempty"`

	// CreatedOn: The time at which the compute was created.
	CreatedOn *string `json:"createdOn,omitempty"`

	// Description: The description of the Machine Learning compute.
	Description *string `json:"description,omitempty"`

	// DisableLocalAuth: Opt-out of local authentication and ensure customers can use only MSI and AAD exclusively for
	// authentication.
	DisableLocalAuth *bool `json:"disableLocalAuth,omitempty"`

	// IsAttachedCompute: Indicating whether the compute was provisioned by user and brought from outside if true, or machine
	// learning service provisioned it if false.
	IsAttachedCompute *bool `json:"isAttachedCompute,omitempty"`

	// ModifiedOn: The time at which the compute was last modified.
	ModifiedOn *string                              `json:"modifiedOn,omitempty"`
	Properties *DataLakeAnalytics_Properties_STATUS `json:"properties,omitempty"`

	// ProvisioningErrors: Errors during provisioning
	ProvisioningErrors []ErrorResponse_STATUS `json:"provisioningErrors,omitempty"`

	// ProvisioningState: The provision state of the cluster. Valid values are Unknown, Updating, Provisioning, Succeeded, and
	// Failed.
	ProvisioningState *DataLakeAnalytics_ProvisioningState_STATUS `json:"provisioningState,omitempty"`

	// ResourceId: ARM resource id of the underlying compute
	ResourceId *string `json:"resourceId,omitempty"`
}

type HDInsight_STATUS struct {
	// ComputeLocation: Location for the underlying compute
	ComputeLocation *string `json:"computeLocation,omitempty"`

	// ComputeType: The type of compute
	ComputeType HDInsight_ComputeType_STATUS `json:"computeType,omitempty"`

	// CreatedOn: The time at which the compute was created.
	CreatedOn *string `json:"createdOn,omitempty"`

	// Description: The description of the Machine Learning compute.
	Description *string `json:"description,omitempty"`

	// DisableLocalAuth: Opt-out of local authentication and ensure customers can use only MSI and AAD exclusively for
	// authentication.
	DisableLocalAuth *bool `json:"disableLocalAuth,omitempty"`

	// IsAttachedCompute: Indicating whether the compute was provisioned by user and brought from outside if true, or machine
	// learning service provisioned it if false.
	IsAttachedCompute *bool `json:"isAttachedCompute,omitempty"`

	// ModifiedOn: The time at which the compute was last modified.
	ModifiedOn *string `json:"modifiedOn,omitempty"`

	// Properties: HDInsight compute properties
	Properties *HDInsightProperties_STATUS `json:"properties,omitempty"`

	// ProvisioningErrors: Errors during provisioning
	ProvisioningErrors []ErrorResponse_STATUS `json:"provisioningErrors,omitempty"`

	// ProvisioningState: The provision state of the cluster. Valid values are Unknown, Updating, Provisioning, Succeeded, and
	// Failed.
	ProvisioningState *HDInsight_ProvisioningState_STATUS `json:"provisioningState,omitempty"`

	// ResourceId: ARM resource id of the underlying compute
	ResourceId *string `json:"resourceId,omitempty"`
}

type Kubernetes_STATUS struct {
	// ComputeLocation: Location for the underlying compute
	ComputeLocation *string `json:"computeLocation,omitempty"`

	// ComputeType: The type of compute
	ComputeType Kubernetes_ComputeType_STATUS `json:"computeType,omitempty"`

	// CreatedOn: The time at which the compute was created.
	CreatedOn *string `json:"createdOn,omitempty"`

	// Description: The description of the Machine Learning compute.
	Description *string `json:"description,omitempty"`

	// DisableLocalAuth: Opt-out of local authentication and ensure customers can use only MSI and AAD exclusively for
	// authentication.
	DisableLocalAuth *bool `json:"disableLocalAuth,omitempty"`

	// IsAttachedCompute: Indicating whether the compute was provisioned by user and brought from outside if true, or machine
	// learning service provisioned it if false.
	IsAttachedCompute *bool `json:"isAttachedCompute,omitempty"`

	// ModifiedOn: The time at which the compute was last modified.
	ModifiedOn *string `json:"modifiedOn,omitempty"`

	// Properties: Properties of Kubernetes
	Properties *KubernetesProperties_STATUS `json:"properties,omitempty"`

	// ProvisioningErrors: Errors during provisioning
	ProvisioningErrors []ErrorResponse_STATUS `json:"provisioningErrors,omitempty"`

	// ProvisioningState: The provision state of the cluster. Valid values are Unknown, Updating, Provisioning, Succeeded, and
	// Failed.
	ProvisioningState *Kubernetes_ProvisioningState_STATUS `json:"provisioningState,omitempty"`

	// ResourceId: ARM resource id of the underlying compute
	ResourceId *string `json:"resourceId,omitempty"`
}

type SynapseSpark_STATUS struct {
	// ComputeLocation: Location for the underlying compute
	ComputeLocation *string `json:"computeLocation,omitempty"`

	// ComputeType: The type of compute
	ComputeType SynapseSpark_ComputeType_STATUS `json:"computeType,omitempty"`

	// CreatedOn: The time at which the compute was created.
	CreatedOn *string `json:"createdOn,omitempty"`

	// Description: The description of the Machine Learning compute.
	Description *string `json:"description,omitempty"`

	// DisableLocalAuth: Opt-out of local authentication and ensure customers can use only MSI and AAD exclusively for
	// authentication.
	DisableLocalAuth *bool `json:"disableLocalAuth,omitempty"`

	// IsAttachedCompute: Indicating whether the compute was provisioned by user and brought from outside if true, or machine
	// learning service provisioned it if false.
	IsAttachedCompute *bool `json:"isAttachedCompute,omitempty"`

	// ModifiedOn: The time at which the compute was last modified.
	ModifiedOn *string                         `json:"modifiedOn,omitempty"`
	Properties *SynapseSpark_Properties_STATUS `json:"properties,omitempty"`

	// ProvisioningErrors: Errors during provisioning
	ProvisioningErrors []ErrorResponse_STATUS `json:"provisioningErrors,omitempty"`

	// ProvisioningState: The provision state of the cluster. Valid values are Unknown, Updating, Provisioning, Succeeded, and
	// Failed.
	ProvisioningState *SynapseSpark_ProvisioningState_STATUS `json:"provisioningState,omitempty"`

	// ResourceId: ARM resource id of the underlying compute
	ResourceId *string `json:"resourceId,omitempty"`
}

type VirtualMachine_STATUS struct {
	// ComputeLocation: Location for the underlying compute
	ComputeLocation *string `json:"computeLocation,omitempty"`

	// ComputeType: The type of compute
	ComputeType VirtualMachine_ComputeType_STATUS `json:"computeType,omitempty"`

	// CreatedOn: The time at which the compute was created.
	CreatedOn *string `json:"createdOn,omitempty"`

	// Description: The description of the Machine Learning compute.
	Description *string `json:"description,omitempty"`

	// DisableLocalAuth: Opt-out of local authentication and ensure customers can use only MSI and AAD exclusively for
	// authentication.
	DisableLocalAuth *bool `json:"disableLocalAuth,omitempty"`

	// IsAttachedCompute: Indicating whether the compute was provisioned by user and brought from outside if true, or machine
	// learning service provisioned it if false.
	IsAttachedCompute *bool `json:"isAttachedCompute,omitempty"`

	// ModifiedOn: The time at which the compute was last modified.
	ModifiedOn *string                           `json:"modifiedOn,omitempty"`
	Properties *VirtualMachine_Properties_STATUS `json:"properties,omitempty"`

	// ProvisioningErrors: Errors during provisioning
	ProvisioningErrors []ErrorResponse_STATUS `json:"provisioningErrors,omitempty"`

	// ProvisioningState: The provision state of the cluster. Valid values are Unknown, Updating, Provisioning, Succeeded, and
	// Failed.
	ProvisioningState *VirtualMachine_ProvisioningState_STATUS `json:"provisioningState,omitempty"`

	// ResourceId: ARM resource id of the underlying compute
	ResourceId *string `json:"resourceId,omitempty"`
}

type AKS_ComputeType_STATUS string

const AKS_ComputeType_STATUS_AKS = AKS_ComputeType_STATUS("AKS")

// Mapping from string to AKS_ComputeType_STATUS
var aKS_ComputeType_STATUS_Values = map[string]AKS_ComputeType_STATUS{
	"aks": AKS_ComputeType_STATUS_AKS,
}

type AKS_Properties_STATUS struct {
	// AgentCount: Number of agents
	AgentCount *int `json:"agentCount,omitempty"`

	// AgentVmSize: Agent virtual machine size
	AgentVmSize *string `json:"agentVmSize,omitempty"`

	// AksNetworkingConfiguration: AKS networking configuration for vnet
	AksNetworkingConfiguration *AksNetworkingConfiguration_STATUS `json:"aksNetworkingConfiguration,omitempty"`

	// ClusterFqdn: Cluster full qualified domain name
	ClusterFqdn *string `json:"clusterFqdn,omitempty"`

	// ClusterPurpose: Intended usage of the cluster
	ClusterPurpose *AKS_Properties_ClusterPurpose_STATUS `json:"clusterPurpose,omitempty"`

	// LoadBalancerSubnet: Load Balancer Subnet
	LoadBalancerSubnet *string `json:"loadBalancerSubnet,omitempty"`

	// LoadBalancerType: Load Balancer Type
	LoadBalancerType *AKS_Properties_LoadBalancerType_STATUS `json:"loadBalancerType,omitempty"`

	// SslConfiguration: SSL configuration
	SslConfiguration *SslConfiguration_STATUS `json:"sslConfiguration,omitempty"`

	// SystemServices: System services
	SystemServices []SystemService_STATUS `json:"systemServices,omitempty"`
}

type AKS_ProvisioningState_STATUS string

const (
	AKS_ProvisioningState_STATUS_Canceled  = AKS_ProvisioningState_STATUS("Canceled")
	AKS_ProvisioningState_STATUS_Creating  = AKS_ProvisioningState_STATUS("Creating")
	AKS_ProvisioningState_STATUS_Deleting  = AKS_ProvisioningState_STATUS("Deleting")
	AKS_ProvisioningState_STATUS_Failed    = AKS_ProvisioningState_STATUS("Failed")
	AKS_ProvisioningState_STATUS_Succeeded = AKS_ProvisioningState_STATUS("Succeeded")
	AKS_ProvisioningState_STATUS_Unknown   = AKS_ProvisioningState_STATUS("Unknown")
	AKS_ProvisioningState_STATUS_Updating  = AKS_ProvisioningState_STATUS("Updating")
)

// Mapping from string to AKS_ProvisioningState_STATUS
var aKS_ProvisioningState_STATUS_Values = map[string]AKS_ProvisioningState_STATUS{
	"canceled":  AKS_ProvisioningState_STATUS_Canceled,
	"creating":  AKS_ProvisioningState_STATUS_Creating,
	"deleting":  AKS_ProvisioningState_STATUS_Deleting,
	"failed":    AKS_ProvisioningState_STATUS_Failed,
	"succeeded": AKS_ProvisioningState_STATUS_Succeeded,
	"unknown":   AKS_ProvisioningState_STATUS_Unknown,
	"updating":  AKS_ProvisioningState_STATUS_Updating,
}

type AmlCompute_ComputeType_STATUS string

const AmlCompute_ComputeType_STATUS_AmlCompute = AmlCompute_ComputeType_STATUS("AmlCompute")

// Mapping from string to AmlCompute_ComputeType_STATUS
var amlCompute_ComputeType_STATUS_Values = map[string]AmlCompute_ComputeType_STATUS{
	"amlcompute": AmlCompute_ComputeType_STATUS_AmlCompute,
}

type AmlCompute_ProvisioningState_STATUS string

const (
	AmlCompute_ProvisioningState_STATUS_Canceled  = AmlCompute_ProvisioningState_STATUS("Canceled")
	AmlCompute_ProvisioningState_STATUS_Creating  = AmlCompute_ProvisioningState_STATUS("Creating")
	AmlCompute_ProvisioningState_STATUS_Deleting  = AmlCompute_ProvisioningState_STATUS("Deleting")
	AmlCompute_ProvisioningState_STATUS_Failed    = AmlCompute_ProvisioningState_STATUS("Failed")
	AmlCompute_ProvisioningState_STATUS_Succeeded = AmlCompute_ProvisioningState_STATUS("Succeeded")
	AmlCompute_ProvisioningState_STATUS_Unknown   = AmlCompute_ProvisioningState_STATUS("Unknown")
	AmlCompute_ProvisioningState_STATUS_Updating  = AmlCompute_ProvisioningState_STATUS("Updating")
)

// Mapping from string to AmlCompute_ProvisioningState_STATUS
var amlCompute_ProvisioningState_STATUS_Values = map[string]AmlCompute_ProvisioningState_STATUS{
	"canceled":  AmlCompute_ProvisioningState_STATUS_Canceled,
	"creating":  AmlCompute_ProvisioningState_STATUS_Creating,
	"deleting":  AmlCompute_ProvisioningState_STATUS_Deleting,
	"failed":    AmlCompute_ProvisioningState_STATUS_Failed,
	"succeeded": AmlCompute_ProvisioningState_STATUS_Succeeded,
	"unknown":   AmlCompute_ProvisioningState_STATUS_Unknown,
	"updating":  AmlCompute_ProvisioningState_STATUS_Updating,
}

// AML Compute properties
type AmlComputeProperties_STATUS struct {
	// AllocationState: Allocation state of the compute. Possible values are: steady - Indicates that the compute is not
	// resizing. There are no changes to the number of compute nodes in the compute in progress. A compute enters this state
	// when it is created and when no operations are being performed on the compute to change the number of compute nodes.
	// resizing - Indicates that the compute is resizing; that is, compute nodes are being added to or removed from the compute.
	AllocationState *AmlComputeProperties_AllocationState_STATUS `json:"allocationState,omitempty"`

	// AllocationStateTransitionTime: The time at which the compute entered its current allocation state.
	AllocationStateTransitionTime *string `json:"allocationStateTransitionTime,omitempty"`

	// CurrentNodeCount: The number of compute nodes currently assigned to the compute.
	CurrentNodeCount *int `json:"currentNodeCount,omitempty"`

	// EnableNodePublicIp: Enable or disable node public IP address provisioning. Possible values are: Possible values are:
	// true - Indicates that the compute nodes will have public IPs provisioned. false - Indicates that the compute nodes will
	// have a private endpoint and no public IPs.
	EnableNodePublicIp *bool `json:"enableNodePublicIp,omitempty"`

	// Errors: Collection of errors encountered by various compute nodes during node setup.
	Errors []ErrorResponse_STATUS `json:"errors,omitempty"`

	// IsolatedNetwork: Network is isolated or not
	IsolatedNetwork *bool `json:"isolatedNetwork,omitempty"`

	// NodeStateCounts: Counts of various node states on the compute.
	NodeStateCounts *NodeStateCounts_STATUS `json:"nodeStateCounts,omitempty"`

	// OsType: Compute OS Type
	OsType *AmlComputeProperties_OsType_STATUS `json:"osType,omitempty"`

	// PropertyBag: A property bag containing additional properties.
	PropertyBag map[string]v1.JSON `json:"propertyBag,omitempty"`

	// RemoteLoginPortPublicAccess: State of the public SSH port. Possible values are: Disabled - Indicates that the public ssh
	// port is closed on all nodes of the cluster. Enabled - Indicates that the public ssh port is open on all nodes of the
	// cluster. NotSpecified - Indicates that the public ssh port is closed on all nodes of the cluster if VNet is defined,
	// else is open all public nodes. It can be default only during cluster creation time, after creation it will be either
	// enabled or disabled.
	RemoteLoginPortPublicAccess *AmlComputeProperties_RemoteLoginPortPublicAccess_STATUS `json:"remoteLoginPortPublicAccess,omitempty"`

	// ScaleSettings: Scale settings for AML Compute
	ScaleSettings *ScaleSettings_STATUS `json:"scaleSettings,omitempty"`

	// Subnet: Virtual network subnet resource ID the compute nodes belong to.
	Subnet *ResourceId_STATUS `json:"subnet,omitempty"`

	// TargetNodeCount: The target number of compute nodes for the compute. If the allocationState is resizing, this property
	// denotes the target node count for the ongoing resize operation. If the allocationState is steady, this property denotes
	// the target node count for the previous resize operation.
	TargetNodeCount *int `json:"targetNodeCount,omitempty"`

	// UserAccountCredentials: Credentials for an administrator user account that will be created on each compute node.
	UserAccountCredentials *UserAccountCredentials_STATUS `json:"userAccountCredentials,omitempty"`

	// VirtualMachineImage: Virtual Machine image for AML Compute - windows only
	VirtualMachineImage *VirtualMachineImage_STATUS `json:"virtualMachineImage,omitempty"`

	// VmPriority: Virtual Machine priority
	VmPriority *AmlComputeProperties_VmPriority_STATUS `json:"vmPriority,omitempty"`

	// VmSize: Virtual Machine Size
	VmSize *string `json:"vmSize,omitempty"`
}

type ComputeInstance_ComputeType_STATUS string

const ComputeInstance_ComputeType_STATUS_ComputeInstance = ComputeInstance_ComputeType_STATUS("ComputeInstance")

// Mapping from string to ComputeInstance_ComputeType_STATUS
var computeInstance_ComputeType_STATUS_Values = map[string]ComputeInstance_ComputeType_STATUS{
	"computeinstance": ComputeInstance_ComputeType_STATUS_ComputeInstance,
}

type ComputeInstance_ProvisioningState_STATUS string

const (
	ComputeInstance_ProvisioningState_STATUS_Canceled  = ComputeInstance_ProvisioningState_STATUS("Canceled")
	ComputeInstance_ProvisioningState_STATUS_Creating  = ComputeInstance_ProvisioningState_STATUS("Creating")
	ComputeInstance_ProvisioningState_STATUS_Deleting  = ComputeInstance_ProvisioningState_STATUS("Deleting")
	ComputeInstance_ProvisioningState_STATUS_Failed    = ComputeInstance_ProvisioningState_STATUS("Failed")
	ComputeInstance_ProvisioningState_STATUS_Succeeded = ComputeInstance_ProvisioningState_STATUS("Succeeded")
	ComputeInstance_ProvisioningState_STATUS_Unknown   = ComputeInstance_ProvisioningState_STATUS("Unknown")
	ComputeInstance_ProvisioningState_STATUS_Updating  = ComputeInstance_ProvisioningState_STATUS("Updating")
)

// Mapping from string to ComputeInstance_ProvisioningState_STATUS
var computeInstance_ProvisioningState_STATUS_Values = map[string]ComputeInstance_ProvisioningState_STATUS{
	"canceled":  ComputeInstance_ProvisioningState_STATUS_Canceled,
	"creating":  ComputeInstance_ProvisioningState_STATUS_Creating,
	"deleting":  ComputeInstance_ProvisioningState_STATUS_Deleting,
	"failed":    ComputeInstance_ProvisioningState_STATUS_Failed,
	"succeeded": ComputeInstance_ProvisioningState_STATUS_Succeeded,
	"unknown":   ComputeInstance_ProvisioningState_STATUS_Unknown,
	"updating":  ComputeInstance_ProvisioningState_STATUS_Updating,
}

// Compute Instance properties
type ComputeInstanceProperties_STATUS struct {
	// ApplicationSharingPolicy: Policy for sharing applications on this compute instance among users of parent workspace. If
	// Personal, only the creator can access applications on this compute instance. When Shared, any workspace user can access
	// applications on this instance depending on his/her assigned role.
	ApplicationSharingPolicy *ComputeInstanceProperties_ApplicationSharingPolicy_STATUS `json:"applicationSharingPolicy,omitempty"`

	// Applications: Describes available applications and their endpoints on this ComputeInstance.
	Applications []ComputeInstanceApplication_STATUS `json:"applications,omitempty"`

	// ComputeInstanceAuthorizationType: The Compute Instance Authorization type. Available values are personal (default).
	ComputeInstanceAuthorizationType *ComputeInstanceProperties_ComputeInstanceAuthorizationType_STATUS `json:"computeInstanceAuthorizationType,omitempty"`

	// ConnectivityEndpoints: Describes all connectivity endpoints available for this ComputeInstance.
	ConnectivityEndpoints *ComputeInstanceConnectivityEndpoints_STATUS `json:"connectivityEndpoints,omitempty"`

	// Containers: Describes informations of containers on this ComputeInstance.
	Containers []ComputeInstanceContainer_STATUS `json:"containers,omitempty"`

	// CreatedBy: Describes information on user who created this ComputeInstance.
	CreatedBy *ComputeInstanceCreatedBy_STATUS `json:"createdBy,omitempty"`

	// CustomServices: List of Custom Services added to the compute.
	CustomServices []CustomService_STATUS `json:"customServices,omitempty"`

	// DataDisks: Describes informations of dataDisks on this ComputeInstance.
	DataDisks []ComputeInstanceDataDisk_STATUS `json:"dataDisks,omitempty"`

	// DataMounts: Describes informations of dataMounts on this ComputeInstance.
	DataMounts []ComputeInstanceDataMount_STATUS `json:"dataMounts,omitempty"`

	// EnableNodePublicIp: Enable or disable node public IP address provisioning. Possible values are: Possible values are:
	// true - Indicates that the compute nodes will have public IPs provisioned. false - Indicates that the compute nodes will
	// have a private endpoint and no public IPs.
	EnableNodePublicIp *bool `json:"enableNodePublicIp,omitempty"`

	// Errors: Collection of errors encountered on this ComputeInstance.
	Errors []ErrorResponse_STATUS `json:"errors,omitempty"`

	// LastOperation: The last operation on ComputeInstance.
	LastOperation *ComputeInstanceLastOperation_STATUS `json:"lastOperation,omitempty"`

	// OsImageMetadata: Returns metadata about the operating system image for this compute instance.
	OsImageMetadata *ImageMetadata_STATUS `json:"osImageMetadata,omitempty"`

	// PersonalComputeInstanceSettings: Settings for a personal compute instance.
	PersonalComputeInstanceSettings *PersonalComputeInstanceSettings_STATUS `json:"personalComputeInstanceSettings,omitempty"`

	// Schedules: The list of schedules to be applied on the computes.
	Schedules *ComputeSchedules_STATUS `json:"schedules,omitempty"`

	// SetupScripts: Details of customized scripts to execute for setting up the cluster.
	SetupScripts *SetupScripts_STATUS `json:"setupScripts,omitempty"`

	// SshSettings: Specifies policy and settings for SSH access.
	SshSettings *ComputeInstanceSshSettings_STATUS `json:"sshSettings,omitempty"`

	// State: The current state of this ComputeInstance.
	State *ComputeInstanceState_STATUS `json:"state,omitempty"`

	// Subnet: Virtual network subnet resource ID the compute nodes belong to.
	Subnet *ResourceId_STATUS `json:"subnet,omitempty"`

	// Versions: ComputeInstance version.
	Versions *ComputeInstanceVersion_STATUS `json:"versions,omitempty"`

	// VmSize: Virtual Machine Size
	VmSize *string `json:"vmSize,omitempty"`
}

type Databricks_ComputeType_STATUS string

const Databricks_ComputeType_STATUS_Databricks = Databricks_ComputeType_STATUS("Databricks")

// Mapping from string to Databricks_ComputeType_STATUS
var databricks_ComputeType_STATUS_Values = map[string]Databricks_ComputeType_STATUS{
	"databricks": Databricks_ComputeType_STATUS_Databricks,
}

type Databricks_ProvisioningState_STATUS string

const (
	Databricks_ProvisioningState_STATUS_Canceled  = Databricks_ProvisioningState_STATUS("Canceled")
	Databricks_ProvisioningState_STATUS_Creating  = Databricks_ProvisioningState_STATUS("Creating")
	Databricks_ProvisioningState_STATUS_Deleting  = Databricks_ProvisioningState_STATUS("Deleting")
	Databricks_ProvisioningState_STATUS_Failed    = Databricks_ProvisioningState_STATUS("Failed")
	Databricks_ProvisioningState_STATUS_Succeeded = Databricks_ProvisioningState_STATUS("Succeeded")
	Databricks_ProvisioningState_STATUS_Unknown   = Databricks_ProvisioningState_STATUS("Unknown")
	Databricks_ProvisioningState_STATUS_Updating  = Databricks_ProvisioningState_STATUS("Updating")
)

// Mapping from string to Databricks_ProvisioningState_STATUS
var databricks_ProvisioningState_STATUS_Values = map[string]Databricks_ProvisioningState_STATUS{
	"canceled":  Databricks_ProvisioningState_STATUS_Canceled,
	"creating":  Databricks_ProvisioningState_STATUS_Creating,
	"deleting":  Databricks_ProvisioningState_STATUS_Deleting,
	"failed":    Databricks_ProvisioningState_STATUS_Failed,
	"succeeded": Databricks_ProvisioningState_STATUS_Succeeded,
	"unknown":   Databricks_ProvisioningState_STATUS_Unknown,
	"updating":  Databricks_ProvisioningState_STATUS_Updating,
}

// Properties of Databricks
type DatabricksProperties_STATUS struct {
	// WorkspaceUrl: Workspace Url
	WorkspaceUrl *string `json:"workspaceUrl,omitempty"`
}

type DataFactory_ComputeType_STATUS string

const DataFactory_ComputeType_STATUS_DataFactory = DataFactory_ComputeType_STATUS("DataFactory")

// Mapping from string to DataFactory_ComputeType_STATUS
var dataFactory_ComputeType_STATUS_Values = map[string]DataFactory_ComputeType_STATUS{
	"datafactory": DataFactory_ComputeType_STATUS_DataFactory,
}

type DataFactory_ProvisioningState_STATUS string

const (
	DataFactory_ProvisioningState_STATUS_Canceled  = DataFactory_ProvisioningState_STATUS("Canceled")
	DataFactory_ProvisioningState_STATUS_Creating  = DataFactory_ProvisioningState_STATUS("Creating")
	DataFactory_ProvisioningState_STATUS_Deleting  = DataFactory_ProvisioningState_STATUS("Deleting")
	DataFactory_ProvisioningState_STATUS_Failed    = DataFactory_ProvisioningState_STATUS("Failed")
	DataFactory_ProvisioningState_STATUS_Succeeded = DataFactory_ProvisioningState_STATUS("Succeeded")
	DataFactory_ProvisioningState_STATUS_Unknown   = DataFactory_ProvisioningState_STATUS("Unknown")
	DataFactory_ProvisioningState_STATUS_Updating  = DataFactory_ProvisioningState_STATUS("Updating")
)

// Mapping from string to DataFactory_ProvisioningState_STATUS
var dataFactory_ProvisioningState_STATUS_Values = map[string]DataFactory_ProvisioningState_STATUS{
	"canceled":  DataFactory_ProvisioningState_STATUS_Canceled,
	"creating":  DataFactory_ProvisioningState_STATUS_Creating,
	"deleting":  DataFactory_ProvisioningState_STATUS_Deleting,
	"failed":    DataFactory_ProvisioningState_STATUS_Failed,
	"succeeded": DataFactory_ProvisioningState_STATUS_Succeeded,
	"unknown":   DataFactory_ProvisioningState_STATUS_Unknown,
	"updating":  DataFactory_ProvisioningState_STATUS_Updating,
}

type DataLakeAnalytics_ComputeType_STATUS string

const DataLakeAnalytics_ComputeType_STATUS_DataLakeAnalytics = DataLakeAnalytics_ComputeType_STATUS("DataLakeAnalytics")

// Mapping from string to DataLakeAnalytics_ComputeType_STATUS
var dataLakeAnalytics_ComputeType_STATUS_Values = map[string]DataLakeAnalytics_ComputeType_STATUS{
	"datalakeanalytics": DataLakeAnalytics_ComputeType_STATUS_DataLakeAnalytics,
}

type DataLakeAnalytics_Properties_STATUS struct {
	// DataLakeStoreAccountName: DataLake Store Account Name
	DataLakeStoreAccountName *string `json:"dataLakeStoreAccountName,omitempty"`
}

type DataLakeAnalytics_ProvisioningState_STATUS string

const (
	DataLakeAnalytics_ProvisioningState_STATUS_Canceled  = DataLakeAnalytics_ProvisioningState_STATUS("Canceled")
	DataLakeAnalytics_ProvisioningState_STATUS_Creating  = DataLakeAnalytics_ProvisioningState_STATUS("Creating")
	DataLakeAnalytics_ProvisioningState_STATUS_Deleting  = DataLakeAnalytics_ProvisioningState_STATUS("Deleting")
	DataLakeAnalytics_ProvisioningState_STATUS_Failed    = DataLakeAnalytics_ProvisioningState_STATUS("Failed")
	DataLakeAnalytics_ProvisioningState_STATUS_Succeeded = DataLakeAnalytics_ProvisioningState_STATUS("Succeeded")
	DataLakeAnalytics_ProvisioningState_STATUS_Unknown   = DataLakeAnalytics_ProvisioningState_STATUS("Unknown")
	DataLakeAnalytics_ProvisioningState_STATUS_Updating  = DataLakeAnalytics_ProvisioningState_STATUS("Updating")
)

// Mapping from string to DataLakeAnalytics_ProvisioningState_STATUS
var dataLakeAnalytics_ProvisioningState_STATUS_Values = map[string]DataLakeAnalytics_ProvisioningState_STATUS{
	"canceled":  DataLakeAnalytics_ProvisioningState_STATUS_Canceled,
	"creating":  DataLakeAnalytics_ProvisioningState_STATUS_Creating,
	"deleting":  DataLakeAnalytics_ProvisioningState_STATUS_Deleting,
	"failed":    DataLakeAnalytics_ProvisioningState_STATUS_Failed,
	"succeeded": DataLakeAnalytics_ProvisioningState_STATUS_Succeeded,
	"unknown":   DataLakeAnalytics_ProvisioningState_STATUS_Unknown,
	"updating":  DataLakeAnalytics_ProvisioningState_STATUS_Updating,
}

// Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also
// follows the OData error response format.).
type ErrorResponse_STATUS struct {
	// Error: The error object.
	Error *ErrorDetail_STATUS `json:"error,omitempty"`
}

type HDInsight_ComputeType_STATUS string

const HDInsight_ComputeType_STATUS_HDInsight = HDInsight_ComputeType_STATUS("HDInsight")

// Mapping from string to HDInsight_ComputeType_STATUS
var hDInsight_ComputeType_STATUS_Values = map[string]HDInsight_ComputeType_STATUS{
	"hdinsight": HDInsight_ComputeType_STATUS_HDInsight,
}

type HDInsight_ProvisioningState_STATUS string

const (
	HDInsight_ProvisioningState_STATUS_Canceled  = HDInsight_ProvisioningState_STATUS("Canceled")
	HDInsight_ProvisioningState_STATUS_Creating  = HDInsight_ProvisioningState_STATUS("Creating")
	HDInsight_ProvisioningState_STATUS_Deleting  = HDInsight_ProvisioningState_STATUS("Deleting")
	HDInsight_ProvisioningState_STATUS_Failed    = HDInsight_ProvisioningState_STATUS("Failed")
	HDInsight_ProvisioningState_STATUS_Succeeded = HDInsight_ProvisioningState_STATUS("Succeeded")
	HDInsight_ProvisioningState_STATUS_Unknown   = HDInsight_ProvisioningState_STATUS("Unknown")
	HDInsight_ProvisioningState_STATUS_Updating  = HDInsight_ProvisioningState_STATUS("Updating")
)

// Mapping from string to HDInsight_ProvisioningState_STATUS
var hDInsight_ProvisioningState_STATUS_Values = map[string]HDInsight_ProvisioningState_STATUS{
	"canceled":  HDInsight_ProvisioningState_STATUS_Canceled,
	"creating":  HDInsight_ProvisioningState_STATUS_Creating,
	"deleting":  HDInsight_ProvisioningState_STATUS_Deleting,
	"failed":    HDInsight_ProvisioningState_STATUS_Failed,
	"succeeded": HDInsight_ProvisioningState_STATUS_Succeeded,
	"unknown":   HDInsight_ProvisioningState_STATUS_Unknown,
	"updating":  HDInsight_ProvisioningState_STATUS_Updating,
}

// HDInsight compute properties
type HDInsightProperties_STATUS struct {
	// Address: Public IP address of the master node of the cluster.
	Address *string `json:"address,omitempty"`

	// AdministratorAccount: Admin credentials for master node of the cluster
	AdministratorAccount *VirtualMachineSshCredentials_STATUS `json:"administratorAccount,omitempty"`

	// SshPort: Port open for ssh connections on the master node of the cluster.
	SshPort *int `json:"sshPort,omitempty"`
}

type Kubernetes_ComputeType_STATUS string

const Kubernetes_ComputeType_STATUS_Kubernetes = Kubernetes_ComputeType_STATUS("Kubernetes")

// Mapping from string to Kubernetes_ComputeType_STATUS
var kubernetes_ComputeType_STATUS_Values = map[string]Kubernetes_ComputeType_STATUS{
	"kubernetes": Kubernetes_ComputeType_STATUS_Kubernetes,
}

type Kubernetes_ProvisioningState_STATUS string

const (
	Kubernetes_ProvisioningState_STATUS_Canceled  = Kubernetes_ProvisioningState_STATUS("Canceled")
	Kubernetes_ProvisioningState_STATUS_Creating  = Kubernetes_ProvisioningState_STATUS("Creating")
	Kubernetes_ProvisioningState_STATUS_Deleting  = Kubernetes_ProvisioningState_STATUS("Deleting")
	Kubernetes_ProvisioningState_STATUS_Failed    = Kubernetes_ProvisioningState_STATUS("Failed")
	Kubernetes_ProvisioningState_STATUS_Succeeded = Kubernetes_ProvisioningState_STATUS("Succeeded")
	Kubernetes_ProvisioningState_STATUS_Unknown   = Kubernetes_ProvisioningState_STATUS("Unknown")
	Kubernetes_ProvisioningState_STATUS_Updating  = Kubernetes_ProvisioningState_STATUS("Updating")
)

// Mapping from string to Kubernetes_ProvisioningState_STATUS
var kubernetes_ProvisioningState_STATUS_Values = map[string]Kubernetes_ProvisioningState_STATUS{
	"canceled":  Kubernetes_ProvisioningState_STATUS_Canceled,
	"creating":  Kubernetes_ProvisioningState_STATUS_Creating,
	"deleting":  Kubernetes_ProvisioningState_STATUS_Deleting,
	"failed":    Kubernetes_ProvisioningState_STATUS_Failed,
	"succeeded": Kubernetes_ProvisioningState_STATUS_Succeeded,
	"unknown":   Kubernetes_ProvisioningState_STATUS_Unknown,
	"updating":  Kubernetes_ProvisioningState_STATUS_Updating,
}

// Kubernetes properties
type KubernetesProperties_STATUS struct {
	// DefaultInstanceType: Default instance type
	DefaultInstanceType *string `json:"defaultInstanceType,omitempty"`

	// ExtensionInstanceReleaseTrain: Extension instance release train.
	ExtensionInstanceReleaseTrain *string `json:"extensionInstanceReleaseTrain,omitempty"`

	// ExtensionPrincipalId: Extension principal-id.
	ExtensionPrincipalId *string `json:"extensionPrincipalId,omitempty"`

	// InstanceTypes: Instance Type Schema
	InstanceTypes map[string]InstanceTypeSchema_STATUS `json:"instanceTypes,omitempty"`

	// Namespace: Compute namespace
	Namespace *string `json:"namespace,omitempty"`

	// VcName: VC name.
	VcName *string `json:"vcName,omitempty"`
}

type SynapseSpark_ComputeType_STATUS string

const SynapseSpark_ComputeType_STATUS_SynapseSpark = SynapseSpark_ComputeType_STATUS("SynapseSpark")

// Mapping from string to SynapseSpark_ComputeType_STATUS
var synapseSpark_ComputeType_STATUS_Values = map[string]SynapseSpark_ComputeType_STATUS{
	"synapsespark": SynapseSpark_ComputeType_STATUS_SynapseSpark,
}

type SynapseSpark_Properties_STATUS struct {
	// AutoPauseProperties: Auto pause properties.
	AutoPauseProperties *AutoPauseProperties_STATUS `json:"autoPauseProperties,omitempty"`

	// AutoScaleProperties: Auto scale properties.
	AutoScaleProperties *AutoScaleProperties_STATUS `json:"autoScaleProperties,omitempty"`

	// NodeCount: The number of compute nodes currently assigned to the compute.
	NodeCount *int `json:"nodeCount,omitempty"`

	// NodeSize: Node size.
	NodeSize *string `json:"nodeSize,omitempty"`

	// NodeSizeFamily: Node size family.
	NodeSizeFamily *string `json:"nodeSizeFamily,omitempty"`

	// PoolName: Pool name.
	PoolName *string `json:"poolName,omitempty"`

	// ResourceGroup: Name of the resource group in which workspace is located.
	ResourceGroup *string `json:"resourceGroup,omitempty"`

	// SparkVersion: Spark version.
	SparkVersion *string `json:"sparkVersion,omitempty"`

	// SubscriptionId: Azure subscription identifier.
	SubscriptionId *string `json:"subscriptionId,omitempty"`

	// WorkspaceName: Name of Azure Machine Learning workspace.
	WorkspaceName *string `json:"workspaceName,omitempty"`
}

type SynapseSpark_ProvisioningState_STATUS string

const (
	SynapseSpark_ProvisioningState_STATUS_Canceled  = SynapseSpark_ProvisioningState_STATUS("Canceled")
	SynapseSpark_ProvisioningState_STATUS_Creating  = SynapseSpark_ProvisioningState_STATUS("Creating")
	SynapseSpark_ProvisioningState_STATUS_Deleting  = SynapseSpark_ProvisioningState_STATUS("Deleting")
	SynapseSpark_ProvisioningState_STATUS_Failed    = SynapseSpark_ProvisioningState_STATUS("Failed")
	SynapseSpark_ProvisioningState_STATUS_Succeeded = SynapseSpark_ProvisioningState_STATUS("Succeeded")
	SynapseSpark_ProvisioningState_STATUS_Unknown   = SynapseSpark_ProvisioningState_STATUS("Unknown")
	SynapseSpark_ProvisioningState_STATUS_Updating  = SynapseSpark_ProvisioningState_STATUS("Updating")
)

// Mapping from string to SynapseSpark_ProvisioningState_STATUS
var synapseSpark_ProvisioningState_STATUS_Values = map[string]SynapseSpark_ProvisioningState_STATUS{
	"canceled":  SynapseSpark_ProvisioningState_STATUS_Canceled,
	"creating":  SynapseSpark_ProvisioningState_STATUS_Creating,
	"deleting":  SynapseSpark_ProvisioningState_STATUS_Deleting,
	"failed":    SynapseSpark_ProvisioningState_STATUS_Failed,
	"succeeded": SynapseSpark_ProvisioningState_STATUS_Succeeded,
	"unknown":   SynapseSpark_ProvisioningState_STATUS_Unknown,
	"updating":  SynapseSpark_ProvisioningState_STATUS_Updating,
}

type VirtualMachine_ComputeType_STATUS string

const VirtualMachine_ComputeType_STATUS_VirtualMachine = VirtualMachine_ComputeType_STATUS("VirtualMachine")

// Mapping from string to VirtualMachine_ComputeType_STATUS
var virtualMachine_ComputeType_STATUS_Values = map[string]VirtualMachine_ComputeType_STATUS{
	"virtualmachine": VirtualMachine_ComputeType_STATUS_VirtualMachine,
}

type VirtualMachine_Properties_STATUS struct {
	// Address: Public IP address of the virtual machine.
	Address *string `json:"address,omitempty"`

	// AdministratorAccount: Admin credentials for virtual machine
	AdministratorAccount *VirtualMachineSshCredentials_STATUS `json:"administratorAccount,omitempty"`

	// IsNotebookInstanceCompute: Indicates whether this compute will be used for running notebooks.
	IsNotebookInstanceCompute *bool `json:"isNotebookInstanceCompute,omitempty"`

	// NotebookServerPort: Notebook server port open for ssh connections.
	NotebookServerPort *int `json:"notebookServerPort,omitempty"`

	// SshPort: Port open for ssh connections.
	SshPort *int `json:"sshPort,omitempty"`

	// VirtualMachineSize: Virtual Machine size
	VirtualMachineSize *string `json:"virtualMachineSize,omitempty"`
}

type VirtualMachine_ProvisioningState_STATUS string

const (
	VirtualMachine_ProvisioningState_STATUS_Canceled  = VirtualMachine_ProvisioningState_STATUS("Canceled")
	VirtualMachine_ProvisioningState_STATUS_Creating  = VirtualMachine_ProvisioningState_STATUS("Creating")
	VirtualMachine_ProvisioningState_STATUS_Deleting  = VirtualMachine_ProvisioningState_STATUS("Deleting")
	VirtualMachine_ProvisioningState_STATUS_Failed    = VirtualMachine_ProvisioningState_STATUS("Failed")
	VirtualMachine_ProvisioningState_STATUS_Succeeded = VirtualMachine_ProvisioningState_STATUS("Succeeded")
	VirtualMachine_ProvisioningState_STATUS_Unknown   = VirtualMachine_ProvisioningState_STATUS("Unknown")
	VirtualMachine_ProvisioningState_STATUS_Updating  = VirtualMachine_ProvisioningState_STATUS("Updating")
)

// Mapping from string to VirtualMachine_ProvisioningState_STATUS
var virtualMachine_ProvisioningState_STATUS_Values = map[string]VirtualMachine_ProvisioningState_STATUS{
	"canceled":  VirtualMachine_ProvisioningState_STATUS_Canceled,
	"creating":  VirtualMachine_ProvisioningState_STATUS_Creating,
	"deleting":  VirtualMachine_ProvisioningState_STATUS_Deleting,
	"failed":    VirtualMachine_ProvisioningState_STATUS_Failed,
	"succeeded": VirtualMachine_ProvisioningState_STATUS_Succeeded,
	"unknown":   VirtualMachine_ProvisioningState_STATUS_Unknown,
	"updating":  VirtualMachine_ProvisioningState_STATUS_Updating,
}

type AKS_Properties_ClusterPurpose_STATUS string

const (
	AKS_Properties_ClusterPurpose_STATUS_DenseProd = AKS_Properties_ClusterPurpose_STATUS("DenseProd")
	AKS_Properties_ClusterPurpose_STATUS_DevTest   = AKS_Properties_ClusterPurpose_STATUS("DevTest")
	AKS_Properties_ClusterPurpose_STATUS_FastProd  = AKS_Properties_ClusterPurpose_STATUS("FastProd")
)

// Mapping from string to AKS_Properties_ClusterPurpose_STATUS
var aKS_Properties_ClusterPurpose_STATUS_Values = map[string]AKS_Properties_ClusterPurpose_STATUS{
	"denseprod": AKS_Properties_ClusterPurpose_STATUS_DenseProd,
	"devtest":   AKS_Properties_ClusterPurpose_STATUS_DevTest,
	"fastprod":  AKS_Properties_ClusterPurpose_STATUS_FastProd,
}

type AKS_Properties_LoadBalancerType_STATUS string

const (
	AKS_Properties_LoadBalancerType_STATUS_InternalLoadBalancer = AKS_Properties_LoadBalancerType_STATUS("InternalLoadBalancer")
	AKS_Properties_LoadBalancerType_STATUS_PublicIp             = AKS_Properties_LoadBalancerType_STATUS("PublicIp")
)

// Mapping from string to AKS_Properties_LoadBalancerType_STATUS
var aKS_Properties_LoadBalancerType_STATUS_Values = map[string]AKS_Properties_LoadBalancerType_STATUS{
	"internalloadbalancer": AKS_Properties_LoadBalancerType_STATUS_InternalLoadBalancer,
	"publicip":             AKS_Properties_LoadBalancerType_STATUS_PublicIp,
}

// Advance configuration for AKS networking
type AksNetworkingConfiguration_STATUS struct {
	// DnsServiceIP: An IP address assigned to the Kubernetes DNS service. It must be within the Kubernetes service address
	// range specified in serviceCidr.
	DnsServiceIP *string `json:"dnsServiceIP,omitempty"`

	// DockerBridgeCidr: A CIDR notation IP range assigned to the Docker bridge network. It must not overlap with any Subnet IP
	// ranges or the Kubernetes service address range.
	DockerBridgeCidr *string `json:"dockerBridgeCidr,omitempty"`

	// ServiceCidr: A CIDR notation IP range from which to assign service cluster IPs. It must not overlap with any Subnet IP
	// ranges.
	ServiceCidr *string `json:"serviceCidr,omitempty"`

	// SubnetId: Virtual network subnet resource ID the compute nodes belong to
	SubnetId *string `json:"subnetId,omitempty"`
}

type AmlComputeProperties_AllocationState_STATUS string

const (
	AmlComputeProperties_AllocationState_STATUS_Resizing = AmlComputeProperties_AllocationState_STATUS("Resizing")
	AmlComputeProperties_AllocationState_STATUS_Steady   = AmlComputeProperties_AllocationState_STATUS("Steady")
)

// Mapping from string to AmlComputeProperties_AllocationState_STATUS
var amlComputeProperties_AllocationState_STATUS_Values = map[string]AmlComputeProperties_AllocationState_STATUS{
	"resizing": AmlComputeProperties_AllocationState_STATUS_Resizing,
	"steady":   AmlComputeProperties_AllocationState_STATUS_Steady,
}

type AmlComputeProperties_OsType_STATUS string

const (
	AmlComputeProperties_OsType_STATUS_Linux   = AmlComputeProperties_OsType_STATUS("Linux")
	AmlComputeProperties_OsType_STATUS_Windows = AmlComputeProperties_OsType_STATUS("Windows")
)

// Mapping from string to AmlComputeProperties_OsType_STATUS
var amlComputeProperties_OsType_STATUS_Values = map[string]AmlComputeProperties_OsType_STATUS{
	"linux":   AmlComputeProperties_OsType_STATUS_Linux,
	"windows": AmlComputeProperties_OsType_STATUS_Windows,
}

type AmlComputeProperties_RemoteLoginPortPublicAccess_STATUS string

const (
	AmlComputeProperties_RemoteLoginPortPublicAccess_STATUS_Disabled     = AmlComputeProperties_RemoteLoginPortPublicAccess_STATUS("Disabled")
	AmlComputeProperties_RemoteLoginPortPublicAccess_STATUS_Enabled      = AmlComputeProperties_RemoteLoginPortPublicAccess_STATUS("Enabled")
	AmlComputeProperties_RemoteLoginPortPublicAccess_STATUS_NotSpecified = AmlComputeProperties_RemoteLoginPortPublicAccess_STATUS("NotSpecified")
)

// Mapping from string to AmlComputeProperties_RemoteLoginPortPublicAccess_STATUS
var amlComputeProperties_RemoteLoginPortPublicAccess_STATUS_Values = map[string]AmlComputeProperties_RemoteLoginPortPublicAccess_STATUS{
	"disabled":     AmlComputeProperties_RemoteLoginPortPublicAccess_STATUS_Disabled,
	"enabled":      AmlComputeProperties_RemoteLoginPortPublicAccess_STATUS_Enabled,
	"notspecified": AmlComputeProperties_RemoteLoginPortPublicAccess_STATUS_NotSpecified,
}

type AmlComputeProperties_VmPriority_STATUS string

const (
	AmlComputeProperties_VmPriority_STATUS_Dedicated   = AmlComputeProperties_VmPriority_STATUS("Dedicated")
	AmlComputeProperties_VmPriority_STATUS_LowPriority = AmlComputeProperties_VmPriority_STATUS("LowPriority")
)

// Mapping from string to AmlComputeProperties_VmPriority_STATUS
var amlComputeProperties_VmPriority_STATUS_Values = map[string]AmlComputeProperties_VmPriority_STATUS{
	"dedicated":   AmlComputeProperties_VmPriority_STATUS_Dedicated,
	"lowpriority": AmlComputeProperties_VmPriority_STATUS_LowPriority,
}

// Auto pause properties
type AutoPauseProperties_STATUS struct {
	DelayInMinutes *int  `json:"delayInMinutes,omitempty"`
	Enabled        *bool `json:"enabled,omitempty"`
}

// Auto scale properties
type AutoScaleProperties_STATUS struct {
	Enabled      *bool `json:"enabled,omitempty"`
	MaxNodeCount *int  `json:"maxNodeCount,omitempty"`
	MinNodeCount *int  `json:"minNodeCount,omitempty"`
}

// Defines an Aml Instance application and its connectivity endpoint URI.
type ComputeInstanceApplication_STATUS struct {
	// DisplayName: Name of the ComputeInstance application.
	DisplayName *string `json:"displayName,omitempty"`

	// EndpointUri: Application' endpoint URI.
	EndpointUri *string `json:"endpointUri,omitempty"`
}

// Defines all connectivity endpoints and properties for an ComputeInstance.
type ComputeInstanceConnectivityEndpoints_STATUS struct {
	// PrivateIpAddress: Private IP Address of this ComputeInstance (local to the VNET in which the compute instance is
	// deployed).
	PrivateIpAddress *string `json:"privateIpAddress,omitempty"`

	// PublicIpAddress: Public IP Address of this ComputeInstance.
	PublicIpAddress *string `json:"publicIpAddress,omitempty"`
}

// Defines an Aml Instance container.
type ComputeInstanceContainer_STATUS struct {
	// Autosave: Auto save settings.
	Autosave *ComputeInstanceContainer_Autosave_STATUS `json:"autosave,omitempty"`

	// Environment: Environment information of this container.
	Environment *ComputeInstanceEnvironmentInfo_STATUS `json:"environment,omitempty"`

	// Gpu: Information of GPU.
	Gpu *string `json:"gpu,omitempty"`

	// Name: Name of the ComputeInstance container.
	Name *string `json:"name,omitempty"`

	// Network: network of this container.
	Network *ComputeInstanceContainer_Network_STATUS `json:"network,omitempty"`

	// Services: services of this containers.
	Services []map[string]v1.JSON `json:"services,omitempty"`
}

// Describes information on user who created this ComputeInstance.
type ComputeInstanceCreatedBy_STATUS struct {
	// UserId: Uniquely identifies the user within his/her organization.
	UserId *string `json:"userId,omitempty"`

	// UserName: Name of the user.
	UserName *string `json:"userName,omitempty"`

	// UserOrgId: Uniquely identifies user' Azure Active Directory organization.
	UserOrgId *string `json:"userOrgId,omitempty"`
}

// Defines an Aml Instance DataDisk.
type ComputeInstanceDataDisk_STATUS struct {
	// Caching: Caching type of Data Disk.
	Caching *ComputeInstanceDataDisk_Caching_STATUS `json:"caching,omitempty"`

	// DiskSizeGB: The initial disk size in gigabytes.
	DiskSizeGB *int `json:"diskSizeGB,omitempty"`

	// Lun: The lun is used to uniquely identify each data disk. If attaching multiple disks, each should have a distinct lun.
	Lun *int `json:"lun,omitempty"`

	// StorageAccountType: type of this storage account.
	StorageAccountType *ComputeInstanceDataDisk_StorageAccountType_STATUS `json:"storageAccountType,omitempty"`
}

// Defines an Aml Instance DataMount.
type ComputeInstanceDataMount_STATUS struct {
	// CreatedBy: who this data mount created by.
	CreatedBy *string `json:"createdBy,omitempty"`

	// Error: Error of this data mount.
	Error *string `json:"error,omitempty"`

	// MountAction: Mount Action.
	MountAction *ComputeInstanceDataMount_MountAction_STATUS `json:"mountAction,omitempty"`

	// MountName: name of the ComputeInstance data mount.
	MountName *string `json:"mountName,omitempty"`

	// MountPath: Path of this data mount.
	MountPath *string `json:"mountPath,omitempty"`

	// MountState: Mount state.
	MountState *ComputeInstanceDataMount_MountState_STATUS `json:"mountState,omitempty"`

	// MountedOn: The time when the disk mounted.
	MountedOn *string `json:"mountedOn,omitempty"`

	// Source: Source of the ComputeInstance data mount.
	Source *string `json:"source,omitempty"`

	// SourceType: Data source type.
	SourceType *ComputeInstanceDataMount_SourceType_STATUS `json:"sourceType,omitempty"`
}

// The last operation on ComputeInstance.
type ComputeInstanceLastOperation_STATUS struct {
	// OperationName: Name of the last operation.
	OperationName *ComputeInstanceLastOperation_OperationName_STATUS `json:"operationName,omitempty"`

	// OperationStatus: Operation status.
	OperationStatus *ComputeInstanceLastOperation_OperationStatus_STATUS `json:"operationStatus,omitempty"`

	// OperationTime: Time of the last operation.
	OperationTime *string `json:"operationTime,omitempty"`

	// OperationTrigger: Trigger of operation.
	OperationTrigger *ComputeInstanceLastOperation_OperationTrigger_STATUS `json:"operationTrigger,omitempty"`
}

type ComputeInstanceProperties_ApplicationSharingPolicy_STATUS string

const (
	ComputeInstanceProperties_ApplicationSharingPolicy_STATUS_Personal = ComputeInstanceProperties_ApplicationSharingPolicy_STATUS("Personal")
	ComputeInstanceProperties_ApplicationSharingPolicy_STATUS_Shared   = ComputeInstanceProperties_ApplicationSharingPolicy_STATUS("Shared")
)

// Mapping from string to ComputeInstanceProperties_ApplicationSharingPolicy_STATUS
var computeInstanceProperties_ApplicationSharingPolicy_STATUS_Values = map[string]ComputeInstanceProperties_ApplicationSharingPolicy_STATUS{
	"personal": ComputeInstanceProperties_ApplicationSharingPolicy_STATUS_Personal,
	"shared":   ComputeInstanceProperties_ApplicationSharingPolicy_STATUS_Shared,
}

type ComputeInstanceProperties_ComputeInstanceAuthorizationType_STATUS string

const ComputeInstanceProperties_ComputeInstanceAuthorizationType_STATUS_Personal = ComputeInstanceProperties_ComputeInstanceAuthorizationType_STATUS("personal")

// Mapping from string to ComputeInstanceProperties_ComputeInstanceAuthorizationType_STATUS
var computeInstanceProperties_ComputeInstanceAuthorizationType_STATUS_Values = map[string]ComputeInstanceProperties_ComputeInstanceAuthorizationType_STATUS{
	"personal": ComputeInstanceProperties_ComputeInstanceAuthorizationType_STATUS_Personal,
}

// Specifies policy and settings for SSH access.
type ComputeInstanceSshSettings_STATUS struct {
	// AdminPublicKey: Specifies the SSH rsa public key file as a string. Use "ssh-keygen -t rsa -b 2048" to generate your SSH
	// key pairs.
	AdminPublicKey *string `json:"adminPublicKey,omitempty"`

	// AdminUserName: Describes the admin user name.
	AdminUserName *string `json:"adminUserName,omitempty"`

	// SshPort: Describes the port for connecting through SSH.
	SshPort *int `json:"sshPort,omitempty"`

	// SshPublicAccess: State of the public SSH port. Possible values are: Disabled - Indicates that the public ssh port is
	// closed on this instance. Enabled - Indicates that the public ssh port is open and accessible according to the
	// VNet/subnet policy if applicable.
	SshPublicAccess *ComputeInstanceSshSettings_SshPublicAccess_STATUS `json:"sshPublicAccess,omitempty"`
}

// Current state of an ComputeInstance.
type ComputeInstanceState_STATUS string

const (
	ComputeInstanceState_STATUS_CreateFailed    = ComputeInstanceState_STATUS("CreateFailed")
	ComputeInstanceState_STATUS_Creating        = ComputeInstanceState_STATUS("Creating")
	ComputeInstanceState_STATUS_Deleting        = ComputeInstanceState_STATUS("Deleting")
	ComputeInstanceState_STATUS_JobRunning      = ComputeInstanceState_STATUS("JobRunning")
	ComputeInstanceState_STATUS_Restarting      = ComputeInstanceState_STATUS("Restarting")
	ComputeInstanceState_STATUS_Running         = ComputeInstanceState_STATUS("Running")
	ComputeInstanceState_STATUS_SettingUp       = ComputeInstanceState_STATUS("SettingUp")
	ComputeInstanceState_STATUS_SetupFailed     = ComputeInstanceState_STATUS("SetupFailed")
	ComputeInstanceState_STATUS_Starting        = ComputeInstanceState_STATUS("Starting")
	ComputeInstanceState_STATUS_Stopped         = ComputeInstanceState_STATUS("Stopped")
	ComputeInstanceState_STATUS_Stopping        = ComputeInstanceState_STATUS("Stopping")
	ComputeInstanceState_STATUS_Unknown         = ComputeInstanceState_STATUS("Unknown")
	ComputeInstanceState_STATUS_Unusable        = ComputeInstanceState_STATUS("Unusable")
	ComputeInstanceState_STATUS_UserSettingUp   = ComputeInstanceState_STATUS("UserSettingUp")
	ComputeInstanceState_STATUS_UserSetupFailed = ComputeInstanceState_STATUS("UserSetupFailed")
)

// Mapping from string to ComputeInstanceState_STATUS
var computeInstanceState_STATUS_Values = map[string]ComputeInstanceState_STATUS{
	"createfailed":    ComputeInstanceState_STATUS_CreateFailed,
	"creating":        ComputeInstanceState_STATUS_Creating,
	"deleting":        ComputeInstanceState_STATUS_Deleting,
	"jobrunning":      ComputeInstanceState_STATUS_JobRunning,
	"restarting":      ComputeInstanceState_STATUS_Restarting,
	"running":         ComputeInstanceState_STATUS_Running,
	"settingup":       ComputeInstanceState_STATUS_SettingUp,
	"setupfailed":     ComputeInstanceState_STATUS_SetupFailed,
	"starting":        ComputeInstanceState_STATUS_Starting,
	"stopped":         ComputeInstanceState_STATUS_Stopped,
	"stopping":        ComputeInstanceState_STATUS_Stopping,
	"unknown":         ComputeInstanceState_STATUS_Unknown,
	"unusable":        ComputeInstanceState_STATUS_Unusable,
	"usersettingup":   ComputeInstanceState_STATUS_UserSettingUp,
	"usersetupfailed": ComputeInstanceState_STATUS_UserSetupFailed,
}

// Version of computeInstance.
type ComputeInstanceVersion_STATUS struct {
	// Runtime: Runtime of compute instance.
	Runtime *string `json:"runtime,omitempty"`
}

// The list of schedules to be applied on the computes
type ComputeSchedules_STATUS struct {
	// ComputeStartStop: The list of compute start stop schedules to be applied.
	ComputeStartStop []ComputeStartStopSchedule_STATUS `json:"computeStartStop,omitempty"`
}

// Specifies the custom service configuration
type CustomService_STATUS struct {
	// Docker: Describes the docker settings for the image
	Docker *Docker_STATUS `json:"docker,omitempty"`

	// Endpoints: Configuring the endpoints for the container
	Endpoints []Endpoint_STATUS `json:"endpoints,omitempty"`

	// EnvironmentVariables: Environment Variable for the container
	EnvironmentVariables map[string]EnvironmentVariable_STATUS `json:"environmentVariables,omitempty"`

	// Image: Describes the Image Specifications
	Image *Image_STATUS `json:"image,omitempty"`

	// Name: Name of the Custom Service
	Name *string `json:"name,omitempty"`

	// Volumes: Configuring the volumes for the container
	Volumes []VolumeDefinition_STATUS `json:"volumes,omitempty"`
}

// The error detail.
type ErrorDetail_STATUS struct {
	// AdditionalInfo: The error additional info.
	AdditionalInfo []ErrorAdditionalInfo_STATUS `json:"additionalInfo,omitempty"`

	// Code: The error code.
	Code *string `json:"code,omitempty"`

	// Details: The error details.
	Details []ErrorDetail_STATUS_Unrolled `json:"details,omitempty"`

	// Message: The error message.
	Message *string `json:"message,omitempty"`

	// Target: The error target.
	Target *string `json:"target,omitempty"`
}

// Returns metadata about the operating system image for this compute instance.
type ImageMetadata_STATUS struct {
	// CurrentImageVersion: Specifies the current operating system image version this compute instance is running on.
	CurrentImageVersion *string `json:"currentImageVersion,omitempty"`

	// IsLatestOsImageVersion: Specifies whether this compute instance is running on the latest operating system image.
	IsLatestOsImageVersion *bool `json:"isLatestOsImageVersion,omitempty"`

	// LatestImageVersion: Specifies the latest available operating system image version.
	LatestImageVersion *string `json:"latestImageVersion,omitempty"`
}

// Instance type schema.
type InstanceTypeSchema_STATUS struct {
	// NodeSelector: Node Selector
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`

	// Resources: Resource requests/limits for this instance type
	Resources *InstanceTypeSchema_Resources_STATUS `json:"resources,omitempty"`
}

// Counts of various compute node states on the amlCompute.
type NodeStateCounts_STATUS struct {
	// IdleNodeCount: Number of compute nodes in idle state.
	IdleNodeCount *int `json:"idleNodeCount,omitempty"`

	// LeavingNodeCount: Number of compute nodes which are leaving the amlCompute.
	LeavingNodeCount *int `json:"leavingNodeCount,omitempty"`

	// PreemptedNodeCount: Number of compute nodes which are in preempted state.
	PreemptedNodeCount *int `json:"preemptedNodeCount,omitempty"`

	// PreparingNodeCount: Number of compute nodes which are being prepared.
	PreparingNodeCount *int `json:"preparingNodeCount,omitempty"`

	// RunningNodeCount: Number of compute nodes which are running jobs.
	RunningNodeCount *int `json:"runningNodeCount,omitempty"`

	// UnusableNodeCount: Number of compute nodes which are in unusable state.
	UnusableNodeCount *int `json:"unusableNodeCount,omitempty"`
}

// Settings for a personal compute instance.
type PersonalComputeInstanceSettings_STATUS struct {
	// AssignedUser: A user explicitly assigned to a personal compute instance.
	AssignedUser *AssignedUser_STATUS `json:"assignedUser,omitempty"`
}

// Represents a resource ID. For example, for a subnet, it is the resource URL for the subnet.
type ResourceId_STATUS struct {
	// Id: The ID of the resource
	Id *string `json:"id,omitempty"`
}

// scale settings for AML Compute
type ScaleSettings_STATUS struct {
	// MaxNodeCount: Max number of nodes to use
	MaxNodeCount *int `json:"maxNodeCount,omitempty"`

	// MinNodeCount: Min number of nodes to use
	MinNodeCount *int `json:"minNodeCount,omitempty"`

	// NodeIdleTimeBeforeScaleDown: Node Idle Time before scaling down amlCompute. This string needs to be in the RFC Format.
	NodeIdleTimeBeforeScaleDown *string `json:"nodeIdleTimeBeforeScaleDown,omitempty"`
}

// Details of customized scripts to execute for setting up the cluster.
type SetupScripts_STATUS struct {
	// Scripts: Customized setup scripts
	Scripts *ScriptsToExecute_STATUS `json:"scripts,omitempty"`
}

// The ssl configuration for scoring
type SslConfiguration_STATUS struct {
	// Cname: CNAME of the cert
	Cname *string `json:"cname,omitempty"`

	// LeafDomainLabel: Leaf domain label of public endpoint
	LeafDomainLabel *string `json:"leafDomainLabel,omitempty"`

	// OverwriteExistingDomain: Indicates whether to overwrite existing domain label.
	OverwriteExistingDomain *bool `json:"overwriteExistingDomain,omitempty"`

	// Status: Enable or disable ssl for scoring
	Status *SslConfiguration_Status_STATUS `json:"status,omitempty"`
}

// A system service running on a compute.
type SystemService_STATUS struct {
	// PublicIpAddress: Public IP address
	PublicIpAddress *string `json:"publicIpAddress,omitempty"`

	// SystemServiceType: The type of this system service.
	SystemServiceType *string `json:"systemServiceType,omitempty"`

	// Version: The version for this type.
	Version *string `json:"version,omitempty"`
}

// Settings for user account that gets created on each on the nodes of a compute.
type UserAccountCredentials_STATUS struct {
	// AdminUserName: Name of the administrator user account which can be used to SSH to nodes.
	AdminUserName *string `json:"adminUserName,omitempty"`
}

// Virtual Machine image for Windows AML Compute
type VirtualMachineImage_STATUS struct {
	// Id: Virtual Machine image path
	Id *string `json:"id,omitempty"`
}

// Admin credentials for virtual machine
type VirtualMachineSshCredentials_STATUS struct {
	// Username: Username of admin account
	Username *string `json:"username,omitempty"`
}

// A user that can be assigned to a compute instance.
type AssignedUser_STATUS struct {
	// ObjectId: User’s AAD Object Id.
	ObjectId *string `json:"objectId,omitempty"`

	// TenantId: User’s AAD Tenant Id.
	TenantId *string `json:"tenantId,omitempty"`
}

type ComputeInstanceContainer_Autosave_STATUS string

const (
	ComputeInstanceContainer_Autosave_STATUS_Local  = ComputeInstanceContainer_Autosave_STATUS("Local")
	ComputeInstanceContainer_Autosave_STATUS_None   = ComputeInstanceContainer_Autosave_STATUS("None")
	ComputeInstanceContainer_Autosave_STATUS_Remote = ComputeInstanceContainer_Autosave_STATUS("Remote")
)

// Mapping from string to ComputeInstanceContainer_Autosave_STATUS
var computeInstanceContainer_Autosave_STATUS_Values = map[string]ComputeInstanceContainer_Autosave_STATUS{
	"local":  ComputeInstanceContainer_Autosave_STATUS_Local,
	"none":   ComputeInstanceContainer_Autosave_STATUS_None,
	"remote": ComputeInstanceContainer_Autosave_STATUS_Remote,
}

type ComputeInstanceContainer_Network_STATUS string

const (
	ComputeInstanceContainer_Network_STATUS_Bridge = ComputeInstanceContainer_Network_STATUS("Bridge")
	ComputeInstanceContainer_Network_STATUS_Host   = ComputeInstanceContainer_Network_STATUS("Host")
)

// Mapping from string to ComputeInstanceContainer_Network_STATUS
var computeInstanceContainer_Network_STATUS_Values = map[string]ComputeInstanceContainer_Network_STATUS{
	"bridge": ComputeInstanceContainer_Network_STATUS_Bridge,
	"host":   ComputeInstanceContainer_Network_STATUS_Host,
}

type ComputeInstanceDataDisk_Caching_STATUS string

const (
	ComputeInstanceDataDisk_Caching_STATUS_None      = ComputeInstanceDataDisk_Caching_STATUS("None")
	ComputeInstanceDataDisk_Caching_STATUS_ReadOnly  = ComputeInstanceDataDisk_Caching_STATUS("ReadOnly")
	ComputeInstanceDataDisk_Caching_STATUS_ReadWrite = ComputeInstanceDataDisk_Caching_STATUS("ReadWrite")
)

// Mapping from string to ComputeInstanceDataDisk_Caching_STATUS
var computeInstanceDataDisk_Caching_STATUS_Values = map[string]ComputeInstanceDataDisk_Caching_STATUS{
	"none":      ComputeInstanceDataDisk_Caching_STATUS_None,
	"readonly":  ComputeInstanceDataDisk_Caching_STATUS_ReadOnly,
	"readwrite": ComputeInstanceDataDisk_Caching_STATUS_ReadWrite,
}

type ComputeInstanceDataDisk_StorageAccountType_STATUS string

const (
	ComputeInstanceDataDisk_StorageAccountType_STATUS_Premium_LRS  = ComputeInstanceDataDisk_StorageAccountType_STATUS("Premium_LRS")
	ComputeInstanceDataDisk_StorageAccountType_STATUS_Standard_LRS = ComputeInstanceDataDisk_StorageAccountType_STATUS("Standard_LRS")
)

// Mapping from string to ComputeInstanceDataDisk_StorageAccountType_STATUS
var computeInstanceDataDisk_StorageAccountType_STATUS_Values = map[string]ComputeInstanceDataDisk_StorageAccountType_STATUS{
	"premium_lrs":  ComputeInstanceDataDisk_StorageAccountType_STATUS_Premium_LRS,
	"standard_lrs": ComputeInstanceDataDisk_StorageAccountType_STATUS_Standard_LRS,
}

type ComputeInstanceDataMount_MountAction_STATUS string

const (
	ComputeInstanceDataMount_MountAction_STATUS_Mount   = ComputeInstanceDataMount_MountAction_STATUS("Mount")
	ComputeInstanceDataMount_MountAction_STATUS_Unmount = ComputeInstanceDataMount_MountAction_STATUS("Unmount")
)

// Mapping from string to ComputeInstanceDataMount_MountAction_STATUS
var computeInstanceDataMount_MountAction_STATUS_Values = map[string]ComputeInstanceDataMount_MountAction_STATUS{
	"mount":   ComputeInstanceDataMount_MountAction_STATUS_Mount,
	"unmount": ComputeInstanceDataMount_MountAction_STATUS_Unmount,
}

type ComputeInstanceDataMount_MountState_STATUS string

const (
	ComputeInstanceDataMount_MountState_STATUS_MountFailed      = ComputeInstanceDataMount_MountState_STATUS("MountFailed")
	ComputeInstanceDataMount_MountState_STATUS_MountRequested   = ComputeInstanceDataMount_MountState_STATUS("MountRequested")
	ComputeInstanceDataMount_MountState_STATUS_Mounted          = ComputeInstanceDataMount_MountState_STATUS("Mounted")
	ComputeInstanceDataMount_MountState_STATUS_UnmountFailed    = ComputeInstanceDataMount_MountState_STATUS("UnmountFailed")
	ComputeInstanceDataMount_MountState_STATUS_UnmountRequested = ComputeInstanceDataMount_MountState_STATUS("UnmountRequested")
	ComputeInstanceDataMount_MountState_STATUS_Unmounted        = ComputeInstanceDataMount_MountState_STATUS("Unmounted")
)

// Mapping from string to ComputeInstanceDataMount_MountState_STATUS
var computeInstanceDataMount_MountState_STATUS_Values = map[string]ComputeInstanceDataMount_MountState_STATUS{
	"mountfailed":      ComputeInstanceDataMount_MountState_STATUS_MountFailed,
	"mountrequested":   ComputeInstanceDataMount_MountState_STATUS_MountRequested,
	"mounted":          ComputeInstanceDataMount_MountState_STATUS_Mounted,
	"unmountfailed":    ComputeInstanceDataMount_MountState_STATUS_UnmountFailed,
	"unmountrequested": ComputeInstanceDataMount_MountState_STATUS_UnmountRequested,
	"unmounted":        ComputeInstanceDataMount_MountState_STATUS_Unmounted,
}

type ComputeInstanceDataMount_SourceType_STATUS string

const (
	ComputeInstanceDataMount_SourceType_STATUS_Dataset   = ComputeInstanceDataMount_SourceType_STATUS("Dataset")
	ComputeInstanceDataMount_SourceType_STATUS_Datastore = ComputeInstanceDataMount_SourceType_STATUS("Datastore")
	ComputeInstanceDataMount_SourceType_STATUS_URI       = ComputeInstanceDataMount_SourceType_STATUS("URI")
)

// Mapping from string to ComputeInstanceDataMount_SourceType_STATUS
var computeInstanceDataMount_SourceType_STATUS_Values = map[string]ComputeInstanceDataMount_SourceType_STATUS{
	"dataset":   ComputeInstanceDataMount_SourceType_STATUS_Dataset,
	"datastore": ComputeInstanceDataMount_SourceType_STATUS_Datastore,
	"uri":       ComputeInstanceDataMount_SourceType_STATUS_URI,
}

// Environment information
type ComputeInstanceEnvironmentInfo_STATUS struct {
	// Name: name of environment.
	Name *string `json:"name,omitempty"`

	// Version: version of environment.
	Version *string `json:"version,omitempty"`
}

type ComputeInstanceLastOperation_OperationName_STATUS string

const (
	ComputeInstanceLastOperation_OperationName_STATUS_Create  = ComputeInstanceLastOperation_OperationName_STATUS("Create")
	ComputeInstanceLastOperation_OperationName_STATUS_Delete  = ComputeInstanceLastOperation_OperationName_STATUS("Delete")
	ComputeInstanceLastOperation_OperationName_STATUS_Reimage = ComputeInstanceLastOperation_OperationName_STATUS("Reimage")
	ComputeInstanceLastOperation_OperationName_STATUS_Restart = ComputeInstanceLastOperation_OperationName_STATUS("Restart")
	ComputeInstanceLastOperation_OperationName_STATUS_Start   = ComputeInstanceLastOperation_OperationName_STATUS("Start")
	ComputeInstanceLastOperation_OperationName_STATUS_Stop    = ComputeInstanceLastOperation_OperationName_STATUS("Stop")
)

// Mapping from string to ComputeInstanceLastOperation_OperationName_STATUS
var computeInstanceLastOperation_OperationName_STATUS_Values = map[string]ComputeInstanceLastOperation_OperationName_STATUS{
	"create":  ComputeInstanceLastOperation_OperationName_STATUS_Create,
	"delete":  ComputeInstanceLastOperation_OperationName_STATUS_Delete,
	"reimage": ComputeInstanceLastOperation_OperationName_STATUS_Reimage,
	"restart": ComputeInstanceLastOperation_OperationName_STATUS_Restart,
	"start":   ComputeInstanceLastOperation_OperationName_STATUS_Start,
	"stop":    ComputeInstanceLastOperation_OperationName_STATUS_Stop,
}

type ComputeInstanceLastOperation_OperationStatus_STATUS string

const (
	ComputeInstanceLastOperation_OperationStatus_STATUS_CreateFailed  = ComputeInstanceLastOperation_OperationStatus_STATUS("CreateFailed")
	ComputeInstanceLastOperation_OperationStatus_STATUS_DeleteFailed  = ComputeInstanceLastOperation_OperationStatus_STATUS("DeleteFailed")
	ComputeInstanceLastOperation_OperationStatus_STATUS_InProgress    = ComputeInstanceLastOperation_OperationStatus_STATUS("InProgress")
	ComputeInstanceLastOperation_OperationStatus_STATUS_ReimageFailed = ComputeInstanceLastOperation_OperationStatus_STATUS("ReimageFailed")
	ComputeInstanceLastOperation_OperationStatus_STATUS_RestartFailed = ComputeInstanceLastOperation_OperationStatus_STATUS("RestartFailed")
	ComputeInstanceLastOperation_OperationStatus_STATUS_StartFailed   = ComputeInstanceLastOperation_OperationStatus_STATUS("StartFailed")
	ComputeInstanceLastOperation_OperationStatus_STATUS_StopFailed    = ComputeInstanceLastOperation_OperationStatus_STATUS("StopFailed")
	ComputeInstanceLastOperation_OperationStatus_STATUS_Succeeded     = ComputeInstanceLastOperation_OperationStatus_STATUS("Succeeded")
)

// Mapping from string to ComputeInstanceLastOperation_OperationStatus_STATUS
var computeInstanceLastOperation_OperationStatus_STATUS_Values = map[string]ComputeInstanceLastOperation_OperationStatus_STATUS{
	"createfailed":  ComputeInstanceLastOperation_OperationStatus_STATUS_CreateFailed,
	"deletefailed":  ComputeInstanceLastOperation_OperationStatus_STATUS_DeleteFailed,
	"inprogress":    ComputeInstanceLastOperation_OperationStatus_STATUS_InProgress,
	"reimagefailed": ComputeInstanceLastOperation_OperationStatus_STATUS_ReimageFailed,
	"restartfailed": ComputeInstanceLastOperation_OperationStatus_STATUS_RestartFailed,
	"startfailed":   ComputeInstanceLastOperation_OperationStatus_STATUS_StartFailed,
	"stopfailed":    ComputeInstanceLastOperation_OperationStatus_STATUS_StopFailed,
	"succeeded":     ComputeInstanceLastOperation_OperationStatus_STATUS_Succeeded,
}

type ComputeInstanceLastOperation_OperationTrigger_STATUS string

const (
	ComputeInstanceLastOperation_OperationTrigger_STATUS_IdleShutdown = ComputeInstanceLastOperation_OperationTrigger_STATUS("IdleShutdown")
	ComputeInstanceLastOperation_OperationTrigger_STATUS_Schedule     = ComputeInstanceLastOperation_OperationTrigger_STATUS("Schedule")
	ComputeInstanceLastOperation_OperationTrigger_STATUS_User         = ComputeInstanceLastOperation_OperationTrigger_STATUS("User")
)

// Mapping from string to ComputeInstanceLastOperation_OperationTrigger_STATUS
var computeInstanceLastOperation_OperationTrigger_STATUS_Values = map[string]ComputeInstanceLastOperation_OperationTrigger_STATUS{
	"idleshutdown": ComputeInstanceLastOperation_OperationTrigger_STATUS_IdleShutdown,
	"schedule":     ComputeInstanceLastOperation_OperationTrigger_STATUS_Schedule,
	"user":         ComputeInstanceLastOperation_OperationTrigger_STATUS_User,
}

type ComputeInstanceSshSettings_SshPublicAccess_STATUS string

const (
	ComputeInstanceSshSettings_SshPublicAccess_STATUS_Disabled = ComputeInstanceSshSettings_SshPublicAccess_STATUS("Disabled")
	ComputeInstanceSshSettings_SshPublicAccess_STATUS_Enabled  = ComputeInstanceSshSettings_SshPublicAccess_STATUS("Enabled")
)

// Mapping from string to ComputeInstanceSshSettings_SshPublicAccess_STATUS
var computeInstanceSshSettings_SshPublicAccess_STATUS_Values = map[string]ComputeInstanceSshSettings_SshPublicAccess_STATUS{
	"disabled": ComputeInstanceSshSettings_SshPublicAccess_STATUS_Disabled,
	"enabled":  ComputeInstanceSshSettings_SshPublicAccess_STATUS_Enabled,
}

// Compute start stop schedule properties
type ComputeStartStopSchedule_STATUS struct {
	// Action: [Required] The compute power action.
	Action *ComputePowerAction_STATUS `json:"action,omitempty"`

	// Cron: Required if triggerType is Cron.
	Cron *Cron_STATUS `json:"cron,omitempty"`

	// Id: A system assigned id for the schedule.
	Id *string `json:"id,omitempty"`

	// ProvisioningStatus: The current deployment state of schedule.
	ProvisioningStatus *ComputeStartStopSchedule_ProvisioningStatus_STATUS `json:"provisioningStatus,omitempty"`

	// Recurrence: Required if triggerType is Recurrence.
	Recurrence *Recurrence_STATUS `json:"recurrence,omitempty"`

	// Schedule: [Deprecated] Not used any more.
	Schedule *ScheduleBase_STATUS `json:"schedule,omitempty"`

	// Status: Is the schedule enabled or disabled?
	Status *ScheduleStatus_STATUS `json:"status,omitempty"`

	// TriggerType: [Required] The schedule trigger type.
	TriggerType *ComputeTriggerType_STATUS `json:"triggerType,omitempty"`
}

// Docker container configuration
type Docker_STATUS struct {
	// Privileged: Indicate whether container shall run in privileged or non-privileged mode.
	Privileged *bool `json:"privileged,omitempty"`
}

// Describes the endpoint configuration for the container
type Endpoint_STATUS struct {
	// HostIp: Host IP over which the application is exposed from the container
	HostIp *string `json:"hostIp,omitempty"`

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

	// Protocol: Protocol over which communication will happen over this endpoint
	Protocol *Endpoint_Protocol_STATUS `json:"protocol,omitempty"`

	// Published: Port over which the application is exposed from container.
	Published *int `json:"published,omitempty"`

	// Target: Application port inside the container.
	Target *int `json:"target,omitempty"`
}

// Environment Variables for the container
type EnvironmentVariable_STATUS struct {
	// Type: Type of the Environment Variable. Possible values are: local - For local variable
	Type *EnvironmentVariable_Type_STATUS `json:"type,omitempty"`

	// Value: Value of the Environment variable
	Value *string `json:"value,omitempty"`
}

// The resource management error additional info.
type ErrorAdditionalInfo_STATUS struct {
	// Info: The additional info.
	Info map[string]v1.JSON `json:"info,omitempty"`

	// Type: The additional info type.
	Type *string `json:"type,omitempty"`
}

type ErrorDetail_STATUS_Unrolled struct {
	// AdditionalInfo: The error additional info.
	AdditionalInfo []ErrorAdditionalInfo_STATUS `json:"additionalInfo,omitempty"`

	// Code: The error code.
	Code *string `json:"code,omitempty"`

	// Message: The error message.
	Message *string `json:"message,omitempty"`

	// Target: The error target.
	Target *string `json:"target,omitempty"`
}

// Describes the Image Specifications
type Image_STATUS struct {
	// Reference: Image reference
	Reference *string `json:"reference,omitempty"`

	// Type: Type of the image. Possible values are: docker - For docker images. azureml - For AzureML images
	Type *Image_Type_STATUS `json:"type,omitempty"`
}

type InstanceTypeSchema_Resources_STATUS struct {
	// Limits: Resource limits for this instance type
	Limits map[string]string `json:"limits,omitempty"`

	// Requests: Resource requests for this instance type
	Requests map[string]string `json:"requests,omitempty"`
}

// Customized setup scripts
type ScriptsToExecute_STATUS struct {
	// CreationScript: Script that's run only once during provision of the compute.
	CreationScript *ScriptReference_STATUS `json:"creationScript,omitempty"`

	// StartupScript: Script that's run every time the machine starts.
	StartupScript *ScriptReference_STATUS `json:"startupScript,omitempty"`
}

type SslConfiguration_Status_STATUS string

const (
	SslConfiguration_Status_STATUS_Auto     = SslConfiguration_Status_STATUS("Auto")
	SslConfiguration_Status_STATUS_Disabled = SslConfiguration_Status_STATUS("Disabled")
	SslConfiguration_Status_STATUS_Enabled  = SslConfiguration_Status_STATUS("Enabled")
)

// Mapping from string to SslConfiguration_Status_STATUS
var sslConfiguration_Status_STATUS_Values = map[string]SslConfiguration_Status_STATUS{
	"auto":     SslConfiguration_Status_STATUS_Auto,
	"disabled": SslConfiguration_Status_STATUS_Disabled,
	"enabled":  SslConfiguration_Status_STATUS_Enabled,
}

// Describes the volume configuration for the container
type VolumeDefinition_STATUS struct {
	// Bind: Bind Options of the mount
	Bind *BindOptions_STATUS `json:"bind,omitempty"`

	// Consistency: Consistency of the volume
	Consistency *string `json:"consistency,omitempty"`

	// ReadOnly: Indicate whether to mount volume as readOnly. Default value for this is false.
	ReadOnly *bool `json:"readOnly,omitempty"`

	// Source: Source of the mount. For bind mounts this is the host path.
	Source *string `json:"source,omitempty"`

	// Target: Target of the mount. For bind mounts this is the path in the container.
	Target *string `json:"target,omitempty"`

	// Tmpfs: tmpfs option of the mount
	Tmpfs *TmpfsOptions_STATUS `json:"tmpfs,omitempty"`

	// Type: Type of Volume Definition. Possible Values: bind,volume,tmpfs,npipe
	Type *VolumeDefinition_Type_STATUS `json:"type,omitempty"`

	// Volume: Volume Options of the mount
	Volume *VolumeOptions_STATUS `json:"volume,omitempty"`
}

// Describes the bind options for the container
type BindOptions_STATUS struct {
	// CreateHostPath: Indicate whether to create host path.
	CreateHostPath *bool `json:"createHostPath,omitempty"`

	// Propagation: Type of Bind Option
	Propagation *string `json:"propagation,omitempty"`

	// Selinux: Mention the selinux options.
	Selinux *string `json:"selinux,omitempty"`
}

// The compute power action.
type ComputePowerAction_STATUS string

const (
	ComputePowerAction_STATUS_Start = ComputePowerAction_STATUS("Start")
	ComputePowerAction_STATUS_Stop  = ComputePowerAction_STATUS("Stop")
)

// Mapping from string to ComputePowerAction_STATUS
var computePowerAction_STATUS_Values = map[string]ComputePowerAction_STATUS{
	"start": ComputePowerAction_STATUS_Start,
	"stop":  ComputePowerAction_STATUS_Stop,
}

type ComputeStartStopSchedule_ProvisioningStatus_STATUS string

const (
	ComputeStartStopSchedule_ProvisioningStatus_STATUS_Completed    = ComputeStartStopSchedule_ProvisioningStatus_STATUS("Completed")
	ComputeStartStopSchedule_ProvisioningStatus_STATUS_Failed       = ComputeStartStopSchedule_ProvisioningStatus_STATUS("Failed")
	ComputeStartStopSchedule_ProvisioningStatus_STATUS_Provisioning = ComputeStartStopSchedule_ProvisioningStatus_STATUS("Provisioning")
)

// Mapping from string to ComputeStartStopSchedule_ProvisioningStatus_STATUS
var computeStartStopSchedule_ProvisioningStatus_STATUS_Values = map[string]ComputeStartStopSchedule_ProvisioningStatus_STATUS{
	"completed":    ComputeStartStopSchedule_ProvisioningStatus_STATUS_Completed,
	"failed":       ComputeStartStopSchedule_ProvisioningStatus_STATUS_Failed,
	"provisioning": ComputeStartStopSchedule_ProvisioningStatus_STATUS_Provisioning,
}

// Is the trigger type recurrence or cron.
type ComputeTriggerType_STATUS string

const (
	ComputeTriggerType_STATUS_Cron       = ComputeTriggerType_STATUS("Cron")
	ComputeTriggerType_STATUS_Recurrence = ComputeTriggerType_STATUS("Recurrence")
)

// Mapping from string to ComputeTriggerType_STATUS
var computeTriggerType_STATUS_Values = map[string]ComputeTriggerType_STATUS{
	"cron":       ComputeTriggerType_STATUS_Cron,
	"recurrence": ComputeTriggerType_STATUS_Recurrence,
}

// The workflow trigger cron for ComputeStartStop schedule type.
type Cron_STATUS struct {
	// Expression: [Required] Specifies cron expression of schedule.
	// The expression should follow NCronTab format.
	Expression *string `json:"expression,omitempty"`

	// StartTime: The start time in yyyy-MM-ddTHH:mm:ss format.
	StartTime *string `json:"startTime,omitempty"`

	// TimeZone: Specifies time zone in which the schedule runs.
	// TimeZone should follow Windows time zone format. Refer:
	// https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/default-time-zones?view=windows-11
	TimeZone *string `json:"timeZone,omitempty"`
}

type Endpoint_Protocol_STATUS string

const (
	Endpoint_Protocol_STATUS_Http = Endpoint_Protocol_STATUS("http")
	Endpoint_Protocol_STATUS_Tcp  = Endpoint_Protocol_STATUS("tcp")
	Endpoint_Protocol_STATUS_Udp  = Endpoint_Protocol_STATUS("udp")
)

// Mapping from string to Endpoint_Protocol_STATUS
var endpoint_Protocol_STATUS_Values = map[string]Endpoint_Protocol_STATUS{
	"http": Endpoint_Protocol_STATUS_Http,
	"tcp":  Endpoint_Protocol_STATUS_Tcp,
	"udp":  Endpoint_Protocol_STATUS_Udp,
}

type EnvironmentVariable_Type_STATUS string

const EnvironmentVariable_Type_STATUS_Local = EnvironmentVariable_Type_STATUS("local")

// Mapping from string to EnvironmentVariable_Type_STATUS
var environmentVariable_Type_STATUS_Values = map[string]EnvironmentVariable_Type_STATUS{
	"local": EnvironmentVariable_Type_STATUS_Local,
}

type Image_Type_STATUS string

const (
	Image_Type_STATUS_Azureml = Image_Type_STATUS("azureml")
	Image_Type_STATUS_Docker  = Image_Type_STATUS("docker")
)

// Mapping from string to Image_Type_STATUS
var image_Type_STATUS_Values = map[string]Image_Type_STATUS{
	"azureml": Image_Type_STATUS_Azureml,
	"docker":  Image_Type_STATUS_Docker,
}

// The workflow trigger recurrence for ComputeStartStop schedule type.
type Recurrence_STATUS struct {
	// Frequency: [Required] The frequency to trigger schedule.
	Frequency *ComputeRecurrenceFrequency_STATUS `json:"frequency,omitempty"`

	// Interval: [Required] Specifies schedule interval in conjunction with frequency
	Interval *int `json:"interval,omitempty"`

	// Schedule: [Required] The recurrence schedule.
	Schedule *ComputeRecurrenceSchedule_STATUS `json:"schedule,omitempty"`

	// StartTime: The start time in yyyy-MM-ddTHH:mm:ss format.
	StartTime *string `json:"startTime,omitempty"`

	// TimeZone: Specifies time zone in which the schedule runs.
	// TimeZone should follow Windows time zone format. Refer:
	// https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/default-time-zones?view=windows-11
	TimeZone *string `json:"timeZone,omitempty"`
}

type ScheduleBase_STATUS struct {
	// Id: A system assigned id for the schedule.
	Id *string `json:"id,omitempty"`

	// ProvisioningStatus: The current deployment state of schedule.
	ProvisioningStatus *ScheduleProvisioningState_STATUS `json:"provisioningStatus,omitempty"`

	// Status: Is the schedule enabled or disabled?
	Status *ScheduleStatus_STATUS `json:"status,omitempty"`
}

// Is the schedule enabled or disabled?
type ScheduleStatus_STATUS string

const (
	ScheduleStatus_STATUS_Disabled = ScheduleStatus_STATUS("Disabled")
	ScheduleStatus_STATUS_Enabled  = ScheduleStatus_STATUS("Enabled")
)

// Mapping from string to ScheduleStatus_STATUS
var scheduleStatus_STATUS_Values = map[string]ScheduleStatus_STATUS{
	"disabled": ScheduleStatus_STATUS_Disabled,
	"enabled":  ScheduleStatus_STATUS_Enabled,
}

// Script reference
type ScriptReference_STATUS struct {
	// ScriptArguments: Optional command line arguments passed to the script to run.
	ScriptArguments *string `json:"scriptArguments,omitempty"`

	// ScriptData: The location of scripts in the mounted volume.
	ScriptData *string `json:"scriptData,omitempty"`

	// ScriptSource: The storage source of the script: workspace.
	ScriptSource *string `json:"scriptSource,omitempty"`

	// Timeout: Optional time period passed to timeout command.
	Timeout *string `json:"timeout,omitempty"`
}

// Describes the tmpfs options for the container
type TmpfsOptions_STATUS struct {
	// Size: Mention the Tmpfs size
	Size *int `json:"size,omitempty"`
}

type VolumeDefinition_Type_STATUS string

const (
	VolumeDefinition_Type_STATUS_Bind   = VolumeDefinition_Type_STATUS("bind")
	VolumeDefinition_Type_STATUS_Npipe  = VolumeDefinition_Type_STATUS("npipe")
	VolumeDefinition_Type_STATUS_Tmpfs  = VolumeDefinition_Type_STATUS("tmpfs")
	VolumeDefinition_Type_STATUS_Volume = VolumeDefinition_Type_STATUS("volume")
)

// Mapping from string to VolumeDefinition_Type_STATUS
var volumeDefinition_Type_STATUS_Values = map[string]VolumeDefinition_Type_STATUS{
	"bind":   VolumeDefinition_Type_STATUS_Bind,
	"npipe":  VolumeDefinition_Type_STATUS_Npipe,
	"tmpfs":  VolumeDefinition_Type_STATUS_Tmpfs,
	"volume": VolumeDefinition_Type_STATUS_Volume,
}

// Describes the volume options for the container
type VolumeOptions_STATUS struct {
	// Nocopy: Indicate whether volume is nocopy
	Nocopy *bool `json:"nocopy,omitempty"`
}

// Enum to describe the frequency of a compute recurrence schedule
type ComputeRecurrenceFrequency_STATUS string

const (
	ComputeRecurrenceFrequency_STATUS_Day    = ComputeRecurrenceFrequency_STATUS("Day")
	ComputeRecurrenceFrequency_STATUS_Hour   = ComputeRecurrenceFrequency_STATUS("Hour")
	ComputeRecurrenceFrequency_STATUS_Minute = ComputeRecurrenceFrequency_STATUS("Minute")
	ComputeRecurrenceFrequency_STATUS_Month  = ComputeRecurrenceFrequency_STATUS("Month")
	ComputeRecurrenceFrequency_STATUS_Week   = ComputeRecurrenceFrequency_STATUS("Week")
)

// Mapping from string to ComputeRecurrenceFrequency_STATUS
var computeRecurrenceFrequency_STATUS_Values = map[string]ComputeRecurrenceFrequency_STATUS{
	"day":    ComputeRecurrenceFrequency_STATUS_Day,
	"hour":   ComputeRecurrenceFrequency_STATUS_Hour,
	"minute": ComputeRecurrenceFrequency_STATUS_Minute,
	"month":  ComputeRecurrenceFrequency_STATUS_Month,
	"week":   ComputeRecurrenceFrequency_STATUS_Week,
}

type ComputeRecurrenceSchedule_STATUS struct {
	// Hours: [Required] List of hours for the schedule.
	Hours []int `json:"hours,omitempty"`

	// Minutes: [Required] List of minutes for the schedule.
	Minutes []int `json:"minutes,omitempty"`

	// MonthDays: List of month days for the schedule
	MonthDays []int `json:"monthDays,omitempty"`

	// WeekDays: List of days for the schedule.
	WeekDays []ComputeWeekDay_STATUS `json:"weekDays,omitempty"`
}

// The current deployment state of schedule.
type ScheduleProvisioningState_STATUS string

const (
	ScheduleProvisioningState_STATUS_Completed    = ScheduleProvisioningState_STATUS("Completed")
	ScheduleProvisioningState_STATUS_Failed       = ScheduleProvisioningState_STATUS("Failed")
	ScheduleProvisioningState_STATUS_Provisioning = ScheduleProvisioningState_STATUS("Provisioning")
)

// Mapping from string to ScheduleProvisioningState_STATUS
var scheduleProvisioningState_STATUS_Values = map[string]ScheduleProvisioningState_STATUS{
	"completed":    ScheduleProvisioningState_STATUS_Completed,
	"failed":       ScheduleProvisioningState_STATUS_Failed,
	"provisioning": ScheduleProvisioningState_STATUS_Provisioning,
}

// Enum of weekday
type ComputeWeekDay_STATUS string

const (
	ComputeWeekDay_STATUS_Friday    = ComputeWeekDay_STATUS("Friday")
	ComputeWeekDay_STATUS_Monday    = ComputeWeekDay_STATUS("Monday")
	ComputeWeekDay_STATUS_Saturday  = ComputeWeekDay_STATUS("Saturday")
	ComputeWeekDay_STATUS_Sunday    = ComputeWeekDay_STATUS("Sunday")
	ComputeWeekDay_STATUS_Thursday  = ComputeWeekDay_STATUS("Thursday")
	ComputeWeekDay_STATUS_Tuesday   = ComputeWeekDay_STATUS("Tuesday")
	ComputeWeekDay_STATUS_Wednesday = ComputeWeekDay_STATUS("Wednesday")
)

// Mapping from string to ComputeWeekDay_STATUS
var computeWeekDay_STATUS_Values = map[string]ComputeWeekDay_STATUS{
	"friday":    ComputeWeekDay_STATUS_Friday,
	"monday":    ComputeWeekDay_STATUS_Monday,
	"saturday":  ComputeWeekDay_STATUS_Saturday,
	"sunday":    ComputeWeekDay_STATUS_Sunday,
	"thursday":  ComputeWeekDay_STATUS_Thursday,
	"tuesday":   ComputeWeekDay_STATUS_Tuesday,
	"wednesday": ComputeWeekDay_STATUS_Wednesday,
}
