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

import (
	"github.com/Azure/azure-service-operator/v2/pkg/genruntime"
	"github.com/Azure/azure-service-operator/v2/pkg/genruntime/conditions"
	"github.com/Azure/azure-service-operator/v2/pkg/genruntime/configmaps"
	"github.com/Azure/azure-service-operator/v2/pkg/genruntime/core"
	"github.com/Azure/azure-service-operator/v2/pkg/genruntime/secrets"
	"github.com/rotisserie/eris"
	"k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	"k8s.io/apimachinery/pkg/runtime/schema"
)

// +kubebuilder:rbac:groups=machinelearningservices.azure.com,resources=workspacescomputes,verbs=get;list;watch;create;update;patch;delete
// +kubebuilder:rbac:groups=machinelearningservices.azure.com,resources={workspacescomputes/status,workspacescomputes/finalizers},verbs=get;update;patch

// +kubebuilder:object:root=true
// +kubebuilder:resource:categories={azure,machinelearningservices}
// +kubebuilder:subresource:status
// +kubebuilder:storageversion
// +kubebuilder:printcolumn:name="Ready",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status"
// +kubebuilder:printcolumn:name="Severity",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].severity"
// +kubebuilder:printcolumn:name="Reason",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].reason"
// +kubebuilder:printcolumn:name="Message",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].message"
// Storage version of v1api20240401.WorkspacesCompute
// Generator information:
// - Generated from: /machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/machineLearningServices.json
// - ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/computes/{computeName}
type WorkspacesCompute struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	Spec              WorkspacesCompute_Spec   `json:"spec,omitempty"`
	Status            WorkspacesCompute_STATUS `json:"status,omitempty"`
}

var _ conditions.Conditioner = &WorkspacesCompute{}

// GetConditions returns the conditions of the resource
func (compute *WorkspacesCompute) GetConditions() conditions.Conditions {
	return compute.Status.Conditions
}

// SetConditions sets the conditions on the resource status
func (compute *WorkspacesCompute) SetConditions(conditions conditions.Conditions) {
	compute.Status.Conditions = conditions
}

var _ configmaps.Exporter = &WorkspacesCompute{}

// ConfigMapDestinationExpressions returns the Spec.OperatorSpec.ConfigMapExpressions property
func (compute *WorkspacesCompute) ConfigMapDestinationExpressions() []*core.DestinationExpression {
	if compute.Spec.OperatorSpec == nil {
		return nil
	}
	return compute.Spec.OperatorSpec.ConfigMapExpressions
}

var _ secrets.Exporter = &WorkspacesCompute{}

// SecretDestinationExpressions returns the Spec.OperatorSpec.SecretExpressions property
func (compute *WorkspacesCompute) SecretDestinationExpressions() []*core.DestinationExpression {
	if compute.Spec.OperatorSpec == nil {
		return nil
	}
	return compute.Spec.OperatorSpec.SecretExpressions
}

var _ genruntime.KubernetesResource = &WorkspacesCompute{}

// AzureName returns the Azure name of the resource
func (compute *WorkspacesCompute) AzureName() string {
	return compute.Spec.AzureName
}

// GetAPIVersion returns the ARM API version of the resource. This is always "2024-04-01"
func (compute WorkspacesCompute) GetAPIVersion() string {
	return "2024-04-01"
}

// GetResourceScope returns the scope of the resource
func (compute *WorkspacesCompute) GetResourceScope() genruntime.ResourceScope {
	return genruntime.ResourceScopeResourceGroup
}

// GetSpec returns the specification of this resource
func (compute *WorkspacesCompute) GetSpec() genruntime.ConvertibleSpec {
	return &compute.Spec
}

// GetStatus returns the status of this resource
func (compute *WorkspacesCompute) GetStatus() genruntime.ConvertibleStatus {
	return &compute.Status
}

// GetSupportedOperations returns the operations supported by the resource
func (compute *WorkspacesCompute) GetSupportedOperations() []genruntime.ResourceOperation {
	return []genruntime.ResourceOperation{
		genruntime.ResourceOperationDelete,
		genruntime.ResourceOperationGet,
		genruntime.ResourceOperationPut,
	}
}

// GetType returns the ARM Type of the resource. This is always "Microsoft.MachineLearningServices/workspaces/computes"
func (compute *WorkspacesCompute) GetType() string {
	return "Microsoft.MachineLearningServices/workspaces/computes"
}

// NewEmptyStatus returns a new empty (blank) status
func (compute *WorkspacesCompute) NewEmptyStatus() genruntime.ConvertibleStatus {
	return &WorkspacesCompute_STATUS{}
}

// Owner returns the ResourceReference of the owner
func (compute *WorkspacesCompute) Owner() *genruntime.ResourceReference {
	if compute.Spec.Owner == nil {
		return nil
	}

	group, kind := genruntime.LookupOwnerGroupKind(compute.Spec)
	return compute.Spec.Owner.AsResourceReference(group, kind)
}

// SetStatus sets the status of this resource
func (compute *WorkspacesCompute) SetStatus(status genruntime.ConvertibleStatus) error {
	// If we have exactly the right type of status, assign it
	if st, ok := status.(*WorkspacesCompute_STATUS); ok {
		compute.Status = *st
		return nil
	}

	// Convert status to required version
	var st WorkspacesCompute_STATUS
	err := status.ConvertStatusTo(&st)
	if err != nil {
		return eris.Wrap(err, "failed to convert status")
	}

	compute.Status = st
	return nil
}

// Hub marks that this WorkspacesCompute is the hub type for conversion
func (compute *WorkspacesCompute) Hub() {}

// OriginalGVK returns a GroupValueKind for the original API version used to create the resource
func (compute *WorkspacesCompute) OriginalGVK() *schema.GroupVersionKind {
	return &schema.GroupVersionKind{
		Group:   GroupVersion.Group,
		Version: compute.Spec.OriginalVersion,
		Kind:    "WorkspacesCompute",
	}
}

// +kubebuilder:object:root=true
// Storage version of v1api20240401.WorkspacesCompute
// Generator information:
// - Generated from: /machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/machineLearningServices.json
// - ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/computes/{computeName}
type WorkspacesComputeList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []WorkspacesCompute `json:"items"`
}

// Storage version of v1api20240401.WorkspacesCompute_Spec
type WorkspacesCompute_Spec struct {
	// AzureName: The name of the resource in Azure. This is often the same as the name of the resource in Kubernetes but it
	// doesn't have to be.
	AzureName       string                         `json:"azureName,omitempty"`
	Identity        *ManagedServiceIdentity        `json:"identity,omitempty"`
	Location        *string                        `json:"location,omitempty"`
	OperatorSpec    *WorkspacesComputeOperatorSpec `json:"operatorSpec,omitempty"`
	OriginalVersion string                         `json:"originalVersion,omitempty"`

	// +kubebuilder:validation:Required
	// Owner: The owner of the resource. The owner controls where the resource goes when it is deployed. The owner also
	// controls the resources lifecycle. When the owner is deleted the resource will also be deleted. Owner is expected to be a
	// reference to a machinelearningservices.azure.com/Workspace resource
	Owner       *genruntime.KnownResourceReference `group:"machinelearningservices.azure.com" json:"owner,omitempty" kind:"Workspace"`
	Properties  *Compute                           `json:"properties,omitempty"`
	PropertyBag genruntime.PropertyBag             `json:"$propertyBag,omitempty"`
	Sku         *Sku                               `json:"sku,omitempty"`
	Tags        map[string]string                  `json:"tags,omitempty"`
}

var _ genruntime.ConvertibleSpec = &WorkspacesCompute_Spec{}

// ConvertSpecFrom populates our WorkspacesCompute_Spec from the provided source
func (compute *WorkspacesCompute_Spec) ConvertSpecFrom(source genruntime.ConvertibleSpec) error {
	if source == compute {
		return eris.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleSpec")
	}

	return source.ConvertSpecTo(compute)
}

// ConvertSpecTo populates the provided destination from our WorkspacesCompute_Spec
func (compute *WorkspacesCompute_Spec) ConvertSpecTo(destination genruntime.ConvertibleSpec) error {
	if destination == compute {
		return eris.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleSpec")
	}

	return destination.ConvertSpecFrom(compute)
}

// Storage version of v1api20240401.WorkspacesCompute_STATUS
type WorkspacesCompute_STATUS struct {
	Conditions  []conditions.Condition         `json:"conditions,omitempty"`
	Id          *string                        `json:"id,omitempty"`
	Identity    *ManagedServiceIdentity_STATUS `json:"identity,omitempty"`
	Location    *string                        `json:"location,omitempty"`
	Name        *string                        `json:"name,omitempty"`
	Properties  *Compute_STATUS                `json:"properties,omitempty"`
	PropertyBag genruntime.PropertyBag         `json:"$propertyBag,omitempty"`
	Sku         *Sku_STATUS                    `json:"sku,omitempty"`
	SystemData  *SystemData_STATUS             `json:"systemData,omitempty"`
	Tags        map[string]string              `json:"tags,omitempty"`
	Type        *string                        `json:"type,omitempty"`
}

var _ genruntime.ConvertibleStatus = &WorkspacesCompute_STATUS{}

// ConvertStatusFrom populates our WorkspacesCompute_STATUS from the provided source
func (compute *WorkspacesCompute_STATUS) ConvertStatusFrom(source genruntime.ConvertibleStatus) error {
	if source == compute {
		return eris.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleStatus")
	}

	return source.ConvertStatusTo(compute)
}

// ConvertStatusTo populates the provided destination from our WorkspacesCompute_STATUS
func (compute *WorkspacesCompute_STATUS) ConvertStatusTo(destination genruntime.ConvertibleStatus) error {
	if destination == compute {
		return eris.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleStatus")
	}

	return destination.ConvertStatusFrom(compute)
}

// Storage version of v1api20240401.Compute
type Compute struct {
	AKS               *AKS                   `json:"aks,omitempty"`
	AmlCompute        *AmlCompute            `json:"amlCompute,omitempty"`
	ComputeInstance   *ComputeInstance       `json:"computeInstance,omitempty"`
	DataFactory       *DataFactory           `json:"dataFactory,omitempty"`
	DataLakeAnalytics *DataLakeAnalytics     `json:"dataLakeAnalytics,omitempty"`
	Databricks        *Databricks            `json:"databricks,omitempty"`
	HDInsight         *HDInsight             `json:"hdInsight,omitempty"`
	Kubernetes        *Kubernetes            `json:"kubernetes,omitempty"`
	PropertyBag       genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	SynapseSpark      *SynapseSpark          `json:"synapseSpark,omitempty"`
	VirtualMachine    *VirtualMachine        `json:"virtualMachine,omitempty"`
}

// Storage version of v1api20240401.Compute_STATUS
type Compute_STATUS struct {
	AKS               *AKS_STATUS               `json:"aks,omitempty"`
	AmlCompute        *AmlCompute_STATUS        `json:"amlCompute,omitempty"`
	ComputeInstance   *ComputeInstance_STATUS   `json:"computeInstance,omitempty"`
	DataFactory       *DataFactory_STATUS       `json:"dataFactory,omitempty"`
	DataLakeAnalytics *DataLakeAnalytics_STATUS `json:"dataLakeAnalytics,omitempty"`
	Databricks        *Databricks_STATUS        `json:"databricks,omitempty"`
	HDInsight         *HDInsight_STATUS         `json:"hdInsight,omitempty"`
	Kubernetes        *Kubernetes_STATUS        `json:"kubernetes,omitempty"`
	PropertyBag       genruntime.PropertyBag    `json:"$propertyBag,omitempty"`
	SynapseSpark      *SynapseSpark_STATUS      `json:"synapseSpark,omitempty"`
	VirtualMachine    *VirtualMachine_STATUS    `json:"virtualMachine,omitempty"`
}

// Storage version of v1api20240401.WorkspacesComputeOperatorSpec
// Details for configuring operator behavior. Fields in this struct are interpreted by the operator directly rather than being passed to Azure
type WorkspacesComputeOperatorSpec struct {
	ConfigMapExpressions []*core.DestinationExpression `json:"configMapExpressions,omitempty"`
	PropertyBag          genruntime.PropertyBag        `json:"$propertyBag,omitempty"`
	SecretExpressions    []*core.DestinationExpression `json:"secretExpressions,omitempty"`
}

// Storage version of v1api20240401.AKS
type AKS struct {
	ComputeLocation  *string                `json:"computeLocation,omitempty"`
	ComputeType      *string                `json:"computeType,omitempty"`
	Description      *string                `json:"description,omitempty"`
	DisableLocalAuth *bool                  `json:"disableLocalAuth,omitempty"`
	Properties       *AKS_Properties        `json:"properties,omitempty"`
	PropertyBag      genruntime.PropertyBag `json:"$propertyBag,omitempty"`

	// ResourceReference: ARM resource id of the underlying compute
	ResourceReference *genruntime.ResourceReference `armReference:"ResourceId" json:"resourceReference,omitempty"`
}

// Storage version of v1api20240401.AKS_STATUS
type AKS_STATUS struct {
	ComputeLocation    *string                `json:"computeLocation,omitempty"`
	ComputeType        *string                `json:"computeType,omitempty"`
	CreatedOn          *string                `json:"createdOn,omitempty"`
	Description        *string                `json:"description,omitempty"`
	DisableLocalAuth   *bool                  `json:"disableLocalAuth,omitempty"`
	IsAttachedCompute  *bool                  `json:"isAttachedCompute,omitempty"`
	ModifiedOn         *string                `json:"modifiedOn,omitempty"`
	Properties         *AKS_Properties_STATUS `json:"properties,omitempty"`
	PropertyBag        genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	ProvisioningErrors []ErrorResponse_STATUS `json:"provisioningErrors,omitempty"`
	ProvisioningState  *string                `json:"provisioningState,omitempty"`
	ResourceId         *string                `json:"resourceId,omitempty"`
}

// Storage version of v1api20240401.AmlCompute
type AmlCompute struct {
	ComputeLocation  *string                `json:"computeLocation,omitempty"`
	ComputeType      *string                `json:"computeType,omitempty"`
	Description      *string                `json:"description,omitempty"`
	DisableLocalAuth *bool                  `json:"disableLocalAuth,omitempty"`
	Properties       *AmlComputeProperties  `json:"properties,omitempty"`
	PropertyBag      genruntime.PropertyBag `json:"$propertyBag,omitempty"`

	// ResourceReference: ARM resource id of the underlying compute
	ResourceReference *genruntime.ResourceReference `armReference:"ResourceId" json:"resourceReference,omitempty"`
}

// Storage version of v1api20240401.AmlCompute_STATUS
type AmlCompute_STATUS struct {
	ComputeLocation    *string                      `json:"computeLocation,omitempty"`
	ComputeType        *string                      `json:"computeType,omitempty"`
	CreatedOn          *string                      `json:"createdOn,omitempty"`
	Description        *string                      `json:"description,omitempty"`
	DisableLocalAuth   *bool                        `json:"disableLocalAuth,omitempty"`
	IsAttachedCompute  *bool                        `json:"isAttachedCompute,omitempty"`
	ModifiedOn         *string                      `json:"modifiedOn,omitempty"`
	Properties         *AmlComputeProperties_STATUS `json:"properties,omitempty"`
	PropertyBag        genruntime.PropertyBag       `json:"$propertyBag,omitempty"`
	ProvisioningErrors []ErrorResponse_STATUS       `json:"provisioningErrors,omitempty"`
	ProvisioningState  *string                      `json:"provisioningState,omitempty"`
	ResourceId         *string                      `json:"resourceId,omitempty"`
}

// Storage version of v1api20240401.ComputeInstance
type ComputeInstance struct {
	ComputeLocation  *string                    `json:"computeLocation,omitempty"`
	ComputeType      *string                    `json:"computeType,omitempty"`
	Description      *string                    `json:"description,omitempty"`
	DisableLocalAuth *bool                      `json:"disableLocalAuth,omitempty"`
	Properties       *ComputeInstanceProperties `json:"properties,omitempty"`
	PropertyBag      genruntime.PropertyBag     `json:"$propertyBag,omitempty"`

	// ResourceReference: ARM resource id of the underlying compute
	ResourceReference *genruntime.ResourceReference `armReference:"ResourceId" json:"resourceReference,omitempty"`
}

// Storage version of v1api20240401.ComputeInstance_STATUS
type ComputeInstance_STATUS struct {
	ComputeLocation    *string                           `json:"computeLocation,omitempty"`
	ComputeType        *string                           `json:"computeType,omitempty"`
	CreatedOn          *string                           `json:"createdOn,omitempty"`
	Description        *string                           `json:"description,omitempty"`
	DisableLocalAuth   *bool                             `json:"disableLocalAuth,omitempty"`
	IsAttachedCompute  *bool                             `json:"isAttachedCompute,omitempty"`
	ModifiedOn         *string                           `json:"modifiedOn,omitempty"`
	Properties         *ComputeInstanceProperties_STATUS `json:"properties,omitempty"`
	PropertyBag        genruntime.PropertyBag            `json:"$propertyBag,omitempty"`
	ProvisioningErrors []ErrorResponse_STATUS            `json:"provisioningErrors,omitempty"`
	ProvisioningState  *string                           `json:"provisioningState,omitempty"`
	ResourceId         *string                           `json:"resourceId,omitempty"`
}

// Storage version of v1api20240401.Databricks
type Databricks struct {
	ComputeLocation  *string                `json:"computeLocation,omitempty"`
	ComputeType      *string                `json:"computeType,omitempty"`
	Description      *string                `json:"description,omitempty"`
	DisableLocalAuth *bool                  `json:"disableLocalAuth,omitempty"`
	Properties       *DatabricksProperties  `json:"properties,omitempty"`
	PropertyBag      genruntime.PropertyBag `json:"$propertyBag,omitempty"`

	// ResourceReference: ARM resource id of the underlying compute
	ResourceReference *genruntime.ResourceReference `armReference:"ResourceId" json:"resourceReference,omitempty"`
}

// Storage version of v1api20240401.Databricks_STATUS
type Databricks_STATUS struct {
	ComputeLocation    *string                      `json:"computeLocation,omitempty"`
	ComputeType        *string                      `json:"computeType,omitempty"`
	CreatedOn          *string                      `json:"createdOn,omitempty"`
	Description        *string                      `json:"description,omitempty"`
	DisableLocalAuth   *bool                        `json:"disableLocalAuth,omitempty"`
	IsAttachedCompute  *bool                        `json:"isAttachedCompute,omitempty"`
	ModifiedOn         *string                      `json:"modifiedOn,omitempty"`
	Properties         *DatabricksProperties_STATUS `json:"properties,omitempty"`
	PropertyBag        genruntime.PropertyBag       `json:"$propertyBag,omitempty"`
	ProvisioningErrors []ErrorResponse_STATUS       `json:"provisioningErrors,omitempty"`
	ProvisioningState  *string                      `json:"provisioningState,omitempty"`
	ResourceId         *string                      `json:"resourceId,omitempty"`
}

// Storage version of v1api20240401.DataFactory
type DataFactory struct {
	ComputeLocation  *string                `json:"computeLocation,omitempty"`
	ComputeType      *string                `json:"computeType,omitempty"`
	Description      *string                `json:"description,omitempty"`
	DisableLocalAuth *bool                  `json:"disableLocalAuth,omitempty"`
	PropertyBag      genruntime.PropertyBag `json:"$propertyBag,omitempty"`

	// ResourceReference: ARM resource id of the underlying compute
	ResourceReference *genruntime.ResourceReference `armReference:"ResourceId" json:"resourceReference,omitempty"`
}

// Storage version of v1api20240401.DataFactory_STATUS
type DataFactory_STATUS struct {
	ComputeLocation    *string                `json:"computeLocation,omitempty"`
	ComputeType        *string                `json:"computeType,omitempty"`
	CreatedOn          *string                `json:"createdOn,omitempty"`
	Description        *string                `json:"description,omitempty"`
	DisableLocalAuth   *bool                  `json:"disableLocalAuth,omitempty"`
	IsAttachedCompute  *bool                  `json:"isAttachedCompute,omitempty"`
	ModifiedOn         *string                `json:"modifiedOn,omitempty"`
	PropertyBag        genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	ProvisioningErrors []ErrorResponse_STATUS `json:"provisioningErrors,omitempty"`
	ProvisioningState  *string                `json:"provisioningState,omitempty"`
	ResourceId         *string                `json:"resourceId,omitempty"`
}

// Storage version of v1api20240401.DataLakeAnalytics
type DataLakeAnalytics struct {
	ComputeLocation  *string                       `json:"computeLocation,omitempty"`
	ComputeType      *string                       `json:"computeType,omitempty"`
	Description      *string                       `json:"description,omitempty"`
	DisableLocalAuth *bool                         `json:"disableLocalAuth,omitempty"`
	Properties       *DataLakeAnalytics_Properties `json:"properties,omitempty"`
	PropertyBag      genruntime.PropertyBag        `json:"$propertyBag,omitempty"`

	// ResourceReference: ARM resource id of the underlying compute
	ResourceReference *genruntime.ResourceReference `armReference:"ResourceId" json:"resourceReference,omitempty"`
}

// Storage version of v1api20240401.DataLakeAnalytics_STATUS
type DataLakeAnalytics_STATUS struct {
	ComputeLocation    *string                              `json:"computeLocation,omitempty"`
	ComputeType        *string                              `json:"computeType,omitempty"`
	CreatedOn          *string                              `json:"createdOn,omitempty"`
	Description        *string                              `json:"description,omitempty"`
	DisableLocalAuth   *bool                                `json:"disableLocalAuth,omitempty"`
	IsAttachedCompute  *bool                                `json:"isAttachedCompute,omitempty"`
	ModifiedOn         *string                              `json:"modifiedOn,omitempty"`
	Properties         *DataLakeAnalytics_Properties_STATUS `json:"properties,omitempty"`
	PropertyBag        genruntime.PropertyBag               `json:"$propertyBag,omitempty"`
	ProvisioningErrors []ErrorResponse_STATUS               `json:"provisioningErrors,omitempty"`
	ProvisioningState  *string                              `json:"provisioningState,omitempty"`
	ResourceId         *string                              `json:"resourceId,omitempty"`
}

// Storage version of v1api20240401.HDInsight
type HDInsight struct {
	ComputeLocation  *string                `json:"computeLocation,omitempty"`
	ComputeType      *string                `json:"computeType,omitempty"`
	Description      *string                `json:"description,omitempty"`
	DisableLocalAuth *bool                  `json:"disableLocalAuth,omitempty"`
	Properties       *HDInsightProperties   `json:"properties,omitempty"`
	PropertyBag      genruntime.PropertyBag `json:"$propertyBag,omitempty"`

	// ResourceReference: ARM resource id of the underlying compute
	ResourceReference *genruntime.ResourceReference `armReference:"ResourceId" json:"resourceReference,omitempty"`
}

// Storage version of v1api20240401.HDInsight_STATUS
type HDInsight_STATUS struct {
	ComputeLocation    *string                     `json:"computeLocation,omitempty"`
	ComputeType        *string                     `json:"computeType,omitempty"`
	CreatedOn          *string                     `json:"createdOn,omitempty"`
	Description        *string                     `json:"description,omitempty"`
	DisableLocalAuth   *bool                       `json:"disableLocalAuth,omitempty"`
	IsAttachedCompute  *bool                       `json:"isAttachedCompute,omitempty"`
	ModifiedOn         *string                     `json:"modifiedOn,omitempty"`
	Properties         *HDInsightProperties_STATUS `json:"properties,omitempty"`
	PropertyBag        genruntime.PropertyBag      `json:"$propertyBag,omitempty"`
	ProvisioningErrors []ErrorResponse_STATUS      `json:"provisioningErrors,omitempty"`
	ProvisioningState  *string                     `json:"provisioningState,omitempty"`
	ResourceId         *string                     `json:"resourceId,omitempty"`
}

// Storage version of v1api20240401.Kubernetes
type Kubernetes struct {
	ComputeLocation  *string                `json:"computeLocation,omitempty"`
	ComputeType      *string                `json:"computeType,omitempty"`
	Description      *string                `json:"description,omitempty"`
	DisableLocalAuth *bool                  `json:"disableLocalAuth,omitempty"`
	Properties       *KubernetesProperties  `json:"properties,omitempty"`
	PropertyBag      genruntime.PropertyBag `json:"$propertyBag,omitempty"`

	// ResourceReference: ARM resource id of the underlying compute
	ResourceReference *genruntime.ResourceReference `armReference:"ResourceId" json:"resourceReference,omitempty"`
}

// Storage version of v1api20240401.Kubernetes_STATUS
type Kubernetes_STATUS struct {
	ComputeLocation    *string                      `json:"computeLocation,omitempty"`
	ComputeType        *string                      `json:"computeType,omitempty"`
	CreatedOn          *string                      `json:"createdOn,omitempty"`
	Description        *string                      `json:"description,omitempty"`
	DisableLocalAuth   *bool                        `json:"disableLocalAuth,omitempty"`
	IsAttachedCompute  *bool                        `json:"isAttachedCompute,omitempty"`
	ModifiedOn         *string                      `json:"modifiedOn,omitempty"`
	Properties         *KubernetesProperties_STATUS `json:"properties,omitempty"`
	PropertyBag        genruntime.PropertyBag       `json:"$propertyBag,omitempty"`
	ProvisioningErrors []ErrorResponse_STATUS       `json:"provisioningErrors,omitempty"`
	ProvisioningState  *string                      `json:"provisioningState,omitempty"`
	ResourceId         *string                      `json:"resourceId,omitempty"`
}

// Storage version of v1api20240401.SynapseSpark
type SynapseSpark struct {
	ComputeLocation  *string                  `json:"computeLocation,omitempty"`
	ComputeType      *string                  `json:"computeType,omitempty"`
	Description      *string                  `json:"description,omitempty"`
	DisableLocalAuth *bool                    `json:"disableLocalAuth,omitempty"`
	Properties       *SynapseSpark_Properties `json:"properties,omitempty"`
	PropertyBag      genruntime.PropertyBag   `json:"$propertyBag,omitempty"`

	// ResourceReference: ARM resource id of the underlying compute
	ResourceReference *genruntime.ResourceReference `armReference:"ResourceId" json:"resourceReference,omitempty"`
}

// Storage version of v1api20240401.SynapseSpark_STATUS
type SynapseSpark_STATUS struct {
	ComputeLocation    *string                         `json:"computeLocation,omitempty"`
	ComputeType        *string                         `json:"computeType,omitempty"`
	CreatedOn          *string                         `json:"createdOn,omitempty"`
	Description        *string                         `json:"description,omitempty"`
	DisableLocalAuth   *bool                           `json:"disableLocalAuth,omitempty"`
	IsAttachedCompute  *bool                           `json:"isAttachedCompute,omitempty"`
	ModifiedOn         *string                         `json:"modifiedOn,omitempty"`
	Properties         *SynapseSpark_Properties_STATUS `json:"properties,omitempty"`
	PropertyBag        genruntime.PropertyBag          `json:"$propertyBag,omitempty"`
	ProvisioningErrors []ErrorResponse_STATUS          `json:"provisioningErrors,omitempty"`
	ProvisioningState  *string                         `json:"provisioningState,omitempty"`
	ResourceId         *string                         `json:"resourceId,omitempty"`
}

// Storage version of v1api20240401.VirtualMachine
type VirtualMachine struct {
	ComputeLocation  *string                    `json:"computeLocation,omitempty"`
	ComputeType      *string                    `json:"computeType,omitempty"`
	Description      *string                    `json:"description,omitempty"`
	DisableLocalAuth *bool                      `json:"disableLocalAuth,omitempty"`
	Properties       *VirtualMachine_Properties `json:"properties,omitempty"`
	PropertyBag      genruntime.PropertyBag     `json:"$propertyBag,omitempty"`

	// ResourceReference: ARM resource id of the underlying compute
	ResourceReference *genruntime.ResourceReference `armReference:"ResourceId" json:"resourceReference,omitempty"`
}

// Storage version of v1api20240401.VirtualMachine_STATUS
type VirtualMachine_STATUS struct {
	ComputeLocation    *string                           `json:"computeLocation,omitempty"`
	ComputeType        *string                           `json:"computeType,omitempty"`
	CreatedOn          *string                           `json:"createdOn,omitempty"`
	Description        *string                           `json:"description,omitempty"`
	DisableLocalAuth   *bool                             `json:"disableLocalAuth,omitempty"`
	IsAttachedCompute  *bool                             `json:"isAttachedCompute,omitempty"`
	ModifiedOn         *string                           `json:"modifiedOn,omitempty"`
	Properties         *VirtualMachine_Properties_STATUS `json:"properties,omitempty"`
	PropertyBag        genruntime.PropertyBag            `json:"$propertyBag,omitempty"`
	ProvisioningErrors []ErrorResponse_STATUS            `json:"provisioningErrors,omitempty"`
	ProvisioningState  *string                           `json:"provisioningState,omitempty"`
	ResourceId         *string                           `json:"resourceId,omitempty"`
}

// Storage version of v1api20240401.AKS_Properties
type AKS_Properties struct {
	AgentCount                 *int                        `json:"agentCount,omitempty"`
	AgentVmSize                *string                     `json:"agentVmSize,omitempty"`
	AksNetworkingConfiguration *AksNetworkingConfiguration `json:"aksNetworkingConfiguration,omitempty"`
	ClusterFqdn                *string                     `json:"clusterFqdn,omitempty"`
	ClusterPurpose             *string                     `json:"clusterPurpose,omitempty"`

	// LoadBalancerSubnetReference: Load Balancer Subnet
	LoadBalancerSubnetReference *genruntime.ResourceReference `armReference:"LoadBalancerSubnet" json:"loadBalancerSubnetReference,omitempty"`
	LoadBalancerType            *string                       `json:"loadBalancerType,omitempty"`
	PropertyBag                 genruntime.PropertyBag        `json:"$propertyBag,omitempty"`
	SslConfiguration            *SslConfiguration             `json:"sslConfiguration,omitempty"`
}

// Storage version of v1api20240401.AKS_Properties_STATUS
type AKS_Properties_STATUS struct {
	AgentCount                 *int                               `json:"agentCount,omitempty"`
	AgentVmSize                *string                            `json:"agentVmSize,omitempty"`
	AksNetworkingConfiguration *AksNetworkingConfiguration_STATUS `json:"aksNetworkingConfiguration,omitempty"`
	ClusterFqdn                *string                            `json:"clusterFqdn,omitempty"`
	ClusterPurpose             *string                            `json:"clusterPurpose,omitempty"`
	LoadBalancerSubnet         *string                            `json:"loadBalancerSubnet,omitempty"`
	LoadBalancerType           *string                            `json:"loadBalancerType,omitempty"`
	PropertyBag                genruntime.PropertyBag             `json:"$propertyBag,omitempty"`
	SslConfiguration           *SslConfiguration_STATUS           `json:"sslConfiguration,omitempty"`
	SystemServices             []SystemService_STATUS             `json:"systemServices,omitempty"`
}

// Storage version of v1api20240401.AmlComputeProperties
// AML Compute properties
type AmlComputeProperties struct {
	EnableNodePublicIp          *bool                   `json:"enableNodePublicIp,omitempty"`
	IsolatedNetwork             *bool                   `json:"isolatedNetwork,omitempty"`
	OsType                      *string                 `json:"osType,omitempty"`
	PropertyBag                 map[string]v1.JSON      `json:"propertyBag,omitempty"`
	PropertyStash               genruntime.PropertyBag  `json:"$propertyBag,omitempty"`
	RemoteLoginPortPublicAccess *string                 `json:"remoteLoginPortPublicAccess,omitempty"`
	ScaleSettings               *ScaleSettings          `json:"scaleSettings,omitempty"`
	Subnet                      *ResourceId             `json:"subnet,omitempty"`
	UserAccountCredentials      *UserAccountCredentials `json:"userAccountCredentials,omitempty"`
	VirtualMachineImage         *VirtualMachineImage    `json:"virtualMachineImage,omitempty"`
	VmPriority                  *string                 `json:"vmPriority,omitempty"`
	VmSize                      *string                 `json:"vmSize,omitempty"`
}

// Storage version of v1api20240401.AmlComputeProperties_STATUS
// AML Compute properties
type AmlComputeProperties_STATUS struct {
	AllocationState               *string                        `json:"allocationState,omitempty"`
	AllocationStateTransitionTime *string                        `json:"allocationStateTransitionTime,omitempty"`
	CurrentNodeCount              *int                           `json:"currentNodeCount,omitempty"`
	EnableNodePublicIp            *bool                          `json:"enableNodePublicIp,omitempty"`
	Errors                        []ErrorResponse_STATUS         `json:"errors,omitempty"`
	IsolatedNetwork               *bool                          `json:"isolatedNetwork,omitempty"`
	NodeStateCounts               *NodeStateCounts_STATUS        `json:"nodeStateCounts,omitempty"`
	OsType                        *string                        `json:"osType,omitempty"`
	PropertyBag                   map[string]v1.JSON             `json:"propertyBag,omitempty"`
	PropertyStash                 genruntime.PropertyBag         `json:"$propertyBag,omitempty"`
	RemoteLoginPortPublicAccess   *string                        `json:"remoteLoginPortPublicAccess,omitempty"`
	ScaleSettings                 *ScaleSettings_STATUS          `json:"scaleSettings,omitempty"`
	Subnet                        *ResourceId_STATUS             `json:"subnet,omitempty"`
	TargetNodeCount               *int                           `json:"targetNodeCount,omitempty"`
	UserAccountCredentials        *UserAccountCredentials_STATUS `json:"userAccountCredentials,omitempty"`
	VirtualMachineImage           *VirtualMachineImage_STATUS    `json:"virtualMachineImage,omitempty"`
	VmPriority                    *string                        `json:"vmPriority,omitempty"`
	VmSize                        *string                        `json:"vmSize,omitempty"`
}

// Storage version of v1api20240401.ComputeInstanceProperties
// Compute Instance properties
type ComputeInstanceProperties struct {
	ApplicationSharingPolicy         *string                          `json:"applicationSharingPolicy,omitempty"`
	ComputeInstanceAuthorizationType *string                          `json:"computeInstanceAuthorizationType,omitempty"`
	CustomServices                   []CustomService                  `json:"customServices,omitempty"`
	EnableNodePublicIp               *bool                            `json:"enableNodePublicIp,omitempty"`
	PersonalComputeInstanceSettings  *PersonalComputeInstanceSettings `json:"personalComputeInstanceSettings,omitempty"`
	PropertyBag                      genruntime.PropertyBag           `json:"$propertyBag,omitempty"`
	Schedules                        *ComputeSchedules                `json:"schedules,omitempty"`
	SetupScripts                     *SetupScripts                    `json:"setupScripts,omitempty"`
	SshSettings                      *ComputeInstanceSshSettings      `json:"sshSettings,omitempty"`
	Subnet                           *ResourceId                      `json:"subnet,omitempty"`
	VmSize                           *string                          `json:"vmSize,omitempty"`
}

// Storage version of v1api20240401.ComputeInstanceProperties_STATUS
// Compute Instance properties
type ComputeInstanceProperties_STATUS struct {
	ApplicationSharingPolicy         *string                                      `json:"applicationSharingPolicy,omitempty"`
	Applications                     []ComputeInstanceApplication_STATUS          `json:"applications,omitempty"`
	ComputeInstanceAuthorizationType *string                                      `json:"computeInstanceAuthorizationType,omitempty"`
	ConnectivityEndpoints            *ComputeInstanceConnectivityEndpoints_STATUS `json:"connectivityEndpoints,omitempty"`
	Containers                       []ComputeInstanceContainer_STATUS            `json:"containers,omitempty"`
	CreatedBy                        *ComputeInstanceCreatedBy_STATUS             `json:"createdBy,omitempty"`
	CustomServices                   []CustomService_STATUS                       `json:"customServices,omitempty"`
	DataDisks                        []ComputeInstanceDataDisk_STATUS             `json:"dataDisks,omitempty"`
	DataMounts                       []ComputeInstanceDataMount_STATUS            `json:"dataMounts,omitempty"`
	EnableNodePublicIp               *bool                                        `json:"enableNodePublicIp,omitempty"`
	Errors                           []ErrorResponse_STATUS                       `json:"errors,omitempty"`
	LastOperation                    *ComputeInstanceLastOperation_STATUS         `json:"lastOperation,omitempty"`
	OsImageMetadata                  *ImageMetadata_STATUS                        `json:"osImageMetadata,omitempty"`
	PersonalComputeInstanceSettings  *PersonalComputeInstanceSettings_STATUS      `json:"personalComputeInstanceSettings,omitempty"`
	PropertyBag                      genruntime.PropertyBag                       `json:"$propertyBag,omitempty"`
	Schedules                        *ComputeSchedules_STATUS                     `json:"schedules,omitempty"`
	SetupScripts                     *SetupScripts_STATUS                         `json:"setupScripts,omitempty"`
	SshSettings                      *ComputeInstanceSshSettings_STATUS           `json:"sshSettings,omitempty"`
	State                            *string                                      `json:"state,omitempty"`
	Subnet                           *ResourceId_STATUS                           `json:"subnet,omitempty"`
	Versions                         *ComputeInstanceVersion_STATUS               `json:"versions,omitempty"`
	VmSize                           *string                                      `json:"vmSize,omitempty"`
}

// Storage version of v1api20240401.DatabricksProperties
// Properties of Databricks
type DatabricksProperties struct {
	DatabricksAccessToken *genruntime.SecretReference `json:"databricksAccessToken,omitempty"`
	PropertyBag           genruntime.PropertyBag      `json:"$propertyBag,omitempty"`
	WorkspaceUrl          *string                     `json:"workspaceUrl,omitempty"`
}

// Storage version of v1api20240401.DatabricksProperties_STATUS
// Properties of Databricks
type DatabricksProperties_STATUS struct {
	PropertyBag  genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	WorkspaceUrl *string                `json:"workspaceUrl,omitempty"`
}

// Storage version of v1api20240401.DataLakeAnalytics_Properties
type DataLakeAnalytics_Properties struct {
	DataLakeStoreAccountName *string                `json:"dataLakeStoreAccountName,omitempty"`
	PropertyBag              genruntime.PropertyBag `json:"$propertyBag,omitempty"`
}

// Storage version of v1api20240401.DataLakeAnalytics_Properties_STATUS
type DataLakeAnalytics_Properties_STATUS struct {
	DataLakeStoreAccountName *string                `json:"dataLakeStoreAccountName,omitempty"`
	PropertyBag              genruntime.PropertyBag `json:"$propertyBag,omitempty"`
}

// Storage version of v1api20240401.ErrorResponse_STATUS
// 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       *ErrorDetail_STATUS    `json:"error,omitempty"`
	PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
}

// Storage version of v1api20240401.HDInsightProperties
// HDInsight compute properties
type HDInsightProperties struct {
	Address              *string                       `json:"address,omitempty"`
	AdministratorAccount *VirtualMachineSshCredentials `json:"administratorAccount,omitempty"`
	PropertyBag          genruntime.PropertyBag        `json:"$propertyBag,omitempty"`
	SshPort              *int                          `json:"sshPort,omitempty"`
}

// Storage version of v1api20240401.HDInsightProperties_STATUS
// HDInsight compute properties
type HDInsightProperties_STATUS struct {
	Address              *string                              `json:"address,omitempty"`
	AdministratorAccount *VirtualMachineSshCredentials_STATUS `json:"administratorAccount,omitempty"`
	PropertyBag          genruntime.PropertyBag               `json:"$propertyBag,omitempty"`
	SshPort              *int                                 `json:"sshPort,omitempty"`
}

// Storage version of v1api20240401.KubernetesProperties
// Kubernetes properties
type KubernetesProperties struct {
	DefaultInstanceType            *string                        `json:"defaultInstanceType,omitempty"`
	ExtensionInstanceReleaseTrain  *string                        `json:"extensionInstanceReleaseTrain,omitempty"`
	ExtensionPrincipalId           *string                        `json:"extensionPrincipalId,omitempty" optionalConfigMapPair:"ExtensionPrincipalId"`
	ExtensionPrincipalIdFromConfig *genruntime.ConfigMapReference `json:"extensionPrincipalIdFromConfig,omitempty" optionalConfigMapPair:"ExtensionPrincipalId"`
	InstanceTypes                  map[string]InstanceTypeSchema  `json:"instanceTypes,omitempty"`
	Namespace                      *string                        `json:"namespace,omitempty"`
	PropertyBag                    genruntime.PropertyBag         `json:"$propertyBag,omitempty"`
	RelayConnectionString          *genruntime.SecretReference    `json:"relayConnectionString,omitempty"`
	ServiceBusConnectionString     *genruntime.SecretReference    `json:"serviceBusConnectionString,omitempty"`
	VcName                         *string                        `json:"vcName,omitempty"`
}

// Storage version of v1api20240401.KubernetesProperties_STATUS
// Kubernetes properties
type KubernetesProperties_STATUS struct {
	DefaultInstanceType           *string                              `json:"defaultInstanceType,omitempty"`
	ExtensionInstanceReleaseTrain *string                              `json:"extensionInstanceReleaseTrain,omitempty"`
	ExtensionPrincipalId          *string                              `json:"extensionPrincipalId,omitempty"`
	InstanceTypes                 map[string]InstanceTypeSchema_STATUS `json:"instanceTypes,omitempty"`
	Namespace                     *string                              `json:"namespace,omitempty"`
	PropertyBag                   genruntime.PropertyBag               `json:"$propertyBag,omitempty"`
	VcName                        *string                              `json:"vcName,omitempty"`
}

// Storage version of v1api20240401.SynapseSpark_Properties
type SynapseSpark_Properties struct {
	AutoPauseProperties *AutoPauseProperties   `json:"autoPauseProperties,omitempty"`
	AutoScaleProperties *AutoScaleProperties   `json:"autoScaleProperties,omitempty"`
	NodeCount           *int                   `json:"nodeCount,omitempty"`
	NodeSize            *string                `json:"nodeSize,omitempty"`
	NodeSizeFamily      *string                `json:"nodeSizeFamily,omitempty"`
	PoolName            *string                `json:"poolName,omitempty"`
	PropertyBag         genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	ResourceGroup       *string                `json:"resourceGroup,omitempty"`
	SparkVersion        *string                `json:"sparkVersion,omitempty"`
	SubscriptionId      *string                `json:"subscriptionId,omitempty"`
	WorkspaceName       *string                `json:"workspaceName,omitempty"`
}

// Storage version of v1api20240401.SynapseSpark_Properties_STATUS
type SynapseSpark_Properties_STATUS struct {
	AutoPauseProperties *AutoPauseProperties_STATUS `json:"autoPauseProperties,omitempty"`
	AutoScaleProperties *AutoScaleProperties_STATUS `json:"autoScaleProperties,omitempty"`
	NodeCount           *int                        `json:"nodeCount,omitempty"`
	NodeSize            *string                     `json:"nodeSize,omitempty"`
	NodeSizeFamily      *string                     `json:"nodeSizeFamily,omitempty"`
	PoolName            *string                     `json:"poolName,omitempty"`
	PropertyBag         genruntime.PropertyBag      `json:"$propertyBag,omitempty"`
	ResourceGroup       *string                     `json:"resourceGroup,omitempty"`
	SparkVersion        *string                     `json:"sparkVersion,omitempty"`
	SubscriptionId      *string                     `json:"subscriptionId,omitempty"`
	WorkspaceName       *string                     `json:"workspaceName,omitempty"`
}

// Storage version of v1api20240401.VirtualMachine_Properties
type VirtualMachine_Properties struct {
	Address                   *string                       `json:"address,omitempty"`
	AdministratorAccount      *VirtualMachineSshCredentials `json:"administratorAccount,omitempty"`
	IsNotebookInstanceCompute *bool                         `json:"isNotebookInstanceCompute,omitempty"`
	NotebookServerPort        *int                          `json:"notebookServerPort,omitempty"`
	PropertyBag               genruntime.PropertyBag        `json:"$propertyBag,omitempty"`
	SshPort                   *int                          `json:"sshPort,omitempty"`
	VirtualMachineSize        *string                       `json:"virtualMachineSize,omitempty"`
}

// Storage version of v1api20240401.VirtualMachine_Properties_STATUS
type VirtualMachine_Properties_STATUS struct {
	Address                   *string                              `json:"address,omitempty"`
	AdministratorAccount      *VirtualMachineSshCredentials_STATUS `json:"administratorAccount,omitempty"`
	IsNotebookInstanceCompute *bool                                `json:"isNotebookInstanceCompute,omitempty"`
	NotebookServerPort        *int                                 `json:"notebookServerPort,omitempty"`
	PropertyBag               genruntime.PropertyBag               `json:"$propertyBag,omitempty"`
	SshPort                   *int                                 `json:"sshPort,omitempty"`
	VirtualMachineSize        *string                              `json:"virtualMachineSize,omitempty"`
}

// Storage version of v1api20240401.AksNetworkingConfiguration
// Advance configuration for AKS networking
type AksNetworkingConfiguration struct {
	DnsServiceIP     *string                `json:"dnsServiceIP,omitempty"`
	DockerBridgeCidr *string                `json:"dockerBridgeCidr,omitempty"`
	PropertyBag      genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	ServiceCidr      *string                `json:"serviceCidr,omitempty"`

	// SubnetReference: Virtual network subnet resource ID the compute nodes belong to
	SubnetReference *genruntime.ResourceReference `armReference:"SubnetId" json:"subnetReference,omitempty"`
}

// Storage version of v1api20240401.AksNetworkingConfiguration_STATUS
// Advance configuration for AKS networking
type AksNetworkingConfiguration_STATUS struct {
	DnsServiceIP     *string                `json:"dnsServiceIP,omitempty"`
	DockerBridgeCidr *string                `json:"dockerBridgeCidr,omitempty"`
	PropertyBag      genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	ServiceCidr      *string                `json:"serviceCidr,omitempty"`
	SubnetId         *string                `json:"subnetId,omitempty"`
}

// Storage version of v1api20240401.AutoPauseProperties
// Auto pause properties
type AutoPauseProperties struct {
	DelayInMinutes *int                   `json:"delayInMinutes,omitempty"`
	Enabled        *bool                  `json:"enabled,omitempty"`
	PropertyBag    genruntime.PropertyBag `json:"$propertyBag,omitempty"`
}

// Storage version of v1api20240401.AutoPauseProperties_STATUS
// Auto pause properties
type AutoPauseProperties_STATUS struct {
	DelayInMinutes *int                   `json:"delayInMinutes,omitempty"`
	Enabled        *bool                  `json:"enabled,omitempty"`
	PropertyBag    genruntime.PropertyBag `json:"$propertyBag,omitempty"`
}

// Storage version of v1api20240401.AutoScaleProperties
// Auto scale properties
type AutoScaleProperties struct {
	Enabled      *bool                  `json:"enabled,omitempty"`
	MaxNodeCount *int                   `json:"maxNodeCount,omitempty"`
	MinNodeCount *int                   `json:"minNodeCount,omitempty"`
	PropertyBag  genruntime.PropertyBag `json:"$propertyBag,omitempty"`
}

// Storage version of v1api20240401.AutoScaleProperties_STATUS
// Auto scale properties
type AutoScaleProperties_STATUS struct {
	Enabled      *bool                  `json:"enabled,omitempty"`
	MaxNodeCount *int                   `json:"maxNodeCount,omitempty"`
	MinNodeCount *int                   `json:"minNodeCount,omitempty"`
	PropertyBag  genruntime.PropertyBag `json:"$propertyBag,omitempty"`
}

// Storage version of v1api20240401.ComputeInstanceApplication_STATUS
// Defines an Aml Instance application and its connectivity endpoint URI.
type ComputeInstanceApplication_STATUS struct {
	DisplayName *string                `json:"displayName,omitempty"`
	EndpointUri *string                `json:"endpointUri,omitempty"`
	PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
}

// Storage version of v1api20240401.ComputeInstanceConnectivityEndpoints_STATUS
// Defines all connectivity endpoints and properties for an ComputeInstance.
type ComputeInstanceConnectivityEndpoints_STATUS struct {
	PrivateIpAddress *string                `json:"privateIpAddress,omitempty"`
	PropertyBag      genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	PublicIpAddress  *string                `json:"publicIpAddress,omitempty"`
}

// Storage version of v1api20240401.ComputeInstanceContainer_STATUS
// Defines an Aml Instance container.
type ComputeInstanceContainer_STATUS struct {
	Autosave    *string                                `json:"autosave,omitempty"`
	Environment *ComputeInstanceEnvironmentInfo_STATUS `json:"environment,omitempty"`
	Gpu         *string                                `json:"gpu,omitempty"`
	Name        *string                                `json:"name,omitempty"`
	Network     *string                                `json:"network,omitempty"`
	PropertyBag genruntime.PropertyBag                 `json:"$propertyBag,omitempty"`
	Services    []map[string]v1.JSON                   `json:"services,omitempty"`
}

// Storage version of v1api20240401.ComputeInstanceCreatedBy_STATUS
// Describes information on user who created this ComputeInstance.
type ComputeInstanceCreatedBy_STATUS struct {
	PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	UserId      *string                `json:"userId,omitempty"`
	UserName    *string                `json:"userName,omitempty"`
	UserOrgId   *string                `json:"userOrgId,omitempty"`
}

// Storage version of v1api20240401.ComputeInstanceDataDisk_STATUS
// Defines an Aml Instance DataDisk.
type ComputeInstanceDataDisk_STATUS struct {
	Caching            *string                `json:"caching,omitempty"`
	DiskSizeGB         *int                   `json:"diskSizeGB,omitempty"`
	Lun                *int                   `json:"lun,omitempty"`
	PropertyBag        genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	StorageAccountType *string                `json:"storageAccountType,omitempty"`
}

// Storage version of v1api20240401.ComputeInstanceDataMount_STATUS
// Defines an Aml Instance DataMount.
type ComputeInstanceDataMount_STATUS struct {
	CreatedBy   *string                `json:"createdBy,omitempty"`
	Error       *string                `json:"error,omitempty"`
	MountAction *string                `json:"mountAction,omitempty"`
	MountName   *string                `json:"mountName,omitempty"`
	MountPath   *string                `json:"mountPath,omitempty"`
	MountState  *string                `json:"mountState,omitempty"`
	MountedOn   *string                `json:"mountedOn,omitempty"`
	PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	Source      *string                `json:"source,omitempty"`
	SourceType  *string                `json:"sourceType,omitempty"`
}

// Storage version of v1api20240401.ComputeInstanceLastOperation_STATUS
// The last operation on ComputeInstance.
type ComputeInstanceLastOperation_STATUS struct {
	OperationName    *string                `json:"operationName,omitempty"`
	OperationStatus  *string                `json:"operationStatus,omitempty"`
	OperationTime    *string                `json:"operationTime,omitempty"`
	OperationTrigger *string                `json:"operationTrigger,omitempty"`
	PropertyBag      genruntime.PropertyBag `json:"$propertyBag,omitempty"`
}

// Storage version of v1api20240401.ComputeInstanceSshSettings
// Specifies policy and settings for SSH access.
type ComputeInstanceSshSettings struct {
	AdminPublicKey  *string                `json:"adminPublicKey,omitempty"`
	PropertyBag     genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	SshPublicAccess *string                `json:"sshPublicAccess,omitempty"`
}

// Storage version of v1api20240401.ComputeInstanceSshSettings_STATUS
// Specifies policy and settings for SSH access.
type ComputeInstanceSshSettings_STATUS struct {
	AdminPublicKey  *string                `json:"adminPublicKey,omitempty"`
	AdminUserName   *string                `json:"adminUserName,omitempty"`
	PropertyBag     genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	SshPort         *int                   `json:"sshPort,omitempty"`
	SshPublicAccess *string                `json:"sshPublicAccess,omitempty"`
}

// Storage version of v1api20240401.ComputeInstanceVersion_STATUS
// Version of computeInstance.
type ComputeInstanceVersion_STATUS struct {
	PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	Runtime     *string                `json:"runtime,omitempty"`
}

// Storage version of v1api20240401.ComputeSchedules
// The list of schedules to be applied on the computes
type ComputeSchedules struct {
	ComputeStartStop []ComputeStartStopSchedule `json:"computeStartStop,omitempty"`
	PropertyBag      genruntime.PropertyBag     `json:"$propertyBag,omitempty"`
}

// Storage version of v1api20240401.ComputeSchedules_STATUS
// The list of schedules to be applied on the computes
type ComputeSchedules_STATUS struct {
	ComputeStartStop []ComputeStartStopSchedule_STATUS `json:"computeStartStop,omitempty"`
	PropertyBag      genruntime.PropertyBag            `json:"$propertyBag,omitempty"`
}

// Storage version of v1api20240401.CustomService
// Specifies the custom service configuration
type CustomService struct {
	Docker               *Docker                        `json:"docker,omitempty"`
	Endpoints            []Endpoint                     `json:"endpoints,omitempty"`
	EnvironmentVariables map[string]EnvironmentVariable `json:"environmentVariables,omitempty"`
	Image                *Image                         `json:"image,omitempty"`
	Name                 *string                        `json:"name,omitempty"`
	PropertyBag          genruntime.PropertyBag         `json:"$propertyBag,omitempty"`
	Volumes              []VolumeDefinition             `json:"volumes,omitempty"`
}

// Storage version of v1api20240401.CustomService_STATUS
// Specifies the custom service configuration
type CustomService_STATUS struct {
	Docker               *Docker_STATUS                        `json:"docker,omitempty"`
	Endpoints            []Endpoint_STATUS                     `json:"endpoints,omitempty"`
	EnvironmentVariables map[string]EnvironmentVariable_STATUS `json:"environmentVariables,omitempty"`
	Image                *Image_STATUS                         `json:"image,omitempty"`
	Name                 *string                               `json:"name,omitempty"`
	PropertyBag          genruntime.PropertyBag                `json:"$propertyBag,omitempty"`
	Volumes              []VolumeDefinition_STATUS             `json:"volumes,omitempty"`
}

// Storage version of v1api20240401.ErrorDetail_STATUS
// The error detail.
type ErrorDetail_STATUS struct {
	AdditionalInfo []ErrorAdditionalInfo_STATUS  `json:"additionalInfo,omitempty"`
	Code           *string                       `json:"code,omitempty"`
	Details        []ErrorDetail_STATUS_Unrolled `json:"details,omitempty"`
	Message        *string                       `json:"message,omitempty"`
	PropertyBag    genruntime.PropertyBag        `json:"$propertyBag,omitempty"`
	Target         *string                       `json:"target,omitempty"`
}

// Storage version of v1api20240401.ImageMetadata_STATUS
// Returns metadata about the operating system image for this compute instance.
type ImageMetadata_STATUS struct {
	CurrentImageVersion    *string                `json:"currentImageVersion,omitempty"`
	IsLatestOsImageVersion *bool                  `json:"isLatestOsImageVersion,omitempty"`
	LatestImageVersion     *string                `json:"latestImageVersion,omitempty"`
	PropertyBag            genruntime.PropertyBag `json:"$propertyBag,omitempty"`
}

// Storage version of v1api20240401.InstanceTypeSchema
// Instance type schema.
type InstanceTypeSchema struct {
	NodeSelector map[string]string             `json:"nodeSelector,omitempty"`
	PropertyBag  genruntime.PropertyBag        `json:"$propertyBag,omitempty"`
	Resources    *InstanceTypeSchema_Resources `json:"resources,omitempty"`
}

// Storage version of v1api20240401.InstanceTypeSchema_STATUS
// Instance type schema.
type InstanceTypeSchema_STATUS struct {
	NodeSelector map[string]string                    `json:"nodeSelector,omitempty"`
	PropertyBag  genruntime.PropertyBag               `json:"$propertyBag,omitempty"`
	Resources    *InstanceTypeSchema_Resources_STATUS `json:"resources,omitempty"`
}

// Storage version of v1api20240401.NodeStateCounts_STATUS
// Counts of various compute node states on the amlCompute.
type NodeStateCounts_STATUS struct {
	IdleNodeCount      *int                   `json:"idleNodeCount,omitempty"`
	LeavingNodeCount   *int                   `json:"leavingNodeCount,omitempty"`
	PreemptedNodeCount *int                   `json:"preemptedNodeCount,omitempty"`
	PreparingNodeCount *int                   `json:"preparingNodeCount,omitempty"`
	PropertyBag        genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	RunningNodeCount   *int                   `json:"runningNodeCount,omitempty"`
	UnusableNodeCount  *int                   `json:"unusableNodeCount,omitempty"`
}

// Storage version of v1api20240401.PersonalComputeInstanceSettings
// Settings for a personal compute instance.
type PersonalComputeInstanceSettings struct {
	AssignedUser *AssignedUser          `json:"assignedUser,omitempty"`
	PropertyBag  genruntime.PropertyBag `json:"$propertyBag,omitempty"`
}

// Storage version of v1api20240401.PersonalComputeInstanceSettings_STATUS
// Settings for a personal compute instance.
type PersonalComputeInstanceSettings_STATUS struct {
	AssignedUser *AssignedUser_STATUS   `json:"assignedUser,omitempty"`
	PropertyBag  genruntime.PropertyBag `json:"$propertyBag,omitempty"`
}

// Storage version of v1api20240401.ResourceId
// Represents a resource ID. For example, for a subnet, it is the resource URL for the subnet.
type ResourceId struct {
	PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`

	// +kubebuilder:validation:Required
	// Reference: The ID of the resource
	Reference *genruntime.ResourceReference `armReference:"Id" json:"reference,omitempty"`
}

// Storage version of v1api20240401.ResourceId_STATUS
// Represents a resource ID. For example, for a subnet, it is the resource URL for the subnet.
type ResourceId_STATUS struct {
	Id          *string                `json:"id,omitempty"`
	PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
}

// Storage version of v1api20240401.ScaleSettings
// scale settings for AML Compute
type ScaleSettings struct {
	MaxNodeCount                *int                   `json:"maxNodeCount,omitempty"`
	MinNodeCount                *int                   `json:"minNodeCount,omitempty"`
	NodeIdleTimeBeforeScaleDown *string                `json:"nodeIdleTimeBeforeScaleDown,omitempty"`
	PropertyBag                 genruntime.PropertyBag `json:"$propertyBag,omitempty"`
}

// Storage version of v1api20240401.ScaleSettings_STATUS
// scale settings for AML Compute
type ScaleSettings_STATUS struct {
	MaxNodeCount                *int                   `json:"maxNodeCount,omitempty"`
	MinNodeCount                *int                   `json:"minNodeCount,omitempty"`
	NodeIdleTimeBeforeScaleDown *string                `json:"nodeIdleTimeBeforeScaleDown,omitempty"`
	PropertyBag                 genruntime.PropertyBag `json:"$propertyBag,omitempty"`
}

// Storage version of v1api20240401.SetupScripts
// Details of customized scripts to execute for setting up the cluster.
type SetupScripts struct {
	PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	Scripts     *ScriptsToExecute      `json:"scripts,omitempty"`
}

// Storage version of v1api20240401.SetupScripts_STATUS
// Details of customized scripts to execute for setting up the cluster.
type SetupScripts_STATUS struct {
	PropertyBag genruntime.PropertyBag   `json:"$propertyBag,omitempty"`
	Scripts     *ScriptsToExecute_STATUS `json:"scripts,omitempty"`
}

// Storage version of v1api20240401.SslConfiguration
// The ssl configuration for scoring
type SslConfiguration struct {
	Cert                    *genruntime.SecretReference `json:"cert,omitempty"`
	Cname                   *string                     `json:"cname,omitempty"`
	Key                     *genruntime.SecretReference `json:"key,omitempty"`
	LeafDomainLabel         *string                     `json:"leafDomainLabel,omitempty"`
	OverwriteExistingDomain *bool                       `json:"overwriteExistingDomain,omitempty"`
	PropertyBag             genruntime.PropertyBag      `json:"$propertyBag,omitempty"`
	Status                  *string                     `json:"status,omitempty"`
}

// Storage version of v1api20240401.SslConfiguration_STATUS
// The ssl configuration for scoring
type SslConfiguration_STATUS struct {
	Cname                   *string                `json:"cname,omitempty"`
	LeafDomainLabel         *string                `json:"leafDomainLabel,omitempty"`
	OverwriteExistingDomain *bool                  `json:"overwriteExistingDomain,omitempty"`
	PropertyBag             genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	Status                  *string                `json:"status,omitempty"`
}

// Storage version of v1api20240401.SystemService_STATUS
// A system service running on a compute.
type SystemService_STATUS struct {
	PropertyBag       genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	PublicIpAddress   *string                `json:"publicIpAddress,omitempty"`
	SystemServiceType *string                `json:"systemServiceType,omitempty"`
	Version           *string                `json:"version,omitempty"`
}

// Storage version of v1api20240401.UserAccountCredentials
// Settings for user account that gets created on each on the nodes of a compute.
type UserAccountCredentials struct {
	AdminUserName         *string                     `json:"adminUserName,omitempty"`
	AdminUserPassword     *genruntime.SecretReference `json:"adminUserPassword,omitempty"`
	AdminUserSshPublicKey *genruntime.SecretReference `json:"adminUserSshPublicKey,omitempty"`
	PropertyBag           genruntime.PropertyBag      `json:"$propertyBag,omitempty"`
}

// Storage version of v1api20240401.UserAccountCredentials_STATUS
// Settings for user account that gets created on each on the nodes of a compute.
type UserAccountCredentials_STATUS struct {
	AdminUserName *string                `json:"adminUserName,omitempty"`
	PropertyBag   genruntime.PropertyBag `json:"$propertyBag,omitempty"`
}

// Storage version of v1api20240401.VirtualMachineImage
// Virtual Machine image for Windows AML Compute
type VirtualMachineImage struct {
	PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`

	// +kubebuilder:validation:Required
	// Reference: Virtual Machine image path
	Reference *genruntime.ResourceReference `armReference:"Id" json:"reference,omitempty"`
}

// Storage version of v1api20240401.VirtualMachineImage_STATUS
// Virtual Machine image for Windows AML Compute
type VirtualMachineImage_STATUS struct {
	Id          *string                `json:"id,omitempty"`
	PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
}

// Storage version of v1api20240401.VirtualMachineSshCredentials
// Admin credentials for virtual machine
type VirtualMachineSshCredentials struct {
	Password       *genruntime.SecretReference `json:"password,omitempty"`
	PrivateKeyData *genruntime.SecretReference `json:"privateKeyData,omitempty"`
	PropertyBag    genruntime.PropertyBag      `json:"$propertyBag,omitempty"`
	PublicKeyData  *genruntime.SecretReference `json:"publicKeyData,omitempty"`
	Username       *string                     `json:"username,omitempty"`
}

// Storage version of v1api20240401.VirtualMachineSshCredentials_STATUS
// Admin credentials for virtual machine
type VirtualMachineSshCredentials_STATUS struct {
	PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	Username    *string                `json:"username,omitempty"`
}

// Storage version of v1api20240401.AssignedUser
// A user that can be assigned to a compute instance.
type AssignedUser struct {
	ObjectId           *string                        `json:"objectId,omitempty" optionalConfigMapPair:"ObjectId"`
	ObjectIdFromConfig *genruntime.ConfigMapReference `json:"objectIdFromConfig,omitempty" optionalConfigMapPair:"ObjectId"`
	PropertyBag        genruntime.PropertyBag         `json:"$propertyBag,omitempty"`
	TenantId           *string                        `json:"tenantId,omitempty" optionalConfigMapPair:"TenantId"`
	TenantIdFromConfig *genruntime.ConfigMapReference `json:"tenantIdFromConfig,omitempty" optionalConfigMapPair:"TenantId"`
}

// Storage version of v1api20240401.AssignedUser_STATUS
// A user that can be assigned to a compute instance.
type AssignedUser_STATUS struct {
	ObjectId    *string                `json:"objectId,omitempty"`
	PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	TenantId    *string                `json:"tenantId,omitempty"`
}

// Storage version of v1api20240401.ComputeInstanceEnvironmentInfo_STATUS
// Environment information
type ComputeInstanceEnvironmentInfo_STATUS struct {
	Name        *string                `json:"name,omitempty"`
	PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	Version     *string                `json:"version,omitempty"`
}

// Storage version of v1api20240401.ComputeStartStopSchedule
// Compute start stop schedule properties
type ComputeStartStopSchedule struct {
	Action      *string                `json:"action,omitempty"`
	Cron        *Cron                  `json:"cron,omitempty"`
	PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	Recurrence  *Recurrence            `json:"recurrence,omitempty"`
	Schedule    *ScheduleBase          `json:"schedule,omitempty"`
	Status      *string                `json:"status,omitempty"`
	TriggerType *string                `json:"triggerType,omitempty"`
}

// Storage version of v1api20240401.ComputeStartStopSchedule_STATUS
// Compute start stop schedule properties
type ComputeStartStopSchedule_STATUS struct {
	Action             *string                `json:"action,omitempty"`
	Cron               *Cron_STATUS           `json:"cron,omitempty"`
	Id                 *string                `json:"id,omitempty"`
	PropertyBag        genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	ProvisioningStatus *string                `json:"provisioningStatus,omitempty"`
	Recurrence         *Recurrence_STATUS     `json:"recurrence,omitempty"`
	Schedule           *ScheduleBase_STATUS   `json:"schedule,omitempty"`
	Status             *string                `json:"status,omitempty"`
	TriggerType        *string                `json:"triggerType,omitempty"`
}

// Storage version of v1api20240401.Docker
// Docker container configuration
type Docker struct {
	Privileged  *bool                  `json:"privileged,omitempty"`
	PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
}

// Storage version of v1api20240401.Docker_STATUS
// Docker container configuration
type Docker_STATUS struct {
	Privileged  *bool                  `json:"privileged,omitempty"`
	PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
}

// Storage version of v1api20240401.Endpoint
// Describes the endpoint configuration for the container
type Endpoint struct {
	HostIp      *string                `json:"hostIp,omitempty"`
	Name        *string                `json:"name,omitempty"`
	PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	Protocol    *string                `json:"protocol,omitempty"`
	Published   *int                   `json:"published,omitempty"`
	Target      *int                   `json:"target,omitempty"`
}

// Storage version of v1api20240401.Endpoint_STATUS
// Describes the endpoint configuration for the container
type Endpoint_STATUS struct {
	HostIp      *string                `json:"hostIp,omitempty"`
	Name        *string                `json:"name,omitempty"`
	PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	Protocol    *string                `json:"protocol,omitempty"`
	Published   *int                   `json:"published,omitempty"`
	Target      *int                   `json:"target,omitempty"`
}

// Storage version of v1api20240401.EnvironmentVariable
// Environment Variables for the container
type EnvironmentVariable struct {
	PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	Type        *string                `json:"type,omitempty"`
	Value       *string                `json:"value,omitempty"`
}

// Storage version of v1api20240401.EnvironmentVariable_STATUS
// Environment Variables for the container
type EnvironmentVariable_STATUS struct {
	PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	Type        *string                `json:"type,omitempty"`
	Value       *string                `json:"value,omitempty"`
}

// Storage version of v1api20240401.ErrorAdditionalInfo_STATUS
// The resource management error additional info.
type ErrorAdditionalInfo_STATUS struct {
	Info        map[string]v1.JSON     `json:"info,omitempty"`
	PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	Type        *string                `json:"type,omitempty"`
}

// Storage version of v1api20240401.ErrorDetail_STATUS_Unrolled
type ErrorDetail_STATUS_Unrolled struct {
	AdditionalInfo []ErrorAdditionalInfo_STATUS `json:"additionalInfo,omitempty"`
	Code           *string                      `json:"code,omitempty"`
	Message        *string                      `json:"message,omitempty"`
	PropertyBag    genruntime.PropertyBag       `json:"$propertyBag,omitempty"`
	Target         *string                      `json:"target,omitempty"`
}

// Storage version of v1api20240401.Image
// Describes the Image Specifications
type Image struct {
	PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	Reference   *string                `json:"reference,omitempty"`
	Type        *string                `json:"type,omitempty"`
}

// Storage version of v1api20240401.Image_STATUS
// Describes the Image Specifications
type Image_STATUS struct {
	PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	Reference   *string                `json:"reference,omitempty"`
	Type        *string                `json:"type,omitempty"`
}

// Storage version of v1api20240401.InstanceTypeSchema_Resources
type InstanceTypeSchema_Resources struct {
	Limits      map[string]string      `json:"limits,omitempty"`
	PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	Requests    map[string]string      `json:"requests,omitempty"`
}

// Storage version of v1api20240401.InstanceTypeSchema_Resources_STATUS
type InstanceTypeSchema_Resources_STATUS struct {
	Limits      map[string]string      `json:"limits,omitempty"`
	PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	Requests    map[string]string      `json:"requests,omitempty"`
}

// Storage version of v1api20240401.ScriptsToExecute
// Customized setup scripts
type ScriptsToExecute struct {
	CreationScript *ScriptReference       `json:"creationScript,omitempty"`
	PropertyBag    genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	StartupScript  *ScriptReference       `json:"startupScript,omitempty"`
}

// Storage version of v1api20240401.ScriptsToExecute_STATUS
// Customized setup scripts
type ScriptsToExecute_STATUS struct {
	CreationScript *ScriptReference_STATUS `json:"creationScript,omitempty"`
	PropertyBag    genruntime.PropertyBag  `json:"$propertyBag,omitempty"`
	StartupScript  *ScriptReference_STATUS `json:"startupScript,omitempty"`
}

// Storage version of v1api20240401.VolumeDefinition
// Describes the volume configuration for the container
type VolumeDefinition struct {
	Bind        *BindOptions           `json:"bind,omitempty"`
	Consistency *string                `json:"consistency,omitempty"`
	PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	ReadOnly    *bool                  `json:"readOnly,omitempty"`
	Source      *string                `json:"source,omitempty"`
	Target      *string                `json:"target,omitempty"`
	Tmpfs       *TmpfsOptions          `json:"tmpfs,omitempty"`
	Type        *string                `json:"type,omitempty"`
	Volume      *VolumeOptions         `json:"volume,omitempty"`
}

// Storage version of v1api20240401.VolumeDefinition_STATUS
// Describes the volume configuration for the container
type VolumeDefinition_STATUS struct {
	Bind        *BindOptions_STATUS    `json:"bind,omitempty"`
	Consistency *string                `json:"consistency,omitempty"`
	PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	ReadOnly    *bool                  `json:"readOnly,omitempty"`
	Source      *string                `json:"source,omitempty"`
	Target      *string                `json:"target,omitempty"`
	Tmpfs       *TmpfsOptions_STATUS   `json:"tmpfs,omitempty"`
	Type        *string                `json:"type,omitempty"`
	Volume      *VolumeOptions_STATUS  `json:"volume,omitempty"`
}

// Storage version of v1api20240401.BindOptions
// Describes the bind options for the container
type BindOptions struct {
	CreateHostPath *bool                  `json:"createHostPath,omitempty"`
	Propagation    *string                `json:"propagation,omitempty"`
	PropertyBag    genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	Selinux        *string                `json:"selinux,omitempty"`
}

// Storage version of v1api20240401.BindOptions_STATUS
// Describes the bind options for the container
type BindOptions_STATUS struct {
	CreateHostPath *bool                  `json:"createHostPath,omitempty"`
	Propagation    *string                `json:"propagation,omitempty"`
	PropertyBag    genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	Selinux        *string                `json:"selinux,omitempty"`
}

// Storage version of v1api20240401.Cron
// The workflow trigger cron for ComputeStartStop schedule type.
type Cron struct {
	Expression  *string                `json:"expression,omitempty"`
	PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	StartTime   *string                `json:"startTime,omitempty"`
	TimeZone    *string                `json:"timeZone,omitempty"`
}

// Storage version of v1api20240401.Cron_STATUS
// The workflow trigger cron for ComputeStartStop schedule type.
type Cron_STATUS struct {
	Expression  *string                `json:"expression,omitempty"`
	PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	StartTime   *string                `json:"startTime,omitempty"`
	TimeZone    *string                `json:"timeZone,omitempty"`
}

// Storage version of v1api20240401.Recurrence
// The workflow trigger recurrence for ComputeStartStop schedule type.
type Recurrence struct {
	Frequency   *string                    `json:"frequency,omitempty"`
	Interval    *int                       `json:"interval,omitempty"`
	PropertyBag genruntime.PropertyBag     `json:"$propertyBag,omitempty"`
	Schedule    *ComputeRecurrenceSchedule `json:"schedule,omitempty"`
	StartTime   *string                    `json:"startTime,omitempty"`
	TimeZone    *string                    `json:"timeZone,omitempty"`
}

// Storage version of v1api20240401.Recurrence_STATUS
// The workflow trigger recurrence for ComputeStartStop schedule type.
type Recurrence_STATUS struct {
	Frequency   *string                           `json:"frequency,omitempty"`
	Interval    *int                              `json:"interval,omitempty"`
	PropertyBag genruntime.PropertyBag            `json:"$propertyBag,omitempty"`
	Schedule    *ComputeRecurrenceSchedule_STATUS `json:"schedule,omitempty"`
	StartTime   *string                           `json:"startTime,omitempty"`
	TimeZone    *string                           `json:"timeZone,omitempty"`
}

// Storage version of v1api20240401.ScheduleBase
type ScheduleBase struct {
	PropertyBag        genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	ProvisioningStatus *string                `json:"provisioningStatus,omitempty"`

	// Reference: A system assigned id for the schedule.
	Reference *genruntime.ResourceReference `armReference:"Id" json:"reference,omitempty"`
	Status    *string                       `json:"status,omitempty"`
}

// Storage version of v1api20240401.ScheduleBase_STATUS
type ScheduleBase_STATUS struct {
	Id                 *string                `json:"id,omitempty"`
	PropertyBag        genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	ProvisioningStatus *string                `json:"provisioningStatus,omitempty"`
	Status             *string                `json:"status,omitempty"`
}

// Storage version of v1api20240401.ScriptReference
// Script reference
type ScriptReference struct {
	PropertyBag     genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	ScriptArguments *string                `json:"scriptArguments,omitempty"`
	ScriptData      *string                `json:"scriptData,omitempty"`
	ScriptSource    *string                `json:"scriptSource,omitempty"`
	Timeout         *string                `json:"timeout,omitempty"`
}

// Storage version of v1api20240401.ScriptReference_STATUS
// Script reference
type ScriptReference_STATUS struct {
	PropertyBag     genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	ScriptArguments *string                `json:"scriptArguments,omitempty"`
	ScriptData      *string                `json:"scriptData,omitempty"`
	ScriptSource    *string                `json:"scriptSource,omitempty"`
	Timeout         *string                `json:"timeout,omitempty"`
}

// Storage version of v1api20240401.TmpfsOptions
// Describes the tmpfs options for the container
type TmpfsOptions struct {
	PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	Size        *int                   `json:"size,omitempty"`
}

// Storage version of v1api20240401.TmpfsOptions_STATUS
// Describes the tmpfs options for the container
type TmpfsOptions_STATUS struct {
	PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	Size        *int                   `json:"size,omitempty"`
}

// Storage version of v1api20240401.VolumeOptions
// Describes the volume options for the container
type VolumeOptions struct {
	Nocopy      *bool                  `json:"nocopy,omitempty"`
	PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
}

// Storage version of v1api20240401.VolumeOptions_STATUS
// Describes the volume options for the container
type VolumeOptions_STATUS struct {
	Nocopy      *bool                  `json:"nocopy,omitempty"`
	PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
}

// Storage version of v1api20240401.ComputeRecurrenceSchedule
type ComputeRecurrenceSchedule struct {
	Hours       []int                  `json:"hours,omitempty"`
	Minutes     []int                  `json:"minutes,omitempty"`
	MonthDays   []int                  `json:"monthDays,omitempty"`
	PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	WeekDays    []string               `json:"weekDays,omitempty"`
}

// Storage version of v1api20240401.ComputeRecurrenceSchedule_STATUS
type ComputeRecurrenceSchedule_STATUS struct {
	Hours       []int                  `json:"hours,omitempty"`
	Minutes     []int                  `json:"minutes,omitempty"`
	MonthDays   []int                  `json:"monthDays,omitempty"`
	PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
	WeekDays    []string               `json:"weekDays,omitempty"`
}

func init() {
	SchemeBuilder.Register(&WorkspacesCompute{}, &WorkspacesComputeList{})
}
