// 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 armcomputeschedule

import "time"

// CancelOccurrenceRequest - The request to cancel an occurrence.
type CancelOccurrenceRequest struct {
	// REQUIRED; The resources the cancellation should act on. If no resource is passed in the list, Scheduled Action will cancel
	// the occurrence for all resources.
	ResourceIDs []*string
}

// CancelOperationsRequest - This is the request to cancel running operations in scheduled actions using the operation ids
type CancelOperationsRequest struct {
	// REQUIRED; CorrelationId item
	Correlationid *string

	// REQUIRED; The list of operation ids to cancel operations on
	OperationIDs []*string
}

// CancelOperationsResponse - This is the response from a cancel operations request
type CancelOperationsResponse struct {
	// REQUIRED; An array of resource operations that were successfully cancelled
	Results []*ResourceOperation
}

// CreateResourceOperationResponse - The response from a create request
type CreateResourceOperationResponse struct {
	// REQUIRED; The description of the operation response
	Description *string

	// REQUIRED; The location of the start request eg westus
	Location *string

	// REQUIRED; The type of resources used in the create request eg virtual machines
	Type *string

	// The results from the start request if no errors exist
	Results []*ResourceOperation
}

// DeallocateResourceOperationResponse - The response from a deallocate request
type DeallocateResourceOperationResponse struct {
	// REQUIRED; The description of the operation response
	Description *string

	// REQUIRED; The location of the deallocate request eg westus
	Location *string

	// REQUIRED; The type of resources used in the deallocate request eg virtual machines
	Type *string

	// The results from the deallocate request if no errors exist
	Results []*ResourceOperation
}

// DelayRequest - Request to ask for a delay in an occurrence, delay should be set to client local time eg (ACST) 2025-05-30T22:03:00+09:30,
// (PST) 2025-05-30T06:35:00-07:00
type DelayRequest struct {
	// REQUIRED; The exact time to delay the operations to
	Delay *time.Time

	// REQUIRED; The resources that should be delayed. If empty, the delay will apply to the all resources in the occurrence.
	ResourceIDs []*string
}

// DeleteResourceOperationResponse - The response from a delete request
type DeleteResourceOperationResponse struct {
	// REQUIRED; The description of the operation response
	Description *string

	// REQUIRED; The location of the start request eg westus
	Location *string

	// REQUIRED; The type of resources used in the delete request eg virtual machines
	Type *string

	// The results from the start request if no errors exist
	Results []*ResourceOperation
}

// Error - The error object.
type Error struct {
	// REQUIRED; One of a server-defined set of error codes.
	Code *string

	// REQUIRED; A human-readable representation of the error.
	Message *string

	// An array of details about specific errors that led to this reported error.
	Details []*Error

	// An object containing more specific information than the current object about the error.
	Innererror *InnerError

	// The target of the error.
	Target *string
}

// ExecuteCreateRequest - The ExecuteCreateRequest request for create operations
type ExecuteCreateRequest struct {
	// REQUIRED; The execution parameters for the request
	ExecutionParameters *ExecutionParameters

	// REQUIRED; resource creation payload
	ResourceConfigParameters *ResourceProvisionPayload

	// CorrelationId item
	Correlationid *string
}

// ExecuteDeallocateRequest - The ExecuteDeallocateRequest request for executeDeallocate operations
type ExecuteDeallocateRequest struct {
	// REQUIRED; CorrelationId item
	Correlationid *string

	// REQUIRED; The execution parameters for the request
	ExecutionParameters *ExecutionParameters

	// REQUIRED; The resources for the request
	Resources *Resources
}

// ExecuteDeleteRequest - The ExecuteDeleteRequest for delete VM operation
type ExecuteDeleteRequest struct {
	// REQUIRED; The execution parameters for the request
	ExecutionParameters *ExecutionParameters

	// REQUIRED; The resources for the request
	Resources *Resources

	// CorrelationId item
	Correlationid *string

	// Forced delete resource item
	ForceDeletion *bool
}

// ExecuteHibernateRequest - The ExecuteHibernateRequest request for executeHibernate operations
type ExecuteHibernateRequest struct {
	// REQUIRED; CorrelationId item
	Correlationid *string

	// REQUIRED; The execution parameters for the request
	ExecutionParameters *ExecutionParameters

	// REQUIRED; The resources for the request
	Resources *Resources
}

// ExecuteStartRequest - The ExecuteStartRequest request for executeStart operations
type ExecuteStartRequest struct {
	// REQUIRED; CorrelationId item
	Correlationid *string

	// REQUIRED; The execution parameters for the request
	ExecutionParameters *ExecutionParameters

	// REQUIRED; The resources for the request
	Resources *Resources
}

// ExecutionParameters - Extra details needed to run the user's request
type ExecutionParameters struct {
	// Details that could optimize the user's request
	OptimizationPreference *OptimizationPreference

	// Retry policy the user can pass
	RetryPolicy *RetryPolicy
}

// GetOperationErrorsRequest - This is the request to get errors per vm operations
type GetOperationErrorsRequest struct {
	// REQUIRED; The list of operation ids to query errors of
	OperationIDs []*string
}

// GetOperationErrorsResponse - This is the response from a get operations errors request
type GetOperationErrorsResponse struct {
	// REQUIRED; An array of operationids and their corresponding errors if any
	Results []*OperationErrorsResult
}

// GetOperationStatusRequest - This is the request to get operation status using operationids
type GetOperationStatusRequest struct {
	// REQUIRED; CorrelationId item
	Correlationid *string

	// REQUIRED; The list of operation ids to get the status of
	OperationIDs []*string
}

// GetOperationStatusResponse - This is the response from a get operations status request
type GetOperationStatusResponse struct {
	// REQUIRED; An array of resource operations based on their operation ids
	Results []*ResourceOperation
}

// HibernateResourceOperationResponse - The response from a Hibernate request
type HibernateResourceOperationResponse struct {
	// REQUIRED; The description of the operation response
	Description *string

	// REQUIRED; The location of the Hibernate request eg westus
	Location *string

	// REQUIRED; The type of resources used in the Hibernate request eg virtual machines
	Type *string

	// The results from the Hibernate request if no errors exist
	Results []*ResourceOperation
}

// InnerError - An object containing more specific information about the error. As per Azure REST API guidelines - https://aka.ms/AzureRestApiGuidelines#handling-errors.
type InnerError struct {
	// One of a server-defined set of error codes.
	Code *string

	// Inner error.
	Innererror *InnerError
}

// NotificationProperties - The information about notifications to be send to about upcoming operations.
type NotificationProperties struct {
	// REQUIRED; Where the notification should be sent. For email, it should follow email format.
	Destination *string

	// REQUIRED; The language the notification should be sent on.
	Language *Language

	// REQUIRED; Type of notification to be sent.
	Type *NotificationType

	// Tells if the notification is enabled or not.
	Disabled *bool
}

// Occurrence - Concrete proxy resource types can be created by aliasing this type using a specific property type.
type Occurrence struct {
	// The resource-specific properties for this resource.
	Properties *OccurrenceProperties

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

	// READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ID *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
}

// OccurrenceExtensionProperties - The properties of the occurrence extension
type OccurrenceExtensionProperties struct {
	// REQUIRED; The ARM Id of the resource.
	// "subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Compute/virtualMachines/{vmName}"
	ResourceID *string

	// REQUIRED; The arm identifier of the scheduled action the occurrence belongs to
	ScheduledActionID *string

	// READ-ONLY; The time the occurrence is scheduled for the resource. Specified in UTC.
	ScheduledTime *time.Time

	// The desired notification settings for the specified resource.
	NotificationSettings []*NotificationProperties

	// READ-ONLY; Error details for the resource. Only populated if resource is in failed state.
	ErrorDetails *Error

	// READ-ONLY; The current state of the resource
	ProvisioningState *ResourceProvisioningState
}

// OccurrenceExtensionResource - The scheduled action extension
type OccurrenceExtensionResource struct {
	// The resource-specific properties for this resource.
	Properties *OccurrenceExtensionProperties

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

	// READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ID *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
}

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

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

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

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

// OccurrenceProperties - Properties for an occurrence
type OccurrenceProperties struct {
	// READ-ONLY; The result for occurrences that achieved a terminal state
	ResultSummary *OccurrenceResultSummary

	// READ-ONLY; The time the occurrence is scheduled for. This value can be changed by calling the delay API
	ScheduledTime *time.Time

	// READ-ONLY; The aggregated provisioning state of the occurrence
	ProvisioningState *OccurrenceState
}

// OccurrenceResource - Represents an scheduled action resource metadata.
type OccurrenceResource struct {
	// REQUIRED; The ARM Id of the resource.
	// "subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Compute/virtualMachines/{vmName}"
	ResourceID *string

	// The desired notification settings for the specified resource.
	NotificationSettings []*NotificationProperties

	// READ-ONLY; The compute RP resource id of the resource in the scheduled actions scope.
	ID *string

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

	// READ-ONLY; The time the occurrence is scheduled for the resource.
	ScheduledTime *time.Time

	// READ-ONLY; Error details for the resource. Only populated if resource is in failed state.
	ErrorDetails *Error

	// READ-ONLY; The current state of the resource
	ProvisioningState *ResourceProvisioningState

	// READ-ONLY; The type of resource
	Type *string
}

// OccurrenceResourceListResponse - Paged collection of OccurrenceResource items
type OccurrenceResourceListResponse struct {
	// REQUIRED; The OccurrenceResource items on this page
	Value []*OccurrenceResource

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

// OccurrenceResultSummary - The summarized provisioning result of an occurrence
type OccurrenceResultSummary struct {
	// REQUIRED; The summarized status of the resources.
	Statuses []*ResourceResultSummary

	// REQUIRED; The total number of resources that the occurrence was supposed to act on.
	Total *int32
}

// Operation - REST API Operation
//
// Details of a REST API operation, returned from the Resource Provider Operations API
type Operation struct {
	// Localized display information for this particular operation.
	Display *OperationDisplay

	// READ-ONLY; Extensible enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs.
	ActionType *ActionType

	// READ-ONLY; Whether the operation applies to data-plane. This is "true" for data-plane operations and "false" for Azure
	// Resource Manager/control-plane operations.
	IsDataAction *bool

	// READ-ONLY; The name of the operation, as per Resource-Based Access Control (RBAC). Examples: "Microsoft.Compute/virtualMachines/write",
	// "Microsoft.Compute/virtualMachines/capture/action"
	Name *string

	// READ-ONLY; The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default
	// value is "user,system"
	Origin *Origin
}

// OperationDisplay - Localized display information for and operation.
type OperationDisplay struct {
	// READ-ONLY; The short, localized friendly description of the operation; suitable for tool tips and detailed views.
	Description *string

	// READ-ONLY; The concise, localized friendly name for the operation; suitable for dropdowns. E.g. "Create or Update Virtual
	// Machine", "Restart Virtual Machine".
	Operation *string

	// READ-ONLY; The localized friendly form of the resource provider name, e.g. "Microsoft Monitoring Insights" or "Microsoft
	// Compute".
	Provider *string

	// READ-ONLY; The localized friendly name of the resource type related to this operation. E.g. "Virtual Machines" or "Job
	// Schedule Collections".
	Resource *string
}

// OperationErrorDetails - This defines a list of operation errors associated with a unique operationId
type OperationErrorDetails struct {
	// REQUIRED; The error code of the operation
	ErrorCode *string

	// REQUIRED; The error details of the operation
	ErrorDetails *string

	// The compute operationid of the Start/Deallocate/Hibernate request
	AzureOperationName *string

	// The compute operationid of the Start/Deallocate/Hibernate request
	CrpOperationID *string

	// The timestamp of the error occurence
	TimeStamp *time.Time

	// The timestamp of the error occurence
	Timestamp *time.Time
}

// OperationErrorsResult - This is the first level of operation errors from the request when clients get errors per vm operation
type OperationErrorsResult struct {
	// The activation time of a vm operation
	ActivationTime *time.Time

	// The completion time of the operation if the operation was completed
	CompletedAt *time.Time

	// The creation time of the error result
	CreationTime *time.Time

	// A list of errors associated with the operationid
	OperationErrors []*OperationErrorDetails

	// The operationId identifying a vm operation
	OperationID *string

	// Request level error code
	RequestErrorCode *string

	// Request level error details
	RequestErrorDetails *string
}

// OperationListResult - A list of REST API operations supported by an Azure Resource Provider. It contains an URL link to
// get the next set of results.
type OperationListResult struct {
	// REQUIRED; The Operation items on this page
	Value []*Operation

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

// RecurringActionsResourceOperationResult - The response from scheduled action resource requests, which contains the status
// of each resource
type RecurringActionsResourceOperationResult struct {
	// REQUIRED; The resource status of for each resource
	ResourcesStatuses []*ResourceStatus

	// REQUIRED; The total number of resources operated on
	TotalResources *int32
}

// ResourceAttachRequest - Request model to attach a list of scheduled action resources.
type ResourceAttachRequest struct {
	// REQUIRED; List of resources to be attached/patched
	Resources []*ScheduledActionResource
}

// ResourceDetachRequest - Request model to detach a list of scheduled action resources.
type ResourceDetachRequest struct {
	// REQUIRED; List of resources to be detached
	Resources []*string
}

// ResourceListResponse - Paged collection of ScheduledActionResource items
type ResourceListResponse struct {
	// REQUIRED; The ScheduledActionResource items on this page
	Value []*ScheduledActionResource

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

// ResourceOperation - High level response from an operation on a resource
type ResourceOperation struct {
	// Resource level error code if it exists
	ErrorCode *string

	// Resource level error details if they exist
	ErrorDetails *string

	// Details of the operation performed on a resource
	Operation *ResourceOperationDetails

	// Unique identifier for the resource involved in the operation, eg ArmId
	ResourceID *string
}

// ResourceOperationDetails - The details of a response from an operation on a resource
type ResourceOperationDetails struct {
	// REQUIRED; Operation identifier for the unique operation
	OperationID *string

	// Time the operation was complete if errors are null
	CompletedAt *time.Time

	// Deadline for the operation
	Deadline *time.Time

	// Type of deadline of the operation
	DeadlineType *DeadlineType

	// Type of operation performed on the resources
	OpType *ResourceOperationType

	// Unique identifier for the resource involved in the operation, eg ArmId
	ResourceID *string

	// Operation level errors if they exist
	ResourceOperationError *ResourceOperationError

	// Retry policy the user can pass
	RetryPolicy *RetryPolicy

	// Current state of the operation
	State *OperationState

	// Subscription id attached to the request
	SubscriptionID *string

	// Timezone for the operation
	TimeZone *string

	// Timezone for the operation
	Timezone *string
}

// ResourceOperationError - These describe errors that occur at the resource level
type ResourceOperationError struct {
	// REQUIRED; Code for the error eg 404, 500
	ErrorCode *string

	// REQUIRED; Detailed message about the error
	ErrorDetails *string
}

// ResourcePatchRequest - Request model perform a resource operation in a list of resources
type ResourcePatchRequest struct {
	// REQUIRED; The list of resources we watch to patch
	Resources []*ScheduledActionResource
}

// ResourceProvisionPayload - Resource creation data model
type ResourceProvisionPayload struct {
	// REQUIRED; Number of VMs to be created
	ResourceCount *int32

	// JSON object that contains VM properties that are common across all VMs in this batch (if you want to create 100 VMs in
	// this request, and they all have same vmSize, then include vmSize in baseProfile)
	BaseProfile map[string]any

	// JSON array, that contains VM properties that should to be overridden for each VM in the batch (if you want to create 100
	// VMs, they all need a distinct computerName property, you pass computerNames for each VM in batch in this array), service
	// will merge baseProfile with VM specific overrides and create a merged VMProfile.
	ResourceOverrides []map[string]any

	// if resourceOverrides doesn't contain "name", service will create name based of prefix and ResourceCount e.g. resourceprefix-0,resourceprefix-1..
	ResourcePrefix *string
}

// ResourceResultSummary - The status of the resources
type ResourceResultSummary struct {
	// REQUIRED; The error code for those resources. In case of success, code is populated with Success.
	Code *string

	// REQUIRED; The number of resources that the code applies to.
	Count *int32

	// The error details for the resources. Not populated on success cases.
	ErrorDetails *Error
}

// ResourceStatus - The status of a resource after a resource level operation was performed
type ResourceStatus struct {
	// REQUIRED; The arm identifier of the resource
	ResourceID *string

	// REQUIRED; The state the resource is currently on
	Status *ResourceOperationStatus

	// Errors encountered while trying to perform
	Error *Error
}

// Resources - The resources needed for the user request
type Resources struct {
	// REQUIRED; The resource ids used for the request
	IDs []*string
}

// RetryPolicy - The retry policy for the user request
type RetryPolicy struct {
	// Retry count for user request
	RetryCount *int32

	// Retry window in minutes for user request
	RetryWindowInMinutes *int32
}

// Schedule - The schedule details for the user request
type Schedule struct {
	// REQUIRED; The deadlinetype of the operation, this can either be InitiateAt or CompleteBy
	DeadlineType *DeadlineType

	// The deadline for the operation
	DeadLine *time.Time

	// The deadline for the operation
	Deadline *time.Time

	// The timezone for the operation
	TimeZone *string

	// The timezone for the operation
	Timezone *string
}

// ScheduledAction - The scheduled action resource
type ScheduledAction struct {
	// REQUIRED; The geo-location where the resource lives
	Location *string

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

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

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

	// READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ID *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
}

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

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

// ScheduledActionProperties - Scheduled action properties
type ScheduledActionProperties struct {
	// REQUIRED; The action the scheduled action should perform in the resources
	ActionType *ScheduledActionType

	// REQUIRED; The notification settings for the scheduled action
	NotificationSettings []*NotificationProperties

	// REQUIRED; The type of resource the scheduled action is targeting
	ResourceType *ResourceType

	// REQUIRED; The schedule the scheduled action is supposed to follow
	Schedule *ScheduledActionsSchedule

	// REQUIRED; The time which the scheduled action is supposed to start running
	StartTime *time.Time

	// Tell if the scheduled action is disabled or not
	Disabled *bool

	// The time when the scheduled action is supposed to stop scheduling
	EndTime *time.Time

	// READ-ONLY; The status of the last provisioning operation performed on the resource.
	ProvisioningState *ProvisioningState
}

// ScheduledActionResource - Represents an scheduled action resource metadata.
type ScheduledActionResource struct {
	// REQUIRED; The ARM Id of the resource.
	// "subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Compute/virtualMachines/{vmName}"
	ResourceID *string

	// The desired notification settings for the specified resource.
	NotificationSettings []*NotificationProperties

	// READ-ONLY; The compute RP resource id of the resource in the scheduled actions scope.
	ID *string

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

	// READ-ONLY; The type of resource
	Type *string
}

// ScheduledActionResources - The scheduled action extension
type ScheduledActionResources struct {
	// The resource-specific properties for this resource.
	Properties *ScheduledActionProperties

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

	// READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ID *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
}

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

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

// ScheduledActionUpdate - The type used for update operations of the ScheduledAction.
type ScheduledActionUpdate struct {
	// The resource-specific properties for this resource.
	Properties *ScheduledActionUpdateProperties

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

// ScheduledActionUpdateProperties - The updatable properties of the ScheduledAction.
type ScheduledActionUpdateProperties struct {
	// The action the scheduled action should perform in the resources
	ActionType *ScheduledActionType

	// Tell if the scheduled action is disabled or not
	Disabled *bool

	// The time when the scheduled action is supposed to stop scheduling
	EndTime *time.Time

	// The notification settings for the scheduled action
	NotificationSettings []*NotificationProperties

	// The type of resource the scheduled action is targeting
	ResourceType *ResourceType

	// The schedule the scheduled action is supposed to follow
	Schedule *ScheduledActionsSchedule

	// The time which the scheduled action is supposed to start running
	StartTime *time.Time
}

// ScheduledActionsSchedule - Specify the schedule in which the scheduled action is supposed to follow
type ScheduledActionsSchedule struct {
	// REQUIRED; The days of the month the scheduled action is supposed to run on. If empty, it means it will run on every day
	// of the month.
	RequestedDaysOfTheMonth []*int32

	// REQUIRED; The months the scheduled action is supposed to run on
	RequestedMonths []*Month

	// REQUIRED; The week days the scheduled action is supposed to run on
	RequestedWeekDays []*WeekDay

	// REQUIRED; The time the scheduled action is supposed to run on
	ScheduledTime *time.Time

	// REQUIRED; The timezone the scheduled time is specified on
	TimeZone *string

	// The type of deadline the scheduled action is supposed to follow for the schedule. If no value is passed, it will default
	// to InitiateAt.
	DeadlineType *DeadlineType

	// The execution parameters the scheduled action is supposed to follow
	ExecutionParameters *ExecutionParameters
}

// StartResourceOperationResponse - The response from a start request
type StartResourceOperationResponse struct {
	// REQUIRED; The description of the operation response
	Description *string

	// REQUIRED; The location of the start request eg westus
	Location *string

	// REQUIRED; The type of resources used in the start request eg virtual machines
	Type *string

	// The results from the start request if no errors exist
	Results []*ResourceOperation
}

// SubmitDeallocateRequest - The deallocate request for resources
type SubmitDeallocateRequest struct {
	// REQUIRED; CorrelationId item
	Correlationid *string

	// REQUIRED; The execution parameters for the request
	ExecutionParameters *ExecutionParameters

	// REQUIRED; The resources for the request
	Resources *Resources

	// REQUIRED; The schedule for the request
	Schedule *Schedule
}

// SubmitHibernateRequest - This is the request for hibernate
type SubmitHibernateRequest struct {
	// REQUIRED; CorrelationId item
	Correlationid *string

	// REQUIRED; The execution parameters for the request
	ExecutionParameters *ExecutionParameters

	// REQUIRED; The resources for the request
	Resources *Resources

	// REQUIRED; The schedule for the request
	Schedule *Schedule
}

// SubmitStartRequest - This is the request for start
type SubmitStartRequest struct {
	// REQUIRED; CorrelationId item
	Correlationid *string

	// REQUIRED; The execution parameters for the request
	ExecutionParameters *ExecutionParameters

	// REQUIRED; The resources for the request
	Resources *Resources

	// REQUIRED; The schedule for the request
	Schedule *Schedule
}

// 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
}
