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

import "time"

// Artifact - Disconnected operations artifact resource.
type Artifact struct {
	// The resource-specific properties for this resource.
	Properties *ArtifactProperties

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

// ArtifactDownloadResult - The artifact download properties
type ArtifactDownloadResult struct {
	// READ-ONLY; The artifact display order
	ArtifactOrder *int32

	// READ-ONLY; The artifact description
	Description *string

	// READ-ONLY; The download URI
	DownloadLink *string

	// READ-ONLY; The download link expiry time
	LinkExpiry *time.Time

	// READ-ONLY; The artifact title
	Title *string

	// READ-ONLY; The resource provisioning state
	ProvisioningState *ResourceProvisioningState

	// READ-ONLY; The artifact size in MB
	Size *int64
}

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

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

// ArtifactProperties - The artifact properties
type ArtifactProperties struct {
	// READ-ONLY; The artifact display order
	ArtifactOrder *int32

	// READ-ONLY; The artifact description
	Description *string

	// READ-ONLY; The artifact title
	Title *string

	// READ-ONLY; The resource provisioning state
	ProvisioningState *ResourceProvisioningState

	// READ-ONLY; The artifact size in MB
	Size *int64
}

// DisconnectedOperation - Disconnected operation resource.
type DisconnectedOperation struct {
	// REQUIRED; The geo-location where the resource lives
	Location *string

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

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

// DisconnectedOperationDeploymentManifest - The disconnected operation manifest
type DisconnectedOperationDeploymentManifest struct {
	// READ-ONLY; The billing model
	BillingModel *BillingModel

	// READ-ONLY; The connection intent
	ConnectionIntent *ConnectionIntent

	// READ-ONLY; The resource location
	Location *string

	// READ-ONLY; The resource identifier of the disconnected operations resource
	ResourceID *string

	// READ-ONLY; The resource name
	ResourceName *string

	// READ-ONLY; The unique GUID of the stamp
	StampID *string

	// READ-ONLY; The cloud in which the resource is registered
	Cloud *string
}

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

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

// DisconnectedOperationProperties - The disconnected operation properties
type DisconnectedOperationProperties struct {
	// REQUIRED; The connection intent
	ConnectionIntent *ConnectionIntent

	// The device version
	DeviceVersion *string

	// The registration intent
	RegistrationStatus *RegistrationStatus

	// READ-ONLY; The billing model
	BillingModel *BillingModel

	// READ-ONLY; The unique GUID of the stamp
	StampID *string

	// READ-ONLY; The connection status
	ConnectionStatus *ConnectionStatus

	// READ-ONLY; The resource provisioning state
	ProvisioningState *ResourceProvisioningState
}

// DisconnectedOperationUpdate - The type used for update operations of the DisconnectedOperation.
type DisconnectedOperationUpdate struct {
	// The resource-specific properties for this resource.
	Properties *DisconnectedOperationUpdateProperties

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

// DisconnectedOperationUpdateProperties - The updatable properties of the DisconnectedOperation.
type DisconnectedOperationUpdateProperties struct {
	// The connection intent
	ConnectionIntent *ConnectionIntent

	// The device version
	DeviceVersion *string

	// The registration intent
	RegistrationStatus *RegistrationStatus
}

// Image - Holds the release information of a disconnected operations image.
type Image struct {
	// The resource-specific properties for this resource.
	Properties *ImageProperties

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

// ImageDownloadResult - The image download properties
type ImageDownloadResult struct {
	// READ-ONLY; The download URI
	DownloadLink *string

	// READ-ONLY; The download link expiry time
	LinkExpiry *time.Time

	// READ-ONLY; The release date
	ReleaseDate *time.Time

	// READ-ONLY; The release name
	ReleaseDisplayName *string

	// READ-ONLY; The release notes
	ReleaseNotes *string

	// READ-ONLY; The release type
	ReleaseType *ReleaseType

	// READ-ONLY; The version of the package in the format 1.1.1
	ReleaseVersion *string

	// READ-ONLY; The unique identifier of the download
	TransactionID *string

	// READ-ONLY; The versions that are compatible for this update package.
	CompatibleVersions []*string

	// READ-ONLY; The resource provisioning state
	ProvisioningState *ResourceProvisioningState
}

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

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

// ImageProperties - The image properties
type ImageProperties struct {
	// READ-ONLY; The release date
	ReleaseDate *time.Time

	// READ-ONLY; The release name
	ReleaseDisplayName *string

	// READ-ONLY; The release notes
	ReleaseNotes *string

	// READ-ONLY; The release type
	ReleaseType *ReleaseType

	// READ-ONLY; The version of the package in the format 1.1.1
	ReleaseVersion *string

	// READ-ONLY; The versions that are compatible for this update package.
	CompatibleVersions []*string

	// READ-ONLY; The resource provisioning state
	ProvisioningState *ResourceProvisioningState
}

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