// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
// Code generated by Microsoft (R) Go Code Generator. DO NOT EDIT.

package armworkloadorchestration

import "time"

// AvailableSolutionTemplateVersion - Available Solution template Version along with latest revision
type AvailableSolutionTemplateVersion struct {
	// REQUIRED; Has this solution template version been configured
	IsConfigured *bool

	// REQUIRED; Latest Configuration Revision
	LatestConfigRevision *string

	// REQUIRED; Solution template Version
	SolutionTemplateVersion *string
}

// BulkDeploySolutionParameter - Bulk deploy solution parameter
type BulkDeploySolutionParameter struct {
	// REQUIRED; Targets to which solution needs to be deployed
	Targets []*BulkDeployTargetDetails
}

// BulkDeployTargetDetails - Bulk deploy target details
type BulkDeployTargetDetails struct {
	// REQUIRED; ArmId of Target Solution Version
	SolutionVersionID *string
}

// BulkPublishSolutionParameter - Bulk publish solution parameter
type BulkPublishSolutionParameter struct {
	// REQUIRED; Targets to which solution needs to be published
	Targets []*BulkPublishTargetDetails

	// Solution dependencies
	SolutionDependencies []*SolutionDependencyParameter

	// Name of the solution instance
	SolutionInstanceName *string
}

// BulkPublishTargetDetails - Bulk publish target details
type BulkPublishTargetDetails struct {
	// REQUIRED; ArmId of Target
	TargetID *string

	// Name of the solution instance
	SolutionInstanceName *string
}

// Capability, to match in Solution Templates & Targets
type Capability struct {
	// REQUIRED; Description of Capability
	Description *string

	// REQUIRED; Name of Capability
	Name *string

	// State of resource
	State *ResourceState
}

// ComponentStatus - Component Status
type ComponentStatus struct {
	// Component name
	Name *string

	// Component status
	Status *string
}

// ConfigTemplate - Config Template Resource. Contains configuration expressions using the predefined expression language.
type ConfigTemplate struct {
	// REQUIRED; The geo-location where the resource lives
	Location *string

	// The resource-specific properties for this resource.
	Properties *ConfigTemplateProperties

	// Resource tags.
	Tags map[string]*string

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

	// READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

// ConfigTemplateListResult - The response of a ConfigTemplate list operation.
type ConfigTemplateListResult struct {
	// REQUIRED; The ConfigTemplate items on this page
	Value []*ConfigTemplate

	// The link to the next page of items
	NextLink *string
}

// ConfigTemplateProperties - Config Template Properties
type ConfigTemplateProperties struct {
	// REQUIRED; Description of config template
	Description *string

	// READ-ONLY; Latest config template version
	LatestVersion *string

	// READ-ONLY; Provisioning state of resource
	ProvisioningState *ProvisioningState
}

// ConfigTemplateUpdate - The type used for update operations of the ConfigTemplate.
type ConfigTemplateUpdate struct {
	// The resource-specific properties for this resource.
	Properties *ConfigTemplateUpdateProperties

	// Resource tags.
	Tags map[string]*string
}

// ConfigTemplateUpdateProperties - The updatable properties of the ConfigTemplate.
type ConfigTemplateUpdateProperties struct {
	// Description of config template
	Description *string
}

// ConfigTemplateVersion - Config Template Version Resource
type ConfigTemplateVersion struct {
	// The resource-specific properties for this resource.
	Properties *ConfigTemplateVersionProperties

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

	// READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

// ConfigTemplateVersionListResult - The response of a ConfigTemplateVersion list operation.
type ConfigTemplateVersionListResult struct {
	// REQUIRED; The ConfigTemplateVersion items on this page
	Value []*ConfigTemplateVersion

	// The link to the next page of items
	NextLink *string
}

// ConfigTemplateVersionProperties - Config Template Version Properties
type ConfigTemplateVersionProperties struct {
	// REQUIRED; Configuration values
	Configurations *string

	// READ-ONLY; Provisioning state of resource
	ProvisioningState *ProvisioningState
}

// ConfigTemplateVersionWithUpdateType - Config Template Version With Update Type
type ConfigTemplateVersionWithUpdateType struct {
	// REQUIRED; Config Template Version
	ConfigTemplateVersion *ConfigTemplateVersion

	// Update type
	UpdateType *UpdateType

	// Version to create
	Version *string
}

// Context Resource
type Context struct {
	// REQUIRED; The geo-location where the resource lives
	Location *string

	// The resource-specific properties for this resource.
	Properties *ContextProperties

	// Resource tags.
	Tags map[string]*string

	// READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

// ContextListResult - The response of a Context list operation.
type ContextListResult struct {
	// REQUIRED; The Context items on this page
	Value []*Context

	// The link to the next page of items
	NextLink *string
}

// ContextProperties - Context Properties
type ContextProperties struct {
	// REQUIRED; List of Capabilities
	Capabilities []*Capability

	// REQUIRED; List of Hierarchies
	Hierarchies []*Hierarchy

	// READ-ONLY; Provisioning state of resource
	ProvisioningState *ProvisioningState
}

// ContextUpdate - The type used for update operations of the Context.
type ContextUpdate struct {
	// The resource-specific properties for this resource.
	Properties *ContextUpdateProperties

	// Resource tags.
	Tags map[string]*string
}

// ContextUpdateProperties - The updatable properties of the Context.
type ContextUpdateProperties struct {
	// List of Capabilities
	Capabilities []*Capability

	// List of Hierarchies
	Hierarchies []*Hierarchy
}

// DeployJobParameter - Parameters for a deployment job.
type DeployJobParameter struct {
	// REQUIRED; Job type discriminator value
	JobType   *JobType
	Parameter *InstallSolutionParameter
}

// GetJobParameterBase implements the JobParameterBaseClassification interface for type DeployJobParameter.
func (d *DeployJobParameter) GetJobParameterBase() *JobParameterBase {
	return &JobParameterBase{
		JobType: d.JobType,
	}
}

// DeployJobStepStatistics - Deploy statistics for a job step, including total, success, and failed counts.
type DeployJobStepStatistics struct {
	// REQUIRED; Statistics type discriminator value
	StatisticsType *JobType

	// Count of failed items in this step
	FailedCount *int32

	// Count of successful items in this step
	SuccessCount *int32

	// Total count of items processed in this step
	TotalCount *int32
}

// GetJobStepStatisticsBase implements the JobStepStatisticsBaseClassification interface for type DeployJobStepStatistics.
func (d *DeployJobStepStatistics) GetJobStepStatisticsBase() *JobStepStatisticsBase {
	return &JobStepStatisticsBase{
		StatisticsType: d.StatisticsType,
	}
}

// DeploymentStatus - Deployment Status
type DeploymentStatus struct {
	// Indicates if Instance is deployed
	Deployed *int32

	// The expected running job id
	ExpectedRunningJobID *int32

	// Deployment Generation
	Generation *int32

	// The lastModified of the Status
	LastModified *time.Time

	// The running job id
	RunningJobID *int32

	// Deployment status
	Status *string

	// Status details
	StatusDetails *string

	// Target resource statuses
	TargetStatuses []*TargetStatus
}

// Diagnostic - A Diagnostic resource.
type Diagnostic struct {
	// REQUIRED; The geo-location where the resource lives
	Location         *string
	ExtendedLocation *ExtendedLocation

	// The resource-specific properties for this resource.
	Properties *DiagnosticProperties

	// Resource tags.
	Tags map[string]*string

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

	// READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

// DiagnosticListResult - The response of a Diagnostic list operation.
type DiagnosticListResult struct {
	// REQUIRED; The Diagnostic items on this page
	Value []*Diagnostic

	// The link to the next page of items
	NextLink *string
}

// DiagnosticProperties - The properties of a Diagnostic resource.
type DiagnosticProperties struct {
	// READ-ONLY; The status of the last operation.
	ProvisioningState *ProvisioningState
}

// DiagnosticUpdate - The type used for update operations of the Diagnostic.
type DiagnosticUpdate struct {
	// The resource-specific properties for this resource.
	Properties *DiagnosticUpdateProperties

	// Resource tags.
	Tags map[string]*string
}

// DiagnosticUpdateProperties - The updatable properties of the Diagnostic.
type DiagnosticUpdateProperties struct {
}

// DynamicSchema Resource
type DynamicSchema struct {
	// The resource-specific properties for this resource.
	Properties *DynamicSchemaProperties

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

	// READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

// DynamicSchemaListResult - The response of a DynamicSchema list operation.
type DynamicSchemaListResult struct {
	// REQUIRED; The DynamicSchema items on this page
	Value []*DynamicSchema

	// The link to the next page of items
	NextLink *string
}

// DynamicSchemaProperties - DynamicSchema Properties
type DynamicSchemaProperties struct {
	// READ-ONLY; Type of configuration model
	ConfigurationModel *ConfigurationModel

	// READ-ONLY; Type of configuration
	ConfigurationType *ConfigurationType

	// READ-ONLY; Provisioning state of resource
	ProvisioningState *ProvisioningState
}

// DynamicSchemaVersion - Dynamic Schema Version Resource
type DynamicSchemaVersion struct {
	// The resource-specific properties for this resource.
	Properties *SchemaVersionProperties

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

	// READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

// DynamicSchemaVersionListResult - The response of a DynamicSchemaVersion list operation.
type DynamicSchemaVersionListResult struct {
	// REQUIRED; The DynamicSchemaVersion items on this page
	Value []*DynamicSchemaVersion

	// The link to the next page of items
	NextLink *string
}

// ErrorAction - Error Action Properties
type ErrorAction struct {
	// Max tolerated failures
	MaxToleratedFailures *int32

	// Error action mode
	Mode *ErrorActionMode
}

// ErrorAdditionalInfo - The resource management error additional info.
type ErrorAdditionalInfo struct {
	// READ-ONLY; The additional info.
	Info any

	// READ-ONLY; The additional info type.
	Type *string
}

// ErrorDetail - The error detail.
type ErrorDetail struct {
	// READ-ONLY; The error additional info.
	AdditionalInfo []*ErrorAdditionalInfo

	// READ-ONLY; The error code.
	Code *string

	// READ-ONLY; The error details.
	Details []*ErrorDetail

	// READ-ONLY; The error message.
	Message *string

	// READ-ONLY; The error target.
	Target *string
}

// Execution Resource
type Execution struct {
	ExtendedLocation *ExtendedLocation

	// The resource-specific properties for this resource.
	Properties *ExecutionProperties

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

	// READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

// ExecutionListResult - The response of a Execution list operation.
type ExecutionListResult struct {
	// REQUIRED; The Execution items on this page
	Value []*Execution

	// The link to the next page of items
	NextLink *string
}

// ExecutionProperties - Execution Properties
type ExecutionProperties struct {
	// REQUIRED; Workflow version of execution
	WorkflowVersionID *string

	// Execution specification
	Specification map[string]any

	// READ-ONLY; Provisioning state of resource
	ProvisioningState *ProvisioningState

	// READ-ONLY; Status of Execution
	Status *ExecutionStatus
}

// ExecutionStatus - Execution Status
type ExecutionStatus struct {
	// target resource statuses
	StageHistory []*StageStatus

	// Deployment status
	Status *int32

	// status details
	StatusMessage *string

	// The lastModified timestamp of the Status
	UpdateTime *time.Time
}

// ExtendedLocation - The complex type of the extended location.
type ExtendedLocation struct {
	// REQUIRED; The name of the extended location.
	Name *string

	// REQUIRED; The type of the extended location.
	Type *ExtendedLocationType
}

// Hierarchy, to tag Sites / Hierarchy Provider nodes with what they represent
type Hierarchy struct {
	// REQUIRED; Description of Hierarchy
	Description *string

	// REQUIRED; Name of Hierarchy
	Name *string
}

// InstallSolutionParameter - Install Solution Parameter
type InstallSolutionParameter struct {
	// REQUIRED; Solution Version ARM Id
	SolutionVersionID *string
}

// Instance Resource. Represents a deployment object.
type Instance struct {
	ExtendedLocation *ExtendedLocation

	// The resource-specific properties for this resource.
	Properties *InstanceProperties

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

	// READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

// InstanceHistory Resource
type InstanceHistory struct {
	ExtendedLocation *ExtendedLocation

	// The resource-specific properties for this resource.
	Properties *InstanceHistoryProperties

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

	// READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

// InstanceHistoryListResult - The response of a InstanceHistory list operation.
type InstanceHistoryListResult struct {
	// REQUIRED; The InstanceHistory items on this page
	Value []*InstanceHistory

	// The link to the next page of items
	NextLink *string
}

// InstanceHistoryProperties - Instance History Properties
type InstanceHistoryProperties struct {
	// READ-ONLY; Solution version of instance
	SolutionVersion *SolutionVersionSnapshot

	// READ-ONLY; Target of instance
	Target *TargetSnapshot

	// State of instance
	ActiveState *ActiveState

	// READ-ONLY; Provisioning state of resource
	ProvisioningState *ProvisioningState

	// READ-ONLY; Reconciliation policy of instance
	ReconciliationPolicy *ReconciliationPolicyProperties

	// READ-ONLY; Scope of instance
	SolutionScope *string

	// READ-ONLY; Deployment Status of instance
	Status *DeploymentStatus
}

// InstanceListResult - The response of a Instance list operation.
type InstanceListResult struct {
	// REQUIRED; The Instance items on this page
	Value []*Instance

	// The link to the next page of items
	NextLink *string
}

// InstanceProperties - Instance Properties
type InstanceProperties struct {
	// REQUIRED; Solution version of instance
	SolutionVersionID *string

	// REQUIRED; Target of instance
	TargetID *string

	// State of instance
	ActiveState *ActiveState

	// Reconciliation policy of instance
	ReconciliationPolicy *ReconciliationPolicyProperties

	// Scope of instance
	SolutionScope *string

	// READ-ONLY; Deployment timestamp of instance
	DeploymentTimestampEpoch *int64

	// READ-ONLY; Provisioning state of resource
	ProvisioningState *ProvisioningState

	// READ-ONLY; Status of instance
	Status *DeploymentStatus
}

// Job extension resource for tracking job execution and substatuses.
type Job struct {
	// The resource-specific properties for this resource.
	Properties *JobProperties

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

	// READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

// JobListResult - The response of a Job list operation.
type JobListResult struct {
	// REQUIRED; The Job items on this page
	Value []*Job

	// The link to the next page of items
	NextLink *string
}

// JobParameterBase - Base Job Parameter
type JobParameterBase struct {
	// REQUIRED; Job type discriminator value
	JobType *JobType
}

// GetJobParameterBase implements the JobParameterBaseClassification interface for type JobParameterBase.
func (j *JobParameterBase) GetJobParameterBase() *JobParameterBase { return j }

// JobProperties - Properties of a Job resource, including type, status, parameters, steps, and error details.
type JobProperties struct {
	// REQUIRED; The type of job.
	JobType *JobType

	// REQUIRED; Status of the job.
	Status *JobStatus

	// Correlation ID for tracking.
	CorrelationID *string

	// End time of the job (ISO8601).
	EndTime *time.Time

	// Parameters for the job.
	JobParameter JobParameterBaseClassification

	// Start time of the job (ISO8601).
	StartTime *time.Time

	// Steps and substatuses for the job.
	Steps []*JobStep

	// The OID or identity that triggered the job.
	TriggeredBy *string

	// READ-ONLY; Error Details if any failure is there
	ErrorDetails *ErrorDetail

	// READ-ONLY; Provisioning state of the resource.
	ProvisioningState *ProvisioningState
}

// JobStep - Job Step
type JobStep struct {
	// REQUIRED; Name of the step
	Name *string

	// REQUIRED; Status of the step
	Status *JobStatus

	// End time of the step (ISO8601)
	EndTime *time.Time

	// Message for the step
	Message *string

	// Start time of the step (ISO8601)
	StartTime *time.Time

	// Statistics for the step
	Statistics JobStepStatisticsBaseClassification

	// Nested substeps for this step
	Steps []*JobStep

	// READ-ONLY; Error Details if any failure is there
	ErrorDetails *ErrorDetail
}

// JobStepStatisticsBase - Base Job Step Statistics
type JobStepStatisticsBase struct {
	// REQUIRED; Statistics type discriminator value
	StatisticsType *JobType
}

// GetJobStepStatisticsBase implements the JobStepStatisticsBaseClassification interface for type JobStepStatisticsBase.
func (j *JobStepStatisticsBase) GetJobStepStatisticsBase() *JobStepStatisticsBase { return j }

// ReconciliationPolicyProperties - Defines a ReconciliationPolicy
type ReconciliationPolicyProperties struct {
	// REQUIRED; Policy interval
	Interval *string

	// REQUIRED; The state of the ReconciliationPolicy
	State *ReconciliationState
}

// RemoveRevisionParameter - Install Solution Parameter
type RemoveRevisionParameter struct {
	// REQUIRED; Solution Template ARM Id
	SolutionTemplateID *string

	// REQUIRED; Solution Version Name
	SolutionVersion *string
}

// RemoveVersionResponse - Remove Version response
type RemoveVersionResponse struct {
	// REQUIRED; Status for remove version response
	Status *string
}

// ResolvedConfiguration - Resolved Configuration
type ResolvedConfiguration struct {
	// REQUIRED; Resolved Configuration as string
	Configuration *string
}

// Schema Resource
type Schema struct {
	// REQUIRED; The geo-location where the resource lives
	Location *string

	// The resource-specific properties for this resource.
	Properties *SchemaProperties

	// Resource tags.
	Tags map[string]*string

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

	// READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

// SchemaListResult - The response of a Schema list operation.
type SchemaListResult struct {
	// REQUIRED; The Schema items on this page
	Value []*Schema

	// The link to the next page of items
	NextLink *string
}

// SchemaProperties - Schema Properties
type SchemaProperties struct {
	// READ-ONLY; Current Version of schema
	CurrentVersion *string

	// READ-ONLY; Provisioning state of resource
	ProvisioningState *ProvisioningState
}

// SchemaReference - Schema Reference Resource
type SchemaReference struct {
	// The resource-specific properties for this resource.
	Properties *SchemaReferenceProperties

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

	// READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

// SchemaReferenceListResult - The response of a SchemaReference list operation.
type SchemaReferenceListResult struct {
	// REQUIRED; The SchemaReference items on this page
	Value []*SchemaReference

	// The link to the next page of items
	NextLink *string
}

// SchemaReferenceProperties - Schema Reference Properties
type SchemaReferenceProperties struct {
	// REQUIRED; Schema Id of schema reference
	SchemaID *string

	// READ-ONLY; Provisioning state of resource
	ProvisioningState *ProvisioningState
}

// SchemaUpdate - The type used for update operations of the Schema.
type SchemaUpdate struct {
	// The resource-specific properties for this resource.
	Properties *SchemaUpdateProperties

	// Resource tags.
	Tags map[string]*string
}

// SchemaUpdateProperties - The updatable properties of the Schema.
type SchemaUpdateProperties struct {
}

// SchemaVersion - Schema Version Resource
type SchemaVersion struct {
	// The resource-specific properties for this resource.
	Properties *SchemaVersionProperties

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

	// READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

// SchemaVersionListResult - The response of a SchemaVersion list operation.
type SchemaVersionListResult struct {
	// REQUIRED; The SchemaVersion items on this page
	Value []*SchemaVersion

	// The link to the next page of items
	NextLink *string
}

// SchemaVersionProperties - Schema Version Properties
type SchemaVersionProperties struct {
	// REQUIRED; Value of schema version
	Value *string

	// READ-ONLY; Provisioning state of resource
	ProvisioningState *ProvisioningState
}

// SchemaVersionWithUpdateType - Schema Version With Update Type
type SchemaVersionWithUpdateType struct {
	// REQUIRED; Schema Version
	SchemaVersion *SchemaVersion

	// Update type
	UpdateType *UpdateType

	// Version to create
	Version *string
}

// SiteReference - Site Reference Resource
type SiteReference struct {
	// The resource-specific properties for this resource.
	Properties *SiteReferenceProperties

	// READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

// SiteReferenceListResult - The response of a SiteReference list operation.
type SiteReferenceListResult struct {
	// REQUIRED; The SiteReference items on this page
	Value []*SiteReference

	// The link to the next page of items
	NextLink *string
}

// SiteReferenceProperties - Site Reference Properties
type SiteReferenceProperties struct {
	// REQUIRED; Azure Resource ID for Site
	SiteID *string

	// READ-ONLY; Provisioning State
	ProvisioningState *ProvisioningState
}

// Solution Resource attached to a Target
type Solution struct {
	ExtendedLocation *ExtendedLocation

	// The resource-specific properties for this resource.
	Properties *SolutionProperties

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

	// READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

// SolutionDependency - Solution Dependency Context
type SolutionDependency struct {
	// REQUIRED; Solution Template Version Id
	SolutionTemplateVersionID *string

	// REQUIRED; Solution Version Id
	SolutionVersionID *string

	// REQUIRED; Target Id
	TargetID *string

	// Solution dependencies
	Dependencies []*SolutionDependency

	// Solution Instance Name
	SolutionInstanceName *string
}

// SolutionDependencyParameter - Solution Dependency Context
type SolutionDependencyParameter struct {
	// Solution dependencies
	Dependencies []*SolutionDependencyParameter

	// Solution Instance Name
	SolutionInstanceName *string

	// Solution Template Id
	SolutionTemplateID *string

	// Solution Template Version
	SolutionTemplateVersion *string

	// Solution Version Id
	SolutionVersionID *string

	// Target Id
	TargetID *string
}

// SolutionListResult - The response of a Solution list operation.
type SolutionListResult struct {
	// REQUIRED; The Solution items on this page
	Value []*Solution

	// The link to the next page of items
	NextLink *string
}

// SolutionProperties - Solution Properties
type SolutionProperties struct {
	// READ-ONLY; List of latest revisions for available solution template versions
	AvailableSolutionTemplateVersions []*AvailableSolutionTemplateVersion

	// READ-ONLY; Provisioning state of resource
	ProvisioningState *ProvisioningState

	// READ-ONLY; Solution template Id
	SolutionTemplateID *string
}

// SolutionTemplate - Solution Template Resource. Contains capabilities and operations for creating versions.
type SolutionTemplate struct {
	// REQUIRED; The geo-location where the resource lives
	Location *string

	// The resource-specific properties for this resource.
	Properties *SolutionTemplateProperties

	// Resource tags.
	Tags map[string]*string

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

	// READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

// SolutionTemplateListResult - The response of a SolutionTemplate list operation.
type SolutionTemplateListResult struct {
	// REQUIRED; The SolutionTemplate items on this page
	Value []*SolutionTemplate

	// The link to the next page of items
	NextLink *string
}

// SolutionTemplateParameter - Solution Template Parameter
type SolutionTemplateParameter struct {
	// REQUIRED; Solution Template Version ARM Id
	SolutionTemplateVersionID *string

	// Solution Dependencies
	SolutionDependencies []*SolutionDependencyParameter

	// Solution Instance Name
	SolutionInstanceName *string
}

// SolutionTemplateProperties - Solution Template Properties
type SolutionTemplateProperties struct {
	// REQUIRED; List of capabilities
	Capabilities []*string

	// REQUIRED; Description of Solution template
	Description *string

	// Flag to enable external validation
	EnableExternalValidation *bool

	// State of resource
	State *ResourceState

	// READ-ONLY; Latest solution template version
	LatestVersion *string

	// READ-ONLY; Provisioning state of resource
	ProvisioningState *ProvisioningState
}

// SolutionTemplateUpdate - The type used for update operations of the SolutionTemplate.
type SolutionTemplateUpdate struct {
	// The resource-specific properties for this resource.
	Properties *SolutionTemplateUpdateProperties

	// Resource tags.
	Tags map[string]*string
}

// SolutionTemplateUpdateProperties - The updatable properties of the SolutionTemplate.
type SolutionTemplateUpdateProperties struct {
	// List of capabilities
	Capabilities []*string

	// Description of Solution template
	Description *string

	// Flag to enable external validation
	EnableExternalValidation *bool

	// State of resource
	State *ResourceState
}

// SolutionTemplateVersion - Solution Template Version Resource. Contains configurations that use expressions which can be
// resolved hierarchically along with edge specifications.
type SolutionTemplateVersion struct {
	// The resource-specific properties for this resource.
	Properties *SolutionTemplateVersionProperties

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

	// READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

// SolutionTemplateVersionListResult - The response of a SolutionTemplateVersion list operation.
type SolutionTemplateVersionListResult struct {
	// REQUIRED; The SolutionTemplateVersion items on this page
	Value []*SolutionTemplateVersion

	// The link to the next page of items
	NextLink *string
}

// SolutionTemplateVersionProperties - Solution Template Version Properties
type SolutionTemplateVersionProperties struct {
	// REQUIRED; Config expressions for this solution version
	Configurations *string

	// REQUIRED; App components spec
	Specification map[string]any

	// Orchestrator type
	OrchestratorType *OrchestratorType

	// READ-ONLY; Provisioning state of resource
	ProvisioningState *ProvisioningState
}

// SolutionTemplateVersionWithUpdateType - Solution Template Version With Update Type
type SolutionTemplateVersionWithUpdateType struct {
	// REQUIRED; Solution Template Version
	SolutionTemplateVersion *SolutionTemplateVersion

	// Update type
	UpdateType *UpdateType

	// Version to create
	Version *string
}

// SolutionUpdate - The type used for update operations of the Solution.
type SolutionUpdate struct {
	// The resource-specific properties for this resource.
	Properties *SolutionUpdateProperties
}

// SolutionUpdateProperties - The updatable properties of the Solution.
type SolutionUpdateProperties struct {
}

// SolutionVersion - Solution Version Resource. It has the resolved configuration along with edge specification.
type SolutionVersion struct {
	ExtendedLocation *ExtendedLocation

	// The resource-specific properties for this resource.
	Properties *SolutionVersionProperties

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

	// READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

// SolutionVersionListResult - The response of a SolutionVersion list operation.
type SolutionVersionListResult struct {
	// REQUIRED; The SolutionVersion items on this page
	Value []*SolutionVersion

	// The link to the next page of items
	NextLink *string
}

// SolutionVersionParameter - Solution Version Parameter
type SolutionVersionParameter struct {
	// REQUIRED; Solution Version ARM Id
	SolutionVersionID *string
}

// SolutionVersionProperties - Solution Version Properties
type SolutionVersionProperties struct {
	// REQUIRED; App components spec
	Specification map[string]any

	// READ-ONLY; The type of the latest action performed on this solution version.
	ActionType *JobType

	// READ-ONLY; Resolved configuration values
	Configuration *string

	// READ-ONLY; Error Details if any failure is there
	ErrorDetails *ErrorDetail

	// READ-ONLY; External validation id
	ExternalValidationID *string

	// READ-ONLY; The URI for tracking the latest action performed on this solution version.
	LatestActionTrackingURI *string

	// READ-ONLY; Provisioning state of resource
	ProvisioningState *ProvisioningState

	// READ-ONLY; Review id of resolved config for this solution version
	ReviewID *string

	// READ-ONLY; Revision number of resolved config for this solution version
	Revision *int32

	// READ-ONLY; Solution Dependency Context
	SolutionDependencies []*SolutionDependency

	// READ-ONLY; Solution instance name
	SolutionInstanceName *string

	// READ-ONLY; Solution Template Version Id
	SolutionTemplateVersionID *string

	// READ-ONLY; State of solution instance
	State *State

	// READ-ONLY; Name of applicable target's display name
	TargetDisplayName *string

	// READ-ONLY; Configuration on the line level across all solution template versions
	TargetLevelConfiguration *string
}

// SolutionVersionSnapshot - Solution Version Snapshot
type SolutionVersionSnapshot struct {
	// Solution version of instance
	SolutionVersionID *string

	// App components spec
	Specification map[string]any
}

// StageSpec - Stage Properties
type StageSpec struct {
	// REQUIRED; Name of Stage
	Name *string

	// Stage specification
	Specification map[string]any

	// Task option for the stage
	TaskOption *TaskOption

	// List of tasks in the stage
	Tasks []*TaskSpec
}

// StageStatus - Result of Stage execution
type StageStatus struct {
	// Error message
	ErrorMessage *string

	// The inputs of the StageHistory, Inputs holds a key-value map of user-defined parameters for the initial stage
	Inputs map[string]any

	// whether this stage is active or inactive
	IsActive *ActiveState

	// Next stage
	Nextstage *string

	// The outputs of the StageHistory, it is different as the different input stages.
	Outputs map[string]any

	// Current stage
	Stage *string

	// Deployment status
	Status *int32

	// Status message
	StatusMessage *string
}

// SystemData - Metadata pertaining to creation and last modification of the resource.
type SystemData struct {
	// The timestamp of resource creation (UTC).
	CreatedAt *time.Time

	// The identity that created the resource.
	CreatedBy *string

	// The type of identity that created the resource.
	CreatedByType *CreatedByType

	// The timestamp of resource last modification (UTC)
	LastModifiedAt *time.Time

	// The identity that last modified the resource.
	LastModifiedBy *string

	// The type of identity that last modified the resource.
	LastModifiedByType *CreatedByType
}

// Target Resource. Represents a resource to be deployed on the edge.
type Target struct {
	// REQUIRED; The geo-location where the resource lives
	Location         *string
	ExtendedLocation *ExtendedLocation

	// The resource-specific properties for this resource.
	Properties *TargetProperties

	// Resource tags.
	Tags map[string]*string

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

	// READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

// TargetListResult - The response of a Target list operation.
type TargetListResult struct {
	// REQUIRED; The Target items on this page
	Value []*Target

	// The link to the next page of items
	NextLink *string
}

// TargetProperties - Target Properties
type TargetProperties struct {
	// REQUIRED; List of capabilities
	Capabilities []*string

	// REQUIRED; ArmId of Context
	ContextID *string

	// REQUIRED; Description of target
	Description *string

	// REQUIRED; Display name of target
	DisplayName *string

	// REQUIRED; Hierarchy Level
	HierarchyLevel *string

	// REQUIRED; target spec
	TargetSpecification map[string]any

	// Scope of the target resource
	SolutionScope *string

	// State of resource
	State *ResourceState

	// READ-ONLY; Provisioning state of resource
	ProvisioningState *ProvisioningState

	// READ-ONLY; Status of target
	Status *DeploymentStatus
}

// TargetSnapshot - Target Snapshot
type TargetSnapshot struct {
	// Scope of the target resource
	SolutionScope *string

	// Target of instance
	TargetID *string

	// target spec
	TargetSpecification map[string]any
}

// TargetStatus - Target Status
type TargetStatus struct {
	// Component statuses
	ComponentStatuses []*ComponentStatus

	// Target name
	Name *string

	// Target status
	Status *string
}

// TargetUpdate - The type used for update operations of the Target.
type TargetUpdate struct {
	// The resource-specific properties for this resource.
	Properties *TargetUpdateProperties

	// Resource tags.
	Tags map[string]*string
}

// TargetUpdateProperties - The updatable properties of the Target.
type TargetUpdateProperties struct {
	// List of capabilities
	Capabilities []*string

	// ArmId of Context
	ContextID *string

	// Description of target
	Description *string

	// Display name of target
	DisplayName *string

	// Hierarchy Level
	HierarchyLevel *string

	// Scope of the target resource
	SolutionScope *string

	// State of resource
	State *ResourceState

	// target spec
	TargetSpecification map[string]any
}

// TaskOption - Task Option Properties
type TaskOption struct {
	// Parallel worker numbers of the tasks
	Concurrency *int32

	// Error action for the tasks
	ErrorAction *ErrorAction
}

// TaskSpec - Task Spec
type TaskSpec struct {
	// REQUIRED; Name of Task
	Name *string

	// REQUIRED; Task specification
	Specification map[string]any

	// Target ARM id
	TargetID *string
}

// UninstallSolutionParameter - Uninstall Solution Parameter
type UninstallSolutionParameter struct {
	// REQUIRED; Solution Template ARM Id
	SolutionTemplateID *string

	// Solution Instance Name
	SolutionInstanceName *string
}

// UpdateExternalValidationStatusParameter - Update External Validation Status Parameter
type UpdateExternalValidationStatusParameter struct {
	// REQUIRED; External validation id
	ExternalValidationID *string

	// REQUIRED; Solution Version Id
	SolutionVersionID *string

	// REQUIRED; Validation Status of external validation
	ValidationStatus *ValidationStatus

	// Error Details if any failure is there
	ErrorDetails *ErrorDetail
}

// VersionParameter - Version Parameter
type VersionParameter struct {
	// REQUIRED; Version of the Resource
	Version *string
}

// Workflow Resource
type Workflow struct {
	ExtendedLocation *ExtendedLocation

	// The resource-specific properties for this resource.
	Properties *WorkflowProperties

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

	// READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

// WorkflowListResult - The response of a Workflow list operation.
type WorkflowListResult struct {
	// REQUIRED; The Workflow items on this page
	Value []*Workflow

	// The link to the next page of items
	NextLink *string
}

// WorkflowProperties - Workflow Properties
type WorkflowProperties struct {
	// READ-ONLY; Provisioning state of resource
	ProvisioningState *ProvisioningState

	// READ-ONLY; Workflow template Id
	WorkflowTemplateID *string
}

// WorkflowVersion - Workflow Version Resource
type WorkflowVersion struct {
	ExtendedLocation *ExtendedLocation

	// The resource-specific properties for this resource.
	Properties *WorkflowVersionProperties

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

	// READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

// WorkflowVersionListResult - The response of a WorkflowVersion list operation.
type WorkflowVersionListResult struct {
	// REQUIRED; The WorkflowVersion items on this page
	Value []*WorkflowVersion

	// The link to the next page of items
	NextLink *string
}

// WorkflowVersionProperties - Workflow Version Properties
type WorkflowVersionProperties struct {
	// REQUIRED; A list of stage specs
	StageSpec []*StageSpec

	// Execution specification
	Specification map[string]any

	// READ-ONLY; Resolved configuration values
	Configuration *string

	// READ-ONLY; Provisioning state of resource
	ProvisioningState *ProvisioningState

	// READ-ONLY; Review id of resolved config for this workflow version
	ReviewID *string

	// READ-ONLY; Revision number of resolved config for this workflow version
	Revision *int32

	// READ-ONLY; State of workflow version
	State *State
}
