{
  "openapi": "3.0.0",
  "info": {
    "description": "Virtual Machine Image Template",
    "title": "VirtualMachineImageTemplate",
    "version": "2019-02-01-preview",
    "x-jentic-source-url": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/imagebuilder/resource-manager/Microsoft.VirtualMachineImages/preview/2019-02-01-preview/imagebuilder.json"
  },
  "servers": [
    {
      "url": "https://management.azure.com/"
    }
  ],
  "paths": {
    "/providers/Microsoft.VirtualMachineImages/operations": {
      "get": {
        "parameters": [
          {
            "$ref": "#/components/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OperationListResult"
                }
              }
            },
            "description": "The operation was successful. The response contains the list of available operations."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "Operations"
        ],
        "description": "Lists available operations for the Microsoft.VirtualMachineImages provider",
        "operationId": "Operations_List",
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/providers/Microsoft.VirtualMachineImages/imageTemplates": {
      "get": {
        "parameters": [
          {
            "$ref": "#/components/parameters/SubscriptionIdParameter"
          },
          {
            "$ref": "#/components/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImageTemplateListResult"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "VirtualMachineImageTemplate"
        ],
        "description": "Gets information about the VM image templates associated with the subscription.",
        "operationId": "VirtualMachineImageTemplates_List",
        "x-ms-examples": {
          "List images by subscription.": {
            "$ref": "./examples/ListImageTemplates.json"
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.VirtualMachineImages/imageTemplates": {
      "get": {
        "parameters": [
          {
            "$ref": "#/components/parameters/ResourceGroupNameParameter"
          },
          {
            "$ref": "#/components/parameters/SubscriptionIdParameter"
          },
          {
            "$ref": "#/components/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImageTemplateListResult"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "VirtualMachineImageTemplate"
        ],
        "description": "Gets information about the VM image templates associated with the specified resource group.",
        "operationId": "VirtualMachineImageTemplates_ListByResourceGroup",
        "x-ms-examples": {
          "List images by resource group": {
            "$ref": "./examples/ListImageTemplatesByRg.json"
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.VirtualMachineImages/imageTemplates/{imageTemplateName}": {
      "delete": {
        "parameters": [
          {
            "$ref": "#/components/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/components/parameters/SubscriptionIdParameter"
          },
          {
            "$ref": "#/components/parameters/ResourceGroupNameParameter"
          },
          {
            "$ref": "#/components/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": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "VirtualMachineImageTemplate"
        ],
        "description": "Delete a virtual machine image template",
        "operationId": "VirtualMachineImageTemplates_Delete",
        "x-ms-examples": {
          "Delete an Image Template.": {
            "$ref": "./examples/DeleteImageTemplate.json"
          }
        },
        "x-ms-long-running-operation": true,
        "x-ms-long-running-operation-options": {
          "final-state-via": "azure-async-operation"
        }
      },
      "get": {
        "parameters": [
          {
            "$ref": "#/components/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/components/parameters/SubscriptionIdParameter"
          },
          {
            "$ref": "#/components/parameters/ResourceGroupNameParameter"
          },
          {
            "$ref": "#/components/parameters/ImageTemplateNameParameter"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImageTemplate"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "VirtualMachineImageTemplate"
        ],
        "description": "Get information about a virtual machine image template",
        "operationId": "VirtualMachineImageTemplates_Get",
        "x-ms-examples": {
          "Retrieve an Image Template.": {
            "$ref": "./examples/GetImageTemplate.json"
          }
        }
      },
      "patch": {
        "parameters": [
          {
            "$ref": "#/components/parameters/SubscriptionIdParameter"
          },
          {
            "$ref": "#/components/parameters/ResourceGroupNameParameter"
          },
          {
            "$ref": "#/components/parameters/ImageTemplateNameParameter"
          },
          {
            "$ref": "#/components/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImageTemplate"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "VirtualMachineImageTemplate"
        ],
        "description": "Update the tags for this Virtual Machine Image Template",
        "operationId": "VirtualMachineImageTemplates_Update",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ImageTemplateUpdateParameters"
              }
            }
          },
          "description": "Additional parameters for Image Template update.",
          "required": true
        },
        "x-ms-examples": {
          "Update the tags for an Image Template.": {
            "$ref": "./examples/UpdateImageTemplateTags.json"
          }
        }
      },
      "put": {
        "parameters": [
          {
            "$ref": "#/components/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/components/parameters/SubscriptionIdParameter"
          },
          {
            "$ref": "#/components/parameters/ResourceGroupNameParameter"
          },
          {
            "$ref": "#/components/parameters/ImageTemplateNameParameter"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImageTemplate"
                }
              }
            },
            "description": "OK"
          },
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImageTemplate"
                }
              }
            },
            "description": "Created"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "VirtualMachineImageTemplate"
        ],
        "description": "Create or update a virtual machine image template",
        "operationId": "VirtualMachineImageTemplates_CreateOrUpdate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ImageTemplate"
              }
            }
          },
          "description": "Parameters supplied to the CreateImageTemplate operation",
          "required": true
        },
        "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"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.VirtualMachineImages/imageTemplates/{imageTemplateName}/run": {
      "post": {
        "parameters": [
          {
            "$ref": "#/components/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/components/parameters/SubscriptionIdParameter"
          },
          {
            "$ref": "#/components/parameters/ResourceGroupNameParameter"
          },
          {
            "$ref": "#/components/parameters/ImageTemplateNameParameter"
          }
        ],
        "responses": {
          "202": {
            "description": "The operation will be completed asynchronously."
          },
          "204": {
            "description": "The operation was successful."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "VirtualMachineImageTemplate"
        ],
        "description": "Create artifacts from a existing image template",
        "operationId": "VirtualMachineImageTemplates_Run",
        "x-ms-examples": {
          "Create image(s) from existing imageTemplate.": {
            "$ref": "./examples/RunImageTemplate.json"
          }
        },
        "x-ms-long-running-operation": true,
        "x-ms-long-running-operation-options": {
          "final-state-via": "azure-async-operation"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.VirtualMachineImages/imageTemplates/{imageTemplateName}/runOutputs": {
      "get": {
        "parameters": [
          {
            "$ref": "#/components/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/components/parameters/SubscriptionIdParameter"
          },
          {
            "$ref": "#/components/parameters/ResourceGroupNameParameter"
          },
          {
            "$ref": "#/components/parameters/ImageTemplateNameParameter"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RunOutputCollection"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "VirtualMachineImageTemplate"
        ],
        "description": "List all run outputs for the specified Image Template resource",
        "operationId": "VirtualMachineImageTemplates_ListRunOutputs",
        "x-ms-examples": {
          "Retrieve a list of all outputs created by the last run of an Image Template": {
            "$ref": "./examples/ListRunOutputs.json"
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.VirtualMachineImages/imageTemplates/{imageTemplateName}/runOutputs/{runOutputName}": {
      "get": {
        "parameters": [
          {
            "$ref": "#/components/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/components/parameters/SubscriptionIdParameter"
          },
          {
            "$ref": "#/components/parameters/ResourceGroupNameParameter"
          },
          {
            "$ref": "#/components/parameters/ImageTemplateNameParameter"
          },
          {
            "$ref": "#/components/parameters/RunOutputNameParameter"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RunOutput"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "VirtualMachineImageTemplate"
        ],
        "description": "Get the specified run output for the specified image template resource",
        "operationId": "VirtualMachineImageTemplates_GetRunOutput",
        "x-ms-examples": {
          "Retrieve single runOutput": {
            "$ref": "./examples/GetRunOutput.json"
          }
        }
      }
    }
  },
  "components": {
    "parameters": {
      "ApiVersionParameter": {
        "description": "Client Api Version.",
        "in": "query",
        "name": "api-version",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "ImageTemplateNameParameter": {
        "description": "The name of the image Template",
        "in": "path",
        "name": "imageTemplateName",
        "required": true,
        "schema": {
          "pattern": "^[A-Za-z0-9-_]{1,64}$",
          "type": "string"
        },
        "x-ms-parameter-location": "method"
      },
      "LocationParameter": {
        "description": "Location of the service.",
        "in": "path",
        "name": "location",
        "required": true,
        "schema": {
          "type": "string"
        },
        "x-ms-parameter-location": "method"
      },
      "ResourceGroupNameParameter": {
        "description": "The name of the resource group.",
        "in": "path",
        "name": "resourceGroupName",
        "required": true,
        "schema": {
          "type": "string"
        },
        "x-ms-parameter-location": "method"
      },
      "RunOutputNameParameter": {
        "description": "The name of the run output",
        "in": "path",
        "name": "runOutputName",
        "required": true,
        "schema": {
          "pattern": "^[A-Za-z0-9-_]{1,64}$",
          "type": "string"
        },
        "x-ms-parameter-location": "method"
      },
      "SubscriptionIdParameter": {
        "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription Id forms part of the URI for every service call.",
        "in": "path",
        "name": "subscriptionId",
        "required": true,
        "schema": {
          "type": "string"
        }
      }
    },
    "schemas": {
      "ApiError": {
        "description": "Api error.",
        "properties": {
          "code": {
            "description": "The error code.",
            "type": "string"
          },
          "details": {
            "description": "The Api error details",
            "items": {
              "$ref": "#/components/schemas/ApiErrorBase"
            },
            "type": "array"
          },
          "innerError": {
            "$ref": "#/components/schemas/InnerError",
            "description": "The Api inner error"
          },
          "message": {
            "description": "The error message.",
            "type": "string"
          },
          "target": {
            "description": "The target of the particular error.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ApiErrorBase": {
        "description": "Api error base.",
        "properties": {
          "code": {
            "description": "The error code.",
            "type": "string"
          },
          "message": {
            "description": "The error message.",
            "type": "string"
          },
          "target": {
            "description": "The target of the particular error.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ImageTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Resource"
          }
        ],
        "properties": {
          "properties": {
            "$ref": "#/components/schemas/ImageTemplateProperties",
            "x-ms-client-flatten": true
          }
        },
        "type": "object"
      },
      "ImageTemplateCustomizer": {
        "discriminator": {
          "propertyName": "type"
        },
        "properties": {
          "name": {
            "description": "Friendly Name to provide context on what this customization step does",
            "type": "string"
          },
          "type": {
            "description": "The type of customization tool you want to use on the Image. For example, \"Shell\" can be shell customizer",
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "type": "object"
      },
      "ImageTemplateDistributor": {
        "description": "Generic distribution object",
        "discriminator": {
          "propertyName": "type"
        },
        "properties": {
          "artifactTags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Tags that will be applied to the artifact once it has been created/updated by the distributor.",
            "type": "object"
          },
          "runOutputName": {
            "description": "The name to be used for the associated RunOutput.",
            "pattern": "^[A-Za-z0-9-_]{1,64}$",
            "type": "string"
          },
          "type": {
            "description": "Type of distribution.",
            "type": "string"
          }
        },
        "required": [
          "type",
          "runOutputName"
        ],
        "type": "object"
      },
      "ImageTemplateIsoSource": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageTemplateSource"
          }
        ],
        "description": "Describes an image source that is an installation ISO. Currently only supports Red Hat Enterprise Linux 7.2-7.5 ISO's.",
        "properties": {
          "sha256Checksum": {
            "description": "SHA256 Checksum of the ISO image.",
            "type": "string"
          },
          "sourceURI": {
            "description": "URI to get the ISO image. This URI has to be accessible to the resource provider at the time of the image template creation.",
            "type": "string"
          }
        },
        "required": [
          "sourceURI",
          "sha256Checksum"
        ],
        "type": "object",
        "x-ms-discriminator-value": "ISO"
      },
      "ImageTemplateLastRunStatus": {
        "properties": {
          "endTime": {
            "description": "End time of the last run (UTC)",
            "format": "date-time",
            "type": "string"
          },
          "message": {
            "description": "Verbose information about the last run state",
            "type": "string"
          },
          "runState": {
            "description": "State of the last run",
            "enum": [
              "Running",
              "Succeeded",
              "PartiallySucceeded",
              "Failed"
            ],
            "type": "string"
          },
          "runSubState": {
            "description": "Sub-state of the last run",
            "enum": [
              "Queued",
              "Building",
              "Customizing",
              "Distributing"
            ],
            "type": "string"
          },
          "startTime": {
            "description": "Start time of the last run (UTC)",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ImageTemplateListResult": {
        "properties": {
          "nextLink": {
            "description": "The continuation token.",
            "type": "string"
          },
          "value": {
            "items": {
              "$ref": "#/components/schemas/ImageTemplate"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "ImageTemplateManagedImageDistributor": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageTemplateDistributor"
          }
        ],
        "description": "Distribute as a Managed Disk Image.",
        "properties": {
          "imageId": {
            "description": "Resource Id of the Managed Disk Image",
            "type": "string"
          },
          "location": {
            "description": "Azure location for the image, should match if image already exists",
            "type": "string"
          }
        },
        "required": [
          "imageId",
          "location"
        ],
        "type": "object",
        "x-ms-discriminator-value": "ManagedImage"
      },
      "ImageTemplateManagedImageSource": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageTemplateSource"
          }
        ],
        "description": "Describes an image source that is a managed image in customer subscription.",
        "properties": {
          "imageId": {
            "description": "ARM resource id of the managed image in customer subscription",
            "type": "string"
          }
        },
        "required": [
          "imageId"
        ],
        "type": "object",
        "x-ms-discriminator-value": "ManagedImage"
      },
      "ImageTemplatePlatformImageSource": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageTemplateSource"
          }
        ],
        "description": "Describes an image source from [Azure Gallery Images](https://docs.microsoft.com/en-us/rest/api/compute/virtualmachineimages).",
        "properties": {
          "offer": {
            "description": "Image offer from the [Azure Gallery Images](https://docs.microsoft.com/en-us/rest/api/compute/virtualmachineimages).",
            "type": "string"
          },
          "publisher": {
            "description": "Image Publisher in [Azure Gallery Images](https://docs.microsoft.com/en-us/rest/api/compute/virtualmachineimages).",
            "type": "string"
          },
          "sku": {
            "description": "Image sku from the [Azure Gallery Images](https://docs.microsoft.com/en-us/rest/api/compute/virtualmachineimages).",
            "type": "string"
          },
          "version": {
            "description": "Image version from the [Azure Gallery Images](https://docs.microsoft.com/en-us/rest/api/compute/virtualmachineimages).",
            "type": "string"
          }
        },
        "type": "object",
        "x-ms-discriminator-value": "PlatformImage"
      },
      "ImageTemplatePowerShellCustomizer": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageTemplateCustomizer"
          }
        ],
        "description": "Runs the specified PowerShell on the VM (Windows). Corresponds to Packer powershell provisioner. Exactly one of 'script' or 'inline' can be specified.",
        "properties": {
          "inline": {
            "description": "Array of PowerShell commands to execute",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "script": {
            "description": "The PowerShell script to be run for customizing. It can be a github link, SAS URI for Azure Storage, etc",
            "type": "string"
          },
          "validExitCodes": {
            "description": "Valid exit codes for the PowerShell script. [Default: 0]",
            "items": {
              "type": "integer"
            },
            "type": "array"
          }
        },
        "type": "object",
        "x-ms-discriminator-value": "PowerShell"
      },
      "ImageTemplateProperties": {
        "properties": {
          "customize": {
            "description": "Specifies the properties used to describe the customization steps of the image, like Image source etc",
            "items": {
              "$ref": "#/components/schemas/ImageTemplateCustomizer"
            },
            "type": "array"
          },
          "distribute": {
            "description": "The distribution targets where the image output needs to go to.",
            "items": {
              "$ref": "#/components/schemas/ImageTemplateDistributor"
            },
            "type": "array"
          },
          "lastRunStatus": {
            "$ref": "#/components/schemas/ImageTemplateLastRunStatus",
            "description": "State of 'run' that is currently executing or was last executed.",
            "readOnly": true
          },
          "provisioningError": {
            "$ref": "#/components/schemas/ProvisioningError",
            "description": "Provisioning error, if any",
            "readOnly": true
          },
          "provisioningState": {
            "$ref": "#/components/schemas/ProvisioningState",
            "description": "Provisioning state of the resource",
            "readOnly": true
          },
          "source": {
            "$ref": "#/components/schemas/ImageTemplateSource",
            "description": "Specifies the properties used to describe the source image."
          }
        },
        "required": [
          "source",
          "distribute"
        ],
        "type": "object"
      },
      "ImageTemplateRestartCustomizer": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageTemplateCustomizer"
          }
        ],
        "description": "Reboots a VM and waits for it to come back online (Windows). Corresponds to Packer windows-restart provisioner",
        "properties": {
          "restartCheckCommand": {
            "description": "Command to check if restart succeeded [Default: '']",
            "type": "string"
          },
          "restartCommand": {
            "description": "Command to execute the restart [Default: 'shutdown /r /f /t 0 /c \"packer restart\"']",
            "type": "string"
          },
          "restartTimeout": {
            "description": "Restart timeout specified as a string of magnitude and unit, e.g. '5m' (5 minutes) or '2h' (2 hours) [Default: '5m']",
            "type": "string"
          }
        },
        "type": "object",
        "x-ms-discriminator-value": "WindowsRestart"
      },
      "ImageTemplateSharedImageDistributor": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageTemplateDistributor"
          }
        ],
        "description": "Distribute via Shared Image Gallery.",
        "properties": {
          "galleryImageId": {
            "description": "Resource Id of the Shared Image Gallery image",
            "type": "string"
          },
          "replicationRegions": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "galleryImageId",
          "replicationRegions"
        ],
        "type": "object",
        "x-ms-discriminator-value": "SharedImage"
      },
      "ImageTemplateShellCustomizer": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageTemplateCustomizer"
          }
        ],
        "description": "Runs a shell script during the customization phase (Linux). Corresponds to Packer shell provisioner. Exactly one of 'script' or 'inline' can be specified.",
        "properties": {
          "inline": {
            "description": "Array of shell commands to execute",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "script": {
            "description": "The shell script to be run for customizing. It can be a github link, SAS URI for Azure Storage, etc",
            "type": "string"
          }
        },
        "type": "object",
        "x-ms-discriminator-value": "Shell"
      },
      "ImageTemplateSource": {
        "discriminator": {
          "propertyName": "type"
        },
        "properties": {
          "type": {
            "description": "Specifies the type of source image you want to start with.",
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "type": "object"
      },
      "ImageTemplateUpdateParameters": {
        "description": "Parameters for updating an image template.",
        "properties": {
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "The user-specified tags associated with the image template.",
            "type": "object"
          }
        },
        "type": "object"
      },
      "ImageTemplateVhdDistributor": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageTemplateDistributor"
          }
        ],
        "description": "Distribute via VHD in a storage account.",
        "type": "object",
        "x-ms-discriminator-value": "VHD"
      },
      "InnerError": {
        "description": "Inner error details.",
        "properties": {
          "errorDetail": {
            "description": "The internal error message or exception dump.",
            "type": "string"
          },
          "exceptionType": {
            "description": "The exception type.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "Operation": {
        "properties": {
          "display": {
            "properties": {
              "description": {
                "title": "The friendly name of the operation",
                "type": "string"
              },
              "operation": {
                "description": "For example: read, write, delete, or listKeys/action",
                "title": "The operation type.",
                "type": "string"
              },
              "provider": {
                "title": "Friendly name of the resource provider.",
                "type": "string"
              },
              "resource": {
                "title": "The resource type on which the operation is performed.",
                "type": "string"
              }
            },
            "title": "The object that describes the operation.",
            "type": "object"
          },
          "name": {
            "description": "This is of the format {provider}/{resource}/{operation}",
            "title": "The operation name.",
            "type": "string"
          },
          "origin": {
            "title": "The intended executor of the operation.",
            "type": "string"
          },
          "properties": {
            "title": "Properties of the operation.",
            "type": "object"
          }
        },
        "title": "A REST API operation",
        "type": "object"
      },
      "OperationListResult": {
        "properties": {
          "nextLink": {
            "title": "The URL to get the next set of operation list results if there are any.",
            "type": "string"
          },
          "value": {
            "items": {
              "$ref": "#/components/schemas/Operation"
            },
            "title": "The list of operations supported by the resource provider.",
            "type": "array"
          }
        },
        "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.",
        "type": "object"
      },
      "ProvisioningError": {
        "properties": {
          "message": {
            "description": "Verbose error message about the provisioning failure",
            "type": "string"
          },
          "provisioningErrorCode": {
            "description": "Error code of the provisioning failure",
            "enum": [
              "BadSourceType",
              "BadPIRSource",
              "BadISOSource",
              "BadManagedImageSource",
              "BadCustomizerType",
              "UnsupportedCustomizerType",
              "NoCustomizerScript",
              "BadDistributeType",
              "BadSharedImageDistribute",
              "ServerError",
              "Other"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "ProvisioningState": {
        "description": "Provisioning state of the resource",
        "enum": [
          "Creating",
          "Succeeded",
          "Failed",
          "Deleting"
        ],
        "type": "string"
      },
      "Resource": {
        "description": "The Resource model definition.",
        "properties": {
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Resource tags",
            "type": "object"
          },
          "id": {
            "description": "Resource Id",
            "readOnly": true,
            "type": "string"
          },
          "location": {
            "description": "Resource location",
            "type": "string",
            "x-ms-mutability": [
              "create",
              "read"
            ]
          },
          "name": {
            "description": "Resource name",
            "readOnly": true,
            "type": "string"
          },
          "type": {
            "description": "Resource type",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "location"
        ],
        "type": "object",
        "x-ms-azure-resource": true
      },
      "RunOutput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SubResource"
          }
        ],
        "description": "Represents an output that was created by running an image template.",
        "properties": {
          "properties": {
            "$ref": "#/components/schemas/RunOutputProperties",
            "x-ms-client-flatten": true
          }
        },
        "type": "object"
      },
      "RunOutputCollection": {
        "properties": {
          "nextLink": {
            "description": "The continuation token.",
            "type": "string"
          },
          "value": {
            "items": {
              "$ref": "#/components/schemas/RunOutput"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "RunOutputProperties": {
        "properties": {
          "artifactId": {
            "description": "The resource id of the artifact.",
            "type": "string"
          },
          "artifactUri": {
            "description": "The location URI of the artifact.",
            "type": "string"
          },
          "provisioningState": {
            "$ref": "#/components/schemas/ProvisioningState",
            "description": "Provisioning state of the resource",
            "readOnly": true
          }
        },
        "type": "object"
      },
      "SubResource": {
        "description": "The Sub Resource model definition.",
        "properties": {
          "id": {
            "description": "Resource Id",
            "readOnly": true,
            "type": "string"
          },
          "name": {
            "description": "Resource name",
            "type": "string"
          },
          "type": {
            "description": "Resource type",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      }
    },
    "securitySchemes": {
      "azure_auth": {
        "description": "Azure Active Directory OAuth2 Flow",
        "flows": {
          "implicit": {
            "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
            "scopes": {
              "user_impersonation": "impersonate your user account"
            }
          }
        },
        "type": "oauth2"
      }
    }
  },
  "security": [
    {
      "azure_auth": [
        "user_impersonation"
      ]
    }
  ]
}