{ "swagger": "2.0", "info": { "title": "VirtualMachineImageTemplate", "description": "Virtual Machine Image Template", "version": "2018-02-01-preview" }, "host": "management.azure.com", "schemes": [ "https" ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "security": [ { "azure_auth": [ "user_impersonation" ] } ], "securityDefinitions": { "azure_auth": { "type": "oauth2", "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", "flow": "implicit", "description": "Azure Active Directory OAuth2 Flow", "scopes": { "user_impersonation": "impersonate your user account" } } }, "paths": { "/subscriptions/{subscriptionId}/providers/Microsoft.VirtualMachineImages/imageTemplates": { "get": { "tags": [ "VirtualMachineImageTemplate" ], "operationId": "VirtualMachineImageTemplate_List", "description": "Gets information about the VM image templates associated with the subscription.", "parameters": [ { "$ref": "#/parameters/SubscriptionIdParameter" }, { "$ref": "#/parameters/ApiVersionParameter" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/ImageTemplateListResult" } }, "default": { "description": "Error response describing why the operation failed.", "schema": { "$ref": "#/definitions/ApiError" } } }, "x-ms-pageable": { "nextLinkName": "nextLink" }, "x-ms-examples": { "List images by subscription.": { "$ref": "./examples/ListImageTemplates.json" } } } }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.VirtualMachineImages/imageTemplates": { "get": { "tags": [ "VirtualMachineImageTemplate" ], "operationId": "VirtualMachineImageTemplate_ListByResourceGroup", "description": "Gets information about the VM image templates associated with the specified resource group.", "parameters": [ { "$ref": "#/parameters/ResourceGroupNameParameter" }, { "$ref": "#/parameters/SubscriptionIdParameter" }, { "$ref": "#/parameters/ApiVersionParameter" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/ImageTemplateListResult" } }, "default": { "description": "Error response describing why the operation failed.", "schema": { "$ref": "#/definitions/ApiError" } } }, "x-ms-pageable": { "nextLinkName": "nextLink" }, "x-ms-examples": { "List images by resource group": { "$ref": "./examples/ListImageTemplatesByRg.json" } } } }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.VirtualMachineImages/imageTemplates/{imageTemplateName}": { "put": { "tags": [ "VirtualMachineImageTemplate" ], "operationId": "VirtualMachineImageTemplate_CreateOrUpdate", "description": "Create or Update a Virtual Machine Image Template", "parameters": [ { "name": "parameters", "in": "body", "required": true, "schema": { "$ref": "#/definitions/ImageTemplate" }, "description": "Parameters supplied to the Create Image Template" }, { "$ref": "#/parameters/ApiVersionParameter" }, { "$ref": "#/parameters/SubscriptionIdParameter" }, { "$ref": "#/parameters/ResourceGroupNameParameter" }, { "$ref": "#/parameters/ImageTemplateNameParameter" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/ImageTemplate" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/ImageTemplate" } }, "default": { "description": "Error response describing why the operation failed.", "schema": { "$ref": "#/definitions/ApiError" } } }, "x-ms-examples": { "Create an Image Template.": { "$ref": "./examples/CreateImageTemplate.json" } }, "x-ms-long-running-operation": true, "x-ms-long-running-operation-options": { "final-state-via": "azure-async-operation" } }, "patch": { "tags": [ "VirtualMachineImageTemplate" ], "operationId": "VirtualMachineImageTemplate_Update", "description": "Update the tags for this Virtual Machine Image Template", "parameters": [ { "name": "parameters", "in": "body", "required": true, "schema": { "$ref": "#/definitions/ImageTemplateUpdateParameters" }, "description": "Additional parameters for Image Template update." }, { "$ref": "#/parameters/SubscriptionIdParameter" }, { "$ref": "#/parameters/ResourceGroupNameParameter" }, { "$ref": "#/parameters/ImageTemplateNameParameter" }, { "$ref": "#/parameters/ApiVersionParameter" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/ImageTemplate" } }, "default": { "description": "Error response describing why the operation failed.", "schema": { "$ref": "#/definitions/ApiError" } } }, "x-ms-examples": { "Update the tags for an Image Template.": { "$ref": "./examples/UpdateImageTemplateTags.json" } } }, "get": { "tags": [ "VirtualMachineImageTemplate" ], "operationId": "VirtualMachineImageTemplate_Get", "description": "Get Information about Virtual Machine Image Template", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" }, { "$ref": "#/parameters/SubscriptionIdParameter" }, { "$ref": "#/parameters/ResourceGroupNameParameter" }, { "$ref": "#/parameters/ImageTemplateNameParameter" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/ImageTemplate" } }, "default": { "description": "Error response describing why the operation failed.", "schema": { "$ref": "#/definitions/ApiError" } } }, "x-ms-examples": { "Retrieve an Image Template.": { "$ref": "./examples/GetImageTemplate.json" } } }, "delete": { "tags": [ "VirtualMachineImageTemplate" ], "operationId": "VirtualMachineImageTemplate_Delete", "description": "Delete Virtual Machine Image Template", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" }, { "$ref": "#/parameters/SubscriptionIdParameter" }, { "$ref": "#/parameters/ResourceGroupNameParameter" }, { "$ref": "#/parameters/ImageTemplateNameParameter" } ], "responses": { "200": { "description": "The operation was successful." }, "202": { "description": "The operation will be completed asynchronously." }, "204": { "description": "NoContent -- VM image template does not exist in the subscription." }, "default": { "description": "Error response describing why the operation failed.", "schema": { "$ref": "#/definitions/ApiError" } } }, "x-ms-long-running-operation": true, "x-ms-long-running-operation-options": { "final-state-via": "azure-async-operation" }, "x-ms-examples": { "Delete an Image Template.": { "$ref": "./examples/DeleteImageTemplate.json" } } } }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.VirtualMachineImages/imageTemplates/{imageTemplateName}/run": { "post": { "tags": [ "VirtualMachineImageTemplate" ], "operationId": "VirtualMachineImageTemplate_run", "description": "Create artifacts from a existing Image Template", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" }, { "$ref": "#/parameters/SubscriptionIdParameter" }, { "$ref": "#/parameters/ResourceGroupNameParameter" }, { "$ref": "#/parameters/ImageTemplateNameParameter" } ], "responses": { "204": { "description": "The operation was successful." }, "202": { "description": "The operation will be completed asynchronously." }, "default": { "description": "Error response describing why the operation failed.", "schema": { "$ref": "#/definitions/ApiError" } } }, "x-ms-long-running-operation": true, "x-ms-long-running-operation-options": { "final-state-via": "azure-async-operation" }, "x-ms-examples": { "Create image(s) from existing imageTemplate.": { "$ref": "./examples/RunImageTemplate.json" } } } }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.VirtualMachineImages/imageTemplates/{imageTemplateName}/runOutputs": { "get": { "tags": [ "VirtualMachineImageTemplate" ], "operationId": "VirtualMachineImageTemplate_ListRunOutputs", "description": "List all run outputs for the specified Image Template resource", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" }, { "$ref": "#/parameters/SubscriptionIdParameter" }, { "$ref": "#/parameters/ResourceGroupNameParameter" }, { "$ref": "#/parameters/ImageTemplateNameParameter" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/RunOutputCollection" } }, "default": { "description": "Error response describing why the operation failed.", "schema": { "$ref": "#/definitions/ApiError" } } }, "x-ms-pageable": { "nextLinkName": "nextLink" }, "x-ms-examples": { "Retrieve a list of all outputs created by the last run of an Image Template": { "$ref": "./examples/ListRunOutputs.json" } } } }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.VirtualMachineImages/imageTemplates/{imageTemplateName}/runOutputs/{runOutputName}": { "get": { "tags": [ "VirtualMachineImageTemplate" ], "operationId": "VirtualMachineImageTemplate_GetRunOutput", "description": "Get the specified run output for the specified Template resource", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" }, { "$ref": "#/parameters/SubscriptionIdParameter" }, { "$ref": "#/parameters/ResourceGroupNameParameter" }, { "$ref": "#/parameters/ImageTemplateNameParameter" }, { "$ref": "#/parameters/RunOutputNameParameter" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/RunOutput" } }, "default": { "description": "Error response describing why the operation failed.", "schema": { "$ref": "#/definitions/ApiError" } } }, "x-ms-examples": { "Retrieve single runOutput": { "$ref": "./examples/GetRunOutput.json" } } } }, "/providers/Microsoft.VirtualMachineImages/operations": { "get": { "tags": [ "Operations" ], "operationId": "Operations_List", "description": "Lists available operations for the Microsoft.VirtualMachineImages provider", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" } ], "responses": { "200": { "description": "The operation was successful. The response contains the list of available operations.", "schema": { "$ref": "#/definitions/OperationListResult" } }, "default": { "description": "Error response describing why the operation failed.", "schema": { "$ref": "#/definitions/ApiError" } } }, "x-ms-pageable": { "nextLinkName": "nextLink" } } } }, "definitions": { "ImageTemplateListResult": { "properties": { "value": { "type": "array", "items": { "$ref": "#/definitions/ImageTemplate" } }, "nextLink": { "type": "string", "description": "The continuation token." } } }, "ImageTemplateSource": { "discriminator": "type", "properties": { "type": { "type": "string", "description": "Specifies the type of source image you want to start with." } }, "required": [ "type" ] }, "ImageTemplateIsoSource": { "description": "Describes an image source that is an installation ISO. Currently only supports Red Hat Enterprise Linux 7.2-7.5 ISO's.", "x-ms-discriminator-value": "ISO", "allOf": [ { "$ref": "#/definitions/ImageTemplateSource" } ], "properties": { "sourceURI": { "type": "string", "description": "URL to get the ISO image. This URL has to be accessible to the resource provider at the time of the imageTemplate creation." }, "sha256Checksum": { "type": "string", "description": "SHA256 Checksum of the ISO image." } }, "required": [ "sourceURI", "sha256Checksum" ] }, "ImageTemplatePlatformImageSource": { "description": "Describes an image source from [Azure Gallery Images](https://docs.microsoft.com/en-us/rest/api/compute/virtualmachineimages).", "x-ms-discriminator-value": "PlatformImage", "allOf": [ { "$ref": "#/definitions/ImageTemplateSource" } ], "properties": { "publisher": { "type": "string", "description": "Image Publisher in [Azure Gallery Images](https://docs.microsoft.com/en-us/rest/api/compute/virtualmachineimages)." }, "offer": { "type": "string", "description": "Image offer from the [Azure Gallery Images](https://docs.microsoft.com/en-us/rest/api/compute/virtualmachineimages)." }, "sku": { "type": "string", "description": "Image sku from the [Azure Gallery Images](https://docs.microsoft.com/en-us/rest/api/compute/virtualmachineimages)." }, "version": { "type": "string", "description": "Image version from the [Azure Gallery Images](https://docs.microsoft.com/en-us/rest/api/compute/virtualmachineimages)." } } }, "ImageTemplateCustomizer": { "discriminator": "type", "properties": { "type": { "type": "string", "description": "The type of customization tool you want to use on the Image. For example, \"shell\" can be shellCustomizer" }, "name": { "type": "string", "description": "Friendly Name to provide context on what this customization step does" } }, "required": [ "type" ] }, "ImageTemplateShellCustomizer": { "description": "Runs a shell script during the customization phase", "x-ms-discriminator-value": "shell", "allOf": [ { "$ref": "#/definitions/ImageTemplateCustomizer" } ], "properties": { "script": { "type": "string", "description": "The shell script to be run for customizing. It can be a github link, SAS URI for Azure Storage, etc" } } }, "ImageTemplateDistributor": { "type": "object", "description": "Generic distribution object", "discriminator": "type", "properties": { "type": { "type": "string", "description": "Type of distribution." }, "runOutputName": { "type": "string", "description": "The name to be used for the associated RunOutput.", "pattern": "^[A-Za-z0-9-_]{1,64}$" }, "artifactTags": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Tags that will be applied to the artifact once it has been created/updated by the distributor." } }, "required": [ "type", "runOutputName" ] }, "ImageTemplateManagedImageDistributor": { "x-ms-discriminator-value": "managedImage", "description": "Distribute as a Managed Disk Image.", "type": "object", "allOf": [ { "$ref": "#/definitions/ImageTemplateDistributor" } ], "properties": { "imageId": { "type": "string", "description": "Resource Id of the Managed Disk Image" }, "location": { "type": "string", "description": "Azure location for the image, should match if image already exists" } }, "required": [ "imageId", "location" ] }, "ImageTemplateSharedImageDistributor": { "x-ms-discriminator-value": "sharedImage", "description": "Distribute via Shared Image Gallery.", "type": "object", "allOf": [ { "$ref": "#/definitions/ImageTemplateDistributor" } ], "properties": { "galleryImageId": { "type": "string", "description": "Resource Id of the Shared Image Gallery image" }, "replicationRegions": { "type": "array", "items": { "type": "string" } } }, "required": [ "galleryImageId", "replicationRegions" ] }, "ProvisioningState": { "type": "string", "enum": [ "Creating", "Succeeded", "Failed", "Deleting" ], "description": "Provisioning state of the resource" }, "ProvisioningError": { "properties": { "provisioningErrorCode": { "type": "string", "enum": [ "BadSourceType", "BadPIRSource", "BadISOSource", "BadCustomizerType", "NoCustomizerShellScript", "ServerError", "Other" ], "description": "Error code of the provisioning failure" }, "message": { "type": "string", "description": "Verbose error message about the provisioning failure" } } }, "ImageTemplateLastRunStatus": { "properties": { "startTime": { "type": "string", "format": "date-time", "description": "Start time of the last run (UTC)" }, "endTime": { "type": "string", "format": "date-time", "description": "End time of the last run (UTC)" }, "runState": { "type": "string", "enum": [ "ready", "running", "succeeded", "partiallySucceeded", "failed" ], "description": "State of the last run" }, "runSubState": { "type": "string", "enum": [ "queued", "building", "customizing", "distributing" ], "description": "Sub state of the last run" }, "message": { "type": "string", "description": "Verbose information about the last run state" } } }, "ImageTemplateProperties": { "properties": { "source": { "$ref": "#/definitions/ImageTemplateSource", "description": "Specifies the properties used to describe the source image." }, "customize": { "type": "array", "items": { "$ref": "#/definitions/ImageTemplateCustomizer" }, "description": "Specifies the properties used to describe the customization steps of the image, like Image source etc" }, "distribute": { "type": "array", "items": { "$ref": "#/definitions/ImageTemplateDistributor" }, "description": "The distribution targets where the image output needs to go to." }, "provisioningState": { "$ref": "#/definitions/ProvisioningState", "description": "Provisioning state of the resource", "readOnly": true }, "provisioningError": { "$ref": "#/definitions/ProvisioningError", "description": "Provisioning error, if any", "readOnly": true }, "lastRunStatus": { "$ref": "#/definitions/ImageTemplateLastRunStatus", "description": "State of 'run' that is currently executing or was last executed.", "readOnly": true } }, "required": [ "source", "distribute" ] }, "RunOutputProperties": { "properties": { "artifactId": { "type": "string", "description": "The resource id of the artifact." }, "provisioningState": { "$ref": "#/definitions/ProvisioningState", "description": "Provisioning state of the resource", "readOnly": true } } }, "ImageTemplate": { "properties": { "properties": { "x-ms-client-flatten": true, "$ref": "#/definitions/ImageTemplateProperties" } }, "allOf": [ { "$ref": "#/definitions/Resource" } ] }, "ImageTemplateUpdateParameters": { "properties": { "tags": { "type": "object", "additionalProperties": { "type": "string" }, "description": "The user-specified tags associated with the image template." } }, "description": "Parameters for updating an image template." }, "RunOutput": { "description": "Represents an output that was created by running an image template.", "allOf": [ { "$ref": "#/definitions/SubResource" } ], "properties": { "properties": { "$ref": "#/definitions/RunOutputProperties", "x-ms-client-flatten": true } } }, "RunOutputCollection": { "properties": { "value": { "type": "array", "items": { "$ref": "#/definitions/RunOutput" } }, "nextLink": { "type": "string", "description": "The continuation token." } } }, "Resource": { "description": "The Resource model definition.", "properties": { "id": { "readOnly": true, "type": "string", "description": "Resource Id" }, "name": { "readOnly": true, "type": "string", "description": "Resource name" }, "type": { "readOnly": true, "type": "string", "description": "Resource type" }, "location": { "type": "string", "description": "Resource location", "x-ms-mutability": [ "create", "read" ] }, "tags": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Resource tags" } }, "required": [ "location" ], "x-ms-azure-resource": true }, "SubResource": { "description": "The Sub Resource model definition.", "properties": { "id": { "readOnly": true, "type": "string", "description": "Resource Id" }, "name": { "type": "string", "description": "Resource name" }, "type": { "readOnly": true, "type": "string", "description": "Resource type" } }, "required": [ "name" ] }, "Operation": { "title": "A REST API operation", "type": "object", "properties": { "name": { "title": "The operation name.", "description": "This is of the format {provider}/{resource}/{operation}", "type": "string" }, "display": { "title": "The object that describes the operation.", "properties": { "provider": { "title": "Friendly name of the resource provider.", "type": "string" }, "operation": { "title": "The operation type.", "description": "For example: read, write, delete, or listKeys/action", "type": "string" }, "resource": { "title": "The resource type on which the operation is performed.", "type": "string" }, "description": { "title": "The friendly name of the operation", "type": "string" } } }, "origin": { "title": "The intended executor of the operation.", "type": "string" }, "properties": { "title": "Properties of the operation.", "type": "object" } } }, "OperationListResult": { "title": "Result of the request to list REST API operations. It contains a list of operations and a URL nextLink to get the next set of results.", "properties": { "value": { "type": "array", "items": { "$ref": "#/definitions/Operation" }, "title": "The list of operations supported by the resource provider." }, "nextLink": { "type": "string", "title": "The URL to get the next set of operation list results if there are any." } } }, "ApiErrorBase": { "properties": { "code": { "type": "string", "description": "The error code." }, "target": { "type": "string", "description": "The target of the particular error." }, "message": { "type": "string", "description": "The error message." } }, "description": "Api error base." }, "InnerError": { "properties": { "exceptiontype": { "type": "string", "description": "The exception type." }, "errordetail": { "type": "string", "description": "The internal error message or exception dump." } }, "description": "Inner error details." }, "ApiError": { "properties": { "details": { "type": "array", "items": { "$ref": "#/definitions/ApiErrorBase" }, "description": "The Api error details" }, "innererror": { "$ref": "#/definitions/InnerError", "description": "The Api inner error" }, "code": { "type": "string", "description": "The error code." }, "target": { "type": "string", "description": "The target of the particular error." }, "message": { "type": "string", "description": "The error message." } }, "description": "Api error." } }, "parameters": { "SubscriptionIdParameter": { "name": "subscriptionId", "in": "path", "required": true, "type": "string", "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call." }, "ResourceGroupNameParameter": { "name": "resourceGroupName", "in": "path", "required": true, "type": "string", "description": "The name of the resource group.", "x-ms-parameter-location": "method" }, "ImageTemplateNameParameter": { "name": "imageTemplateName", "in": "path", "required": true, "type": "string", "description": "The name of the image Template", "pattern": "^[A-Za-z0-9-_]{1,64}$", "x-ms-parameter-location": "method" }, "RunOutputNameParameter": { "name": "runOutputName", "in": "path", "required": true, "type": "string", "description": "The name of the run output", "pattern": "^[A-Za-z0-9-_]{1,64}$", "x-ms-parameter-location": "method" }, "LocationParameter": { "name": "location", "in": "path", "required": true, "type": "string", "description": "Location of the service.", "x-ms-parameter-location": "method" }, "ApiVersionParameter": { "name": "api-version", "in": "query", "required": true, "type": "string", "description": "Client Api Version." } } }