{
  "swagger": "2.0",
  "schemes": [
    "https"
  ],
  "host": "azure.local",
  "info": {
    "description": "This Swagger was generated by the API Framework.",
    "title": "Azure Media Services",
    "version": "2018-03-30-preview",
    "x-apisguru-categories": [
      "cloud"
    ],
    "x-logo": {
      "url": "https://api.apis.guru/v2/cache/logo/https_assets.onestore.ms_cdnfiles_onestorerolling-1606-01000_shell_v3_images_logo_microsoft.png"
    },
    "x-origin": [
      {
        "format": "swagger",
        "url": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/mediaservices/resource-manager/Microsoft.Media/preview/2018-03-30-preview/Encoding.json",
        "version": "2.0"
      }
    ],
    "x-preferred": false,
    "x-providerName": "azure.com",
    "x-serviceName": "mediaservices-Encoding",
    "x-tags": [
      "Azure",
      "Microsoft"
    ]
  },
  "consumes": [
    "application/json"
  ],
  "produces": [
    "application/json"
  ],
  "securityDefinitions": {
    "azure_auth": {
      "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
      "description": "Azure Active Directory OAuth2 Flow",
      "flow": "implicit",
      "scopes": {
        "user_impersonation": "Impersonate your user account"
      },
      "type": "oauth2"
    }
  },
  "parameters": {
    "ApiVersion": {
      "description": "The Version of the API to be used with the client request.",
      "in": "query",
      "name": "api-version",
      "required": true,
      "type": "string"
    },
    "MediaServicesAccountName": {
      "description": "The Media Services account name.",
      "in": "path",
      "name": "accountName",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "ResourceGroupName": {
      "description": "The name of the resource group within the Azure subscription.",
      "in": "path",
      "name": "resourceGroupName",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "SubscriptionId": {
      "description": "The unique identifier for a Microsoft Azure subscription.",
      "in": "path",
      "name": "subscriptionId",
      "required": true,
      "type": "string"
    }
  },
  "paths": {
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/transforms": {
      "get": {
        "description": "Lists the Transforms in the account.",
        "operationId": "Transforms_List",
        "parameters": [
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/MediaServicesAccountName"
          },
          {
            "$ref": "#/parameters/ApiVersion"
          },
          {
            "description": "Restricts the set of items returned.",
            "in": "query",
            "name": "$filter",
            "required": false,
            "type": "string"
          },
          {
            "description": "Specifies a non-negative integer n that limits the number of items returned from a collection. The service returns the number of available items up to but not greater than the specified value n.",
            "in": "query",
            "name": "$top",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Specifies a non-negative integer n that excludes the first n items of the queried collection from the result. The service returns items starting at position n+1.",
            "in": "query",
            "name": "$skip",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/TransformCollection"
            }
          },
          "default": {
            "description": "Detailed error information.",
            "schema": {
              "$ref": "#/definitions/ApiError"
            }
          }
        },
        "summary": "List Transforms",
        "x-ms-examples": {
          "Lists the Transforms": {
            "parameters": {
              "accountName": "contosomedia",
              "api-version": "2018-03-30-preview",
              "resourceGroupName": "contosoresources",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contosoresources/providers/Microsoft.Media/mediaservices/contosomedia/transforms/SampleEncode",
                      "name": "SampleEncode",
                      "properties": {
                        "created": "2018-03-20T13:33:29.4642953-04:00",
                        "description": "A sample transform using the standard encoder with a built in preset.",
                        "lastModified": "2018-03-20T13:33:29.4642953-04:00",
                        "outputs": [
                          {
                            "onError": "StopProcessingJob",
                            "preset": {
                              "@odata.type": "#Microsoft.Media.BuiltInStandardEncoderPreset",
                              "presetName": "AdaptiveStreaming"
                            },
                            "relativePriority": "Normal"
                          }
                        ]
                      },
                      "type": "Microsoft.Media/mediaservices/transforms"
                    },
                    {
                      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contosoresources/providers/Microsoft.Media/mediaservices/contosomedia/transforms/SampleEncodeAndVideoIndex",
                      "name": "SampleEncodeAndVideoIndex",
                      "properties": {
                        "created": "2018-03-20T13:33:29.4682947-04:00",
                        "description": "A sample transform using the standard encoder with a built in preset and the video indexer.",
                        "lastModified": "2018-03-20T13:33:29.4682947-04:00",
                        "outputs": [
                          {
                            "onError": "StopProcessingJob",
                            "preset": {
                              "@odata.type": "#Microsoft.Media.BuiltInStandardEncoderPreset",
                              "presetName": "AdaptiveStreaming"
                            },
                            "relativePriority": "Normal"
                          },
                          {
                            "onError": "StopProcessingJob",
                            "preset": {
                              "@odata.type": "#Microsoft.Media.VideoAnalyzerPreset",
                              "audioInsightsOnly": false,
                              "audioLanguage": "en-US"
                            },
                            "relativePriority": "Normal"
                          }
                        ]
                      },
                      "type": "Microsoft.Media/mediaservices/transforms"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-odata": "#/definitions/Transform",
        "x-ms-pageable": {
          "nextLinkName": "@odata.nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/transforms/{transformName}": {
      "delete": {
        "description": "Deletes a Transform.",
        "operationId": "Transforms_Delete",
        "parameters": [
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/MediaServicesAccountName"
          },
          {
            "description": "The Transform name.",
            "in": "path",
            "name": "transformName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersion"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "NoContent"
          },
          "default": {
            "description": "Detailed error information.",
            "schema": {
              "$ref": "#/definitions/ApiError"
            }
          }
        },
        "summary": "Delete Transform",
        "x-ms-examples": {
          "Delete a Transform": {
            "parameters": {
              "accountName": "contosomedia",
              "api-version": "2018-03-30-preview",
              "resourceGroupName": "contosoresources",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "transformName": "SampleTransform"
            },
            "responses": {
              "200": {},
              "204": {}
            }
          }
        }
      },
      "get": {
        "description": "Gets a Transform.",
        "operationId": "Transforms_Get",
        "parameters": [
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/MediaServicesAccountName"
          },
          {
            "description": "The Transform name.",
            "in": "path",
            "name": "transformName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersion"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Transform"
            }
          },
          "404": {
            "description": "NotFound"
          },
          "default": {
            "description": "Detailed error information.",
            "schema": {
              "$ref": "#/definitions/ApiError"
            }
          }
        },
        "summary": "Get Transform",
        "x-ms-examples": {
          "Get a Transform by name": {
            "parameters": {
              "accountName": "contosomedia",
              "api-version": "2018-03-30-preview",
              "resourceGroupName": "contosoresources",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "transformName": "SampleTransform"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contosoresources/providers/Microsoft.Media/mediaservices/contosomedia/transforms/SampleTransform",
                  "name": "SampleTransform",
                  "properties": {
                    "created": "2018-03-05T23:52:19.6921412-05:00",
                    "description": "A sample transform using the standard encoder with a built in preset.",
                    "lastModified": "2018-03-05T23:52:19.6921412-05:00",
                    "outputs": [
                      {
                        "onError": "StopProcessingJob",
                        "preset": {
                          "@odata.type": "#Microsoft.Media.BuiltInStandardEncoderPreset",
                          "presetName": "H264MultipleBitrate1080p"
                        },
                        "relativePriority": "Normal"
                      }
                    ]
                  },
                  "type": "Microsoft.Media/mediaservices/transforms"
                }
              },
              "404": {}
            }
          }
        }
      },
      "patch": {
        "description": "Updates a Transform.",
        "operationId": "Transforms_Update",
        "parameters": [
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/MediaServicesAccountName"
          },
          {
            "description": "The Transform name.",
            "in": "path",
            "name": "transformName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The request parameters",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Transform"
            }
          },
          {
            "$ref": "#/parameters/ApiVersion"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Transform"
            }
          },
          "default": {
            "description": "Detailed error information.",
            "schema": {
              "$ref": "#/definitions/ApiError"
            }
          }
        },
        "summary": "Update Transform",
        "x-ms-examples": {
          "Update a Transform.": {
            "parameters": {
              "accountName": "contosomedia",
              "api-version": "2018-03-30-preview",
              "parameters": {
                "properties": {
                  "created": "0001-01-01T00:00:00-05:00",
                  "description": "Example transform to illustrate update.",
                  "lastModified": "0001-01-01T00:00:00-05:00",
                  "outputs": [
                    {
                      "onError": null,
                      "preset": {
                        "@odata.type": "#Microsoft.Media.BuiltInStandardEncoderPreset",
                        "presetName": "H264MultipleBitrate720p"
                      },
                      "relativePriority": null
                    }
                  ]
                }
              },
              "resourceGroupName": "contosoresources",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "transformName": "TransformToUpdate"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contosoresources/providers/Microsoft.Media/mediaservices/contosomedia/transforms/TransformToUpdate",
                  "name": "TransformToUpdate",
                  "properties": {
                    "created": "2018-03-05T23:52:19.9109582-05:00",
                    "description": "Example transform to illustrate update.",
                    "lastModified": "2018-03-05T23:52:19.9149613-05:00",
                    "outputs": [
                      {
                        "onError": "StopProcessingJob",
                        "preset": {
                          "@odata.type": "#Microsoft.Media.BuiltInStandardEncoderPreset",
                          "presetName": "H264MultipleBitrate720p"
                        },
                        "relativePriority": "Normal"
                      }
                    ]
                  },
                  "type": "Microsoft.Media/mediaservices/transforms"
                }
              }
            }
          }
        }
      },
      "put": {
        "description": "Creates or updates a new Transform.",
        "operationId": "Transforms_CreateOrUpdate",
        "parameters": [
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/MediaServicesAccountName"
          },
          {
            "description": "The Transform name.",
            "in": "path",
            "name": "transformName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The request parameters",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Transform"
            }
          },
          {
            "$ref": "#/parameters/ApiVersion"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Transform"
            }
          },
          "201": {
            "description": "Created",
            "schema": {
              "$ref": "#/definitions/Transform"
            }
          },
          "default": {
            "description": "Detailed error information.",
            "schema": {
              "$ref": "#/definitions/ApiError"
            }
          }
        },
        "summary": "Create or Update Transform",
        "x-ms-examples": {
          "Create or update a Transform": {
            "parameters": {
              "accountName": "contosomedia",
              "api-version": "2018-03-30-preview",
              "parameters": {
                "properties": {
                  "created": "0001-01-01T00:00:00-05:00",
                  "description": "Example transform to illustrate create and update.",
                  "lastModified": "0001-01-01T00:00:00-05:00",
                  "outputs": [
                    {
                      "onError": null,
                      "preset": {
                        "@odata.type": "#Microsoft.Media.BuiltInStandardEncoderPreset",
                        "presetName": "AdaptiveStreaming"
                      },
                      "relativePriority": null
                    }
                  ]
                }
              },
              "resourceGroupName": "contosoresources",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "transformName": "CreatedTransform"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contosoresources/providers/Microsoft.Media/mediaservices/contosomedia/transforms/CreatedTransform",
                  "name": "CreatedTransform",
                  "properties": {
                    "created": "2018-03-20T13:33:30.1276806-04:00",
                    "description": "Example transform to illustrate create and update.",
                    "lastModified": "2018-03-20T13:33:30.144677-04:00",
                    "outputs": [
                      {
                        "onError": "StopProcessingJob",
                        "preset": {
                          "@odata.type": "#Microsoft.Media.BuiltInStandardEncoderPreset",
                          "presetName": "AdaptiveStreaming"
                        },
                        "relativePriority": "Normal"
                      }
                    ]
                  },
                  "type": "Microsoft.Media/mediaservices/transforms"
                }
              },
              "201": {
                "body": {
                  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contosoresources/providers/Microsoft.Media/mediaservices/contosomedia/transforms/CreatedTransform",
                  "name": "CreatedTransform",
                  "properties": {
                    "created": "2018-03-20T13:33:30.1276806-04:00",
                    "description": "Example transform to illustrate create and update.",
                    "lastModified": "2018-03-20T13:33:30.1276806-04:00",
                    "outputs": [
                      {
                        "onError": "StopProcessingJob",
                        "preset": {
                          "@odata.type": "#Microsoft.Media.BuiltInStandardEncoderPreset",
                          "presetName": "AdaptiveStreaming"
                        },
                        "relativePriority": "Normal"
                      }
                    ]
                  },
                  "type": "Microsoft.Media/mediaservices/transforms"
                }
              }
            }
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/transforms/{transformName}/jobs": {
      "get": {
        "description": "Lists all of the Jobs for the Transform.",
        "operationId": "Jobs_List",
        "parameters": [
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/MediaServicesAccountName"
          },
          {
            "description": "The Transform name.",
            "in": "path",
            "name": "transformName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersion"
          },
          {
            "description": "Restricts the set of items returned.",
            "in": "query",
            "name": "$filter",
            "required": false,
            "type": "string"
          },
          {
            "description": "Specifies a non-negative integer n that limits the number of items returned from a collection. The service returns the number of available items up to but not greater than the specified value n.",
            "in": "query",
            "name": "$top",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Specifies a non-negative integer n that excludes the first n items of the queried collection from the result. The service returns items starting at position n+1.",
            "in": "query",
            "name": "$skip",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/JobCollection"
            }
          },
          "default": {
            "description": "Detailed error information.",
            "schema": {
              "$ref": "#/definitions/ApiError"
            }
          }
        },
        "summary": "List Jobs",
        "x-ms-examples": {
          "Lists all of the Jobs for the Transform.": {
            "parameters": {
              "accountName": "contosomedia",
              "api-version": "2018-03-30-preview",
              "resourceGroupName": "contosoresources",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "transformName": "ExampleTransform"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contosoresources/providers/Microsoft.Media/mediaservices/contosomedia/transforms/ExampleTransform/jobs/job1",
                      "name": "job1",
                      "properties": {
                        "created": "2018-03-05T23:52:19.9449439Z",
                        "description": null,
                        "input": {
                          "@odata.type": "#Microsoft.Media.JobInputs",
                          "inputs": [
                            {
                              "@odata.type": "#Microsoft.Media.JobInputAsset",
                              "assetName": "job1 input",
                              "files": [],
                              "label": null
                            }
                          ],
                          "label": null
                        },
                        "lastModified": "2018-03-05T23:52:19.9449439Z",
                        "outputs": [
                          {
                            "@odata.type": "#Microsoft.Media.JobOutputAsset",
                            "assetName": "job1 output",
                            "error": null,
                            "progress": 0,
                            "state": "Queued"
                          }
                        ],
                        "priority": "Low",
                        "state": "Queued"
                      },
                      "type": "Microsoft.Media/mediaservices/transforms/jobs"
                    },
                    {
                      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contosoresources/providers/Microsoft.Media/mediaservices/contosomedia/transforms/ExampleTransform/jobs/job2",
                      "name": "job2",
                      "properties": {
                        "created": "2018-03-05T23:52:19.9459101Z",
                        "description": null,
                        "input": {
                          "@odata.type": "#Microsoft.Media.JobInputs",
                          "inputs": [
                            {
                              "@odata.type": "#Microsoft.Media.JobInputAsset",
                              "assetName": "job2 input",
                              "files": [],
                              "label": null
                            }
                          ],
                          "label": null
                        },
                        "lastModified": "2018-03-05T23:52:19.9459101Z",
                        "outputs": [
                          {
                            "@odata.type": "#Microsoft.Media.JobOutputAsset",
                            "assetName": "job2 output",
                            "error": null,
                            "progress": 50,
                            "state": "Processing"
                          }
                        ],
                        "priority": "Low",
                        "state": "Processing"
                      },
                      "type": "Microsoft.Media/mediaservices/transforms/jobs"
                    },
                    {
                      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contosoresources/providers/Microsoft.Media/mediaservices/contosomedia/transforms/ExampleTransform/jobs/job3",
                      "name": "job3",
                      "properties": {
                        "created": "2018-03-05T23:52:19.9459101Z",
                        "description": null,
                        "input": {
                          "@odata.type": "#Microsoft.Media.JobInputs",
                          "inputs": [
                            {
                              "@odata.type": "#Microsoft.Media.JobInputAsset",
                              "assetName": "job3 input",
                              "files": [],
                              "label": null
                            }
                          ],
                          "label": null
                        },
                        "lastModified": "2018-03-05T23:52:19.9459101Z",
                        "outputs": [
                          {
                            "@odata.type": "#Microsoft.Media.JobOutputAsset",
                            "assetName": "job3 output",
                            "error": null,
                            "progress": 100,
                            "state": "Finished"
                          }
                        ],
                        "priority": "Low",
                        "state": "Finished"
                      },
                      "type": "Microsoft.Media/mediaservices/transforms/jobs"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-odata": "#/definitions/Job",
        "x-ms-pageable": {
          "nextLinkName": "@odata.nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/transforms/{transformName}/jobs/{jobName}": {
      "delete": {
        "description": "Deletes a Job.",
        "operationId": "Jobs_Delete",
        "parameters": [
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/MediaServicesAccountName"
          },
          {
            "description": "The Transform name.",
            "in": "path",
            "name": "transformName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The Job name.",
            "in": "path",
            "name": "jobName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersion"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "NoContent"
          },
          "default": {
            "description": "Detailed error information.",
            "schema": {
              "$ref": "#/definitions/ApiError"
            }
          }
        },
        "summary": "Delete Job",
        "x-ms-examples": {
          "Delete a Job": {
            "parameters": {
              "accountName": "contosomedia",
              "api-version": "2018-03-30-preview",
              "jobName": "jobToDelete",
              "resourceGroupName": "contosoresources",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "transformName": "ExampleTransform"
            },
            "responses": {
              "200": {},
              "204": {}
            }
          }
        }
      },
      "get": {
        "description": "Gets a Job.",
        "operationId": "Jobs_Get",
        "parameters": [
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/MediaServicesAccountName"
          },
          {
            "description": "The Transform name.",
            "in": "path",
            "name": "transformName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The Job name.",
            "in": "path",
            "name": "jobName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersion"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Job"
            }
          },
          "404": {
            "description": "NotFound"
          },
          "default": {
            "description": "Detailed error information.",
            "schema": {
              "$ref": "#/definitions/ApiError"
            }
          }
        },
        "summary": "Get Job",
        "x-ms-examples": {
          "Get a Job by name": {
            "parameters": {
              "accountName": "contosomedia",
              "api-version": "2018-03-30-preview",
              "jobName": "job1",
              "resourceGroupName": "contosoresources",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "transformName": "ExampleTransform"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contosoresources/providers/Microsoft.Media/mediaservices/contosomedia/transforms/ExampleTransform/jobs/job1",
                  "name": "job1",
                  "properties": {
                    "created": "2018-03-05T23:52:20.0074211Z",
                    "description": null,
                    "input": {
                      "@odata.type": "#Microsoft.Media.JobInputs",
                      "inputs": [
                        {
                          "@odata.type": "#Microsoft.Media.JobInputAsset",
                          "assetName": "job1 input",
                          "files": [],
                          "label": null
                        }
                      ],
                      "label": null
                    },
                    "lastModified": "2018-03-05T23:52:20.0074211Z",
                    "outputs": [
                      {
                        "@odata.type": "#Microsoft.Media.JobOutputAsset",
                        "assetName": "job1 output",
                        "error": null,
                        "progress": 0,
                        "state": "Queued"
                      }
                    ],
                    "priority": "Low",
                    "state": "Queued"
                  },
                  "type": "Microsoft.Media/mediaservices/transforms/jobs"
                }
              },
              "404": {}
            }
          }
        }
      },
      "put": {
        "description": "Creates a Job.",
        "operationId": "Jobs_Create",
        "parameters": [
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/MediaServicesAccountName"
          },
          {
            "description": "The Transform name.",
            "in": "path",
            "name": "transformName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The Job name.",
            "in": "path",
            "name": "jobName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The request parameters",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Job"
            }
          },
          {
            "$ref": "#/parameters/ApiVersion"
          }
        ],
        "responses": {
          "201": {
            "description": "Created",
            "schema": {
              "$ref": "#/definitions/Job"
            }
          },
          "default": {
            "description": "Detailed error information.",
            "schema": {
              "$ref": "#/definitions/ApiError"
            }
          }
        },
        "summary": "Create Job",
        "x-ms-examples": {
          "Create a Job": {
            "parameters": {
              "accountName": "contosomedia",
              "api-version": "2018-03-30-preview",
              "jobName": "job1",
              "parameters": {
                "properties": {
                  "input": {
                    "@odata.type": "#Microsoft.Media.JobInputAsset",
                    "assetName": "job1-InputAsset"
                  },
                  "outputs": [
                    {
                      "@odata.type": "#Microsoft.Media.JobOutputAsset",
                      "assetName": "job1-OutputAsset"
                    }
                  ]
                }
              },
              "resourceGroupName": "contosoresources",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "transformName": "ExampleTransform"
            },
            "responses": {
              "201": {
                "body": {
                  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contosoresources/providers/Microsoft.Media/mediaservices/contosomedia/transforms/ExampleTransform/jobs/job1",
                  "name": "job1",
                  "properties": {
                    "created": "2018-03-05T23:52:20.0364205Z",
                    "description": null,
                    "input": {
                      "@odata.type": "#Microsoft.Media.JobInputs",
                      "inputs": [
                        {
                          "@odata.type": "#Microsoft.Media.JobInputAsset",
                          "assetName": "job1-InputAsset",
                          "files": [],
                          "label": null
                        }
                      ],
                      "label": null
                    },
                    "lastModified": "2018-03-05T23:52:20.0364205Z",
                    "outputs": [
                      {
                        "@odata.type": "#Microsoft.Media.JobOutputAsset",
                        "assetName": "job1-OutputAsset",
                        "error": null,
                        "progress": 0,
                        "state": "Queued"
                      }
                    ],
                    "priority": "Normal",
                    "state": "Queued"
                  },
                  "type": "Microsoft.Media/mediaservices/transforms/jobs"
                }
              }
            }
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/transforms/{transformName}/jobs/{jobName}/cancelJob": {
      "post": {
        "description": "Cancel a Job.",
        "operationId": "Jobs_CancelJob",
        "parameters": [
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/MediaServicesAccountName"
          },
          {
            "description": "The Transform name.",
            "in": "path",
            "name": "transformName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The Job name.",
            "in": "path",
            "name": "jobName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersion"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "default": {
            "description": "Detailed error information.",
            "schema": {
              "$ref": "#/definitions/ApiError"
            }
          }
        },
        "summary": "Cancel Job",
        "x-ms-examples": {
          "Cancel a Job": {
            "parameters": {
              "accountName": "contosomedia",
              "api-version": "2018-03-30-preview",
              "jobName": "job1",
              "resourceGroupName": "contosoresources",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "transformName": "ExampleTransform"
            },
            "responses": {
              "200": {}
            }
          }
        }
      }
    }
  },
  "definitions": {
    "AacAudio": {
      "allOf": [
        {
          "$ref": "#/definitions/Audio"
        }
      ],
      "description": "Describes Advanced Audio Codec (AAC) audio encoding settings.",
      "properties": {
        "profile": {
          "description": "The encoding profile to be used when encoding audio with AAC.",
          "enum": [
            "AacLc",
            "HeAacV1",
            "HeAacV2"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsExtensible": true,
            "name": "AacAudioProfile",
            "values": [
              {
                "description": "Specifies that the output audio is to be encoded into AAC Low Complexity profile (AAC-LC).",
                "value": "AacLc"
              },
              {
                "description": "Specifies that the output audio is to be encoded into HE-AAC v1 profile.",
                "value": "HeAacV1"
              },
              {
                "description": "Specifies that the output audio is to be encoded into HE-AAC v2 profile.",
                "value": "HeAacV2"
              }
            ]
          }
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.AacAudio"
    },
    "ApiError": {
      "description": "The API error.",
      "properties": {
        "error": {
          "$ref": "#/definitions/ODataError",
          "description": "The error properties."
        }
      },
      "type": "object"
    },
    "Audio": {
      "allOf": [
        {
          "$ref": "#/definitions/Codec"
        }
      ],
      "description": "Defines the common properties for all audio codecs.",
      "properties": {
        "bitrate": {
          "description": "The bitrate, in bits per second, of the output encoded audio.",
          "format": "int32",
          "type": "integer"
        },
        "channels": {
          "description": "The number of channels in the audio.",
          "format": "int32",
          "type": "integer"
        },
        "samplingRate": {
          "description": "The sampling rate to use for encoding in hertz.",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.Audio"
    },
    "AudioAnalyzerPreset": {
      "allOf": [
        {
          "$ref": "#/definitions/Preset"
        }
      ],
      "description": "The Audio Analyzer preset applies a pre-defined set of AI-based analysis operations, including speech transcription. Currently, the preset supports processing of content with a single audio track.",
      "properties": {
        "audioLanguage": {
          "description": "The language for the audio payload in the input using the BCP-47 format of 'language tag-region' (e.g: 'en-US'). The list of supported languages are, 'en-US', 'en-GB', 'es-ES', 'es-MX', 'fr-FR', 'it-IT', 'ja-JP', 'pt-BR', 'zh-CN'.",
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.AudioAnalyzerPreset"
    },
    "AudioOverlay": {
      "allOf": [
        {
          "$ref": "#/definitions/Overlay"
        }
      ],
      "description": "Describes the properties of an audio overlay.",
      "properties": {},
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.AudioOverlay"
    },
    "BuiltInStandardEncoderPreset": {
      "allOf": [
        {
          "$ref": "#/definitions/Preset"
        }
      ],
      "description": "Describes a built-in preset for encoding the input video with the Standard Encoder.",
      "properties": {
        "presetName": {
          "description": "The built-in preset to be used for encoding videos.",
          "enum": [
            "AdaptiveStreaming",
            "AACGoodQualityAudio",
            "H264MultipleBitrate1080p",
            "H264MultipleBitrate720p",
            "H264MultipleBitrateSD"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsExtensible": true,
            "name": "EncoderNamedPreset",
            "values": [
              {
                "description": "Produces a set of GOP aligned MP4 files with H.264 video and stereo AAC audio. Auto-generates a bitrate ladder based on the input resolution and bitrate. The auto-generated preset will never exceed the input resolution and bitrate. For example, if the input is 720p at 3 Mbps, output will remain 720p at best, and will start at rates lower than 3 Mbps. The output will have video and audio in separate MP4 files, which is optimal for adaptive streaming.",
                "value": "AdaptiveStreaming"
              },
              {
                "description": "Produces a single MP4 file containing only stereo audio encoded at 192 kbps.",
                "value": "AACGoodQualityAudio"
              },
              {
                "description": "Produces a set of 8 GOP-aligned MP4 files, ranging from 6000 kbps to 400 kbps, and stereo AAC audio. Resolution starts at 1080p and goes down to 360p.",
                "value": "H264MultipleBitrate1080p"
              },
              {
                "description": "Produces a set of 6 GOP-aligned MP4 files, ranging from 3400 kbps to 400 kbps, and stereo AAC audio. Resolution starts at 720p and goes down to 360p.",
                "value": "H264MultipleBitrate720p"
              },
              {
                "description": "Produces a set of 5 GOP-aligned MP4 files, ranging from 1600kbps to 400 kbps, and stereo AAC audio. Resolution starts at 480p and goes down to 360p.",
                "value": "H264MultipleBitrateSD"
              }
            ]
          }
        }
      },
      "required": [
        "presetName"
      ],
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.BuiltInStandardEncoderPreset"
    },
    "Codec": {
      "description": "Describes the basic properties of all codecs.",
      "discriminator": "@odata.type",
      "properties": {
        "@odata.type": {
          "description": "The discriminator for derived types.",
          "type": "string"
        },
        "label": {
          "description": "An optional label for the codec. The label can be used to control muxing behavior.",
          "type": "string"
        }
      },
      "required": [
        "@odata.type"
      ],
      "type": "object"
    },
    "CopyAudio": {
      "allOf": [
        {
          "$ref": "#/definitions/Codec"
        }
      ],
      "description": "A codec flag, which tells the encoder to copy the input audio bitstream.",
      "properties": {},
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.CopyAudio"
    },
    "CopyVideo": {
      "allOf": [
        {
          "$ref": "#/definitions/Codec"
        }
      ],
      "description": "A codec flag, which tells the encoder to copy the input video bitstream without re-encoding.",
      "properties": {},
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.CopyVideo"
    },
    "Deinterlace": {
      "description": "Describes the de-interlacing settings.",
      "properties": {
        "mode": {
          "description": "The deinterlacing mode. Defaults to AutoPixelAdaptive.",
          "enum": [
            "Off",
            "AutoPixelAdaptive"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsExtensible": true,
            "name": "DeinterlaceMode",
            "values": [
              {
                "description": "Disables de-interlacing of the source video.",
                "value": "Off"
              },
              {
                "description": "Apply automatic pixel adaptive de-interlacing on each frame in the input video.",
                "value": "AutoPixelAdaptive"
              }
            ]
          }
        },
        "parity": {
          "description": "The field parity for de-interlacing, defaults to Auto.",
          "enum": [
            "Auto",
            "TopFieldFirst",
            "BottomFieldFirst"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsExtensible": true,
            "name": "DeinterlaceParity",
            "values": [
              {
                "description": "Automatically detect the order of fields",
                "value": "Auto"
              },
              {
                "description": "Apply top field first processing of input video.",
                "value": "TopFieldFirst"
              },
              {
                "description": "Apply bottom field first processing of input video.",
                "value": "BottomFieldFirst"
              }
            ]
          }
        }
      },
      "type": "object"
    },
    "Filters": {
      "description": "Describes all the filtering operations, such as de-interlacing, rotation etc. that are to be applied to the input media before encoding.",
      "properties": {
        "crop": {
          "$ref": "#/definitions/Rectangle",
          "description": "The parameters for the rectangular window with which to crop the input video."
        },
        "deinterlace": {
          "$ref": "#/definitions/Deinterlace",
          "description": "The de-interlacing settings."
        },
        "overlays": {
          "description": "The properties of overlays to be applied to the input video. These could be audio, image or video overlays.",
          "items": {
            "$ref": "#/definitions/Overlay"
          },
          "type": "array"
        },
        "rotation": {
          "description": "The rotation, if any, to be applied to the input video, before it is encoded. Default is Auto",
          "enum": [
            "Auto",
            "None",
            "Rotate0",
            "Rotate90",
            "Rotate180",
            "Rotate270"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsExtensible": true,
            "name": "Rotation",
            "values": [
              {
                "description": "Automatically detect and rotate as needed.",
                "value": "Auto"
              },
              {
                "description": "Do not rotate the video.  If the output format supports it, any metadata about rotation is kept intact.",
                "value": "None"
              },
              {
                "description": "Do not rotate the video but remove any metadata about the rotation.",
                "value": "Rotate0"
              },
              {
                "description": "Rotate 90 degrees clockwise.",
                "value": "Rotate90"
              },
              {
                "description": "Rotate 180 degrees clockwise.",
                "value": "Rotate180"
              },
              {
                "description": "Rotate 270 degrees clockwise.",
                "value": "Rotate270"
              }
            ]
          }
        }
      },
      "type": "object"
    },
    "Format": {
      "description": "Base class for output.",
      "discriminator": "@odata.type",
      "properties": {
        "@odata.type": {
          "description": "The discriminator for derived types.",
          "type": "string"
        },
        "filenamePattern": {
          "description": "The pattern of the file names for the generated output files. The following macros are supported in the file name: {Basename} - The base name of the input video {Extension} - The appropriate extension for this format. {Label} - The label assigned to the codec/layer. {Index} - A unique index for thumbnails. Only applicable to thumbnails. {Bitrate} - The audio/video bitrate. Not applicable to thumbnails. {Codec} - The type of the audio/video codec. Any unsubstituted macros will be collapsed and removed from the filename.",
          "type": "string"
        }
      },
      "required": [
        "@odata.type"
      ],
      "type": "object"
    },
    "H264Layer": {
      "allOf": [
        {
          "$ref": "#/definitions/VideoLayer"
        }
      ],
      "description": "Describes the settings to be used when encoding the input video into a desired output bitrate layer with the H.264 video codec.",
      "properties": {
        "bufferWindow": {
          "description": "The VBV buffer window length. The value should be in ISO 8601 format. The value should be in the range [0.1-100] seconds. The default is 5 seconds (for example, PT5S).",
          "format": "duration",
          "type": "string"
        },
        "entropyMode": {
          "description": "The entropy mode to be used for this layer. If not specified, the encoder chooses the mode that is appropriate for the profile and level.",
          "enum": [
            "Cabac",
            "Cavlc"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsExtensible": true,
            "name": "EntropyMode",
            "values": [
              {
                "description": "Context Adaptive Binary Arithmetic Coder (CABAC) entropy encoding.",
                "value": "Cabac"
              },
              {
                "description": "Context Adaptive Variable Length Coder (CAVLC) entropy encoding.",
                "value": "Cavlc"
              }
            ]
          }
        },
        "level": {
          "description": "Which level of the H.264 standard should be used when encoding this layer. The value can be Auto, or a number that matches the H.264 profile. If not specified, the default is Auto, which lets the encoder choose the Level that is appropriate for this layer.",
          "type": "string"
        },
        "profile": {
          "description": "Which profile of the H.264 standard should be used when encoding this layer. Default is Auto.",
          "enum": [
            "Auto",
            "Baseline",
            "Main",
            "High",
            "High422",
            "High444"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsExtensible": true,
            "name": "H264VideoProfile",
            "values": [
              {
                "description": "Tells the encoder to automatically determine the appropriate H.264 profile.",
                "value": "Auto"
              },
              {
                "description": "Baseline profile",
                "value": "Baseline"
              },
              {
                "description": "Main profile",
                "value": "Main"
              },
              {
                "description": "High profile.",
                "value": "High"
              },
              {
                "description": "High 4:2:2 profile.",
                "value": "High422"
              },
              {
                "description": "High 4:4:4 predictive profile.",
                "value": "High444"
              }
            ]
          }
        },
        "referenceFrames": {
          "description": "The number of reference frames to be used when encoding this layer. If not specified, the encoder determines an appropriate number based on the encoder complexity setting.",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.H264Layer"
    },
    "H264Video": {
      "allOf": [
        {
          "$ref": "#/definitions/Video"
        }
      ],
      "description": "Describes all the properties for encoding a video with the H.264 codec.",
      "properties": {
        "complexity": {
          "description": "Tells the encoder how to choose its encoding settings. The default value is Balanced.",
          "enum": [
            "Speed",
            "Balanced",
            "Quality"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsExtensible": true,
            "name": "H264Complexity",
            "values": [
              {
                "description": "Tells the encoder to use settings that are optimized for faster encoding. Quality is sacrificed to decrease encoding time.",
                "value": "Speed"
              },
              {
                "description": "Tells the encoder to use settings that achieve a balance between speed and quality.",
                "value": "Balanced"
              },
              {
                "description": "Tells the encoder to use settings that are optimized to produce higher quality output at the expense of slower overall encode time.",
                "value": "Quality"
              }
            ]
          }
        },
        "layers": {
          "description": "The collection of output H.264 layers to be produced by the encoder.",
          "items": {
            "$ref": "#/definitions/H264Layer"
          },
          "type": "array"
        },
        "sceneChangeDetection": {
          "description": "Whether or not the encoder should insert key frames at scene changes. If not specified, the default is false. This flag should be set to true only when the encoder is being configured to produce a single output video.",
          "type": "boolean"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.H264Video"
    },
    "Image": {
      "allOf": [
        {
          "$ref": "#/definitions/Video"
        }
      ],
      "description": "Describes the basic properties for generating thumbnails from the input video",
      "properties": {
        "range": {
          "description": "The position in the input video at which to stop generating thumbnails. The value can be in absolute timestamp (ISO 8601, e.g: PT5M30S to stop at 5 minutes and 30 seconds), or a frame count (For example, 300 to stop at the 300th frame), or a relative value (For example, 100%).",
          "type": "string"
        },
        "start": {
          "description": "The position in the input video from where to start generating thumbnails. The value can be in absolute timestamp (ISO 8601, e.g: PT05S), or a frame count (For example, 10 for the 10th frame), or a relative value (For example, 1%). Also supports a macro {Best}, which tells the encoder to select the best thumbnail from the first few seconds of the video.",
          "type": "string"
        },
        "step": {
          "description": "The intervals at which thumbnails are generated. The value can be in absolute timestamp (ISO 8601, e.g: PT05S for one image every 5 seconds), or a frame count (For example, 30 for every 30 frames), or a relative value (For example, 1%).",
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.Image"
    },
    "ImageFormat": {
      "allOf": [
        {
          "$ref": "#/definitions/Format"
        }
      ],
      "description": "Describes the properties for an output image file.",
      "properties": {},
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.ImageFormat"
    },
    "Job": {
      "allOf": [
        {
          "allOf": [
            {
              "description": "The core properties of ARM resources.",
              "properties": {
                "id": {
                  "description": "Fully qualified resource ID for the resource.",
                  "readOnly": true,
                  "type": "string"
                },
                "name": {
                  "description": "The name of the resource.",
                  "readOnly": true,
                  "type": "string"
                },
                "type": {
                  "description": "The type of the resource.",
                  "readOnly": true,
                  "type": "string"
                }
              },
              "x-ms-azure-resource": true
            }
          ],
          "description": "The resource model definition for a ARM proxy resource."
        }
      ],
      "description": "A Job resource type. The progress and state can be obtained by polling a Job or subscribing to events using EventGrid.",
      "properties": {
        "properties": {
          "$ref": "#/definitions/JobProperties",
          "description": "The resource properties.",
          "x-ms-client-flatten": true
        }
      },
      "type": "object"
    },
    "JobCollection": {
      "description": "A collection of Job items.",
      "properties": {
        "@odata.nextLink": {
          "description": "A link to the next page of the collection (when the collection contains too many results to return in one response).",
          "type": "string"
        },
        "value": {
          "description": "A collection of Job items.",
          "items": {
            "$ref": "#/definitions/Job"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "JobError": {
      "description": "Details of JobOutput errors.",
      "properties": {
        "category": {
          "description": "Helps with categorization of errors.",
          "enum": [
            "Service",
            "Download",
            "Upload",
            "Configuration",
            "Content"
          ],
          "readOnly": true,
          "type": "string",
          "x-ms-enum": {
            "modelAsExtensible": true,
            "name": "JobErrorCategory",
            "values": [
              {
                "description": "The error is service related.",
                "value": "Service"
              },
              {
                "description": "The error is download related.",
                "value": "Download"
              },
              {
                "description": "The error is upload related.",
                "value": "Upload"
              },
              {
                "description": "The error is configuration related.",
                "value": "Configuration"
              },
              {
                "description": "The error is related to data in the input files.",
                "value": "Content"
              }
            ]
          },
          "x-nullable": false
        },
        "code": {
          "description": "Error code describing the error.",
          "enum": [
            "ServiceError",
            "ServiceTransientError",
            "DownloadNotAccessible",
            "DownloadTransientError",
            "UploadNotAccessible",
            "UploadTransientError",
            "ConfigurationUnsupported",
            "ContentMalformed",
            "ContentUnsupported"
          ],
          "readOnly": true,
          "type": "string",
          "x-ms-enum": {
            "modelAsExtensible": true,
            "name": "JobErrorCode",
            "values": [
              {
                "description": "Fatal service error, please contact support.",
                "value": "ServiceError"
              },
              {
                "description": "Transient error, please retry, if retry is unsuccessful, please contact support.",
                "value": "ServiceTransientError"
              },
              {
                "description": "While trying to download the input files, the files were not accessible, please check the availability of the source.",
                "value": "DownloadNotAccessible"
              },
              {
                "description": "While trying to download the input files, there was an issue during transfer (storage service, network errors), see details and check your source.",
                "value": "DownloadTransientError"
              },
              {
                "description": "While trying to upload the output files, the destination was not reachable, please check the availability of the destination.",
                "value": "UploadNotAccessible"
              },
              {
                "description": "While trying to upload the output files, there was an issue during transfer (storage service, network errors), see details and check your destination.",
                "value": "UploadTransientError"
              },
              {
                "description": "There was a problem with the combination of input files and the configuration settings applied, fix the configuration settings and retry with the same input, or change input to match the configuration.",
                "value": "ConfigurationUnsupported"
              },
              {
                "description": "There was a problem with the input content (for example: zero byte files, or corrupt/non-decodable files), check the input files.",
                "value": "ContentMalformed"
              },
              {
                "description": "There was a problem with the format of the input (not valid media file, or an unsupported file/codec), check the validity of the input files.",
                "value": "ContentUnsupported"
              }
            ]
          },
          "x-nullable": false
        },
        "details": {
          "description": "An array of details about specific errors that led to this reported error.",
          "items": {
            "$ref": "#/definitions/JobErrorDetail"
          },
          "readOnly": true,
          "type": "array"
        },
        "message": {
          "description": "A human-readable language-dependent representation of the error.",
          "readOnly": true,
          "type": "string"
        },
        "retry": {
          "description": "Indicates that it may be possible to retry the Job. If retry is unsuccessful, please contact Azure support via Azure Portal.",
          "enum": [
            "DoNotRetry",
            "MayRetry"
          ],
          "readOnly": true,
          "type": "string",
          "x-ms-enum": {
            "modelAsExtensible": true,
            "name": "JobRetry",
            "values": [
              {
                "description": "Issue needs to be investigated and then the job resubmitted with corrections or retried once the underlying issue has been corrected.",
                "value": "DoNotRetry"
              },
              {
                "description": "Issue may be resolved after waiting for a period of time and resubmitting the same Job.",
                "value": "MayRetry"
              }
            ]
          },
          "x-nullable": false
        }
      },
      "type": "object"
    },
    "JobErrorDetail": {
      "description": "Details of JobOutput errors.",
      "properties": {
        "code": {
          "description": "Code describing the error detail.",
          "readOnly": true,
          "type": "string"
        },
        "message": {
          "description": "A human-readable representation of the error.",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object"
    },
    "JobInput": {
      "description": "Base class for inputs to a Job.",
      "discriminator": "@odata.type",
      "properties": {
        "@odata.type": {
          "description": "The discriminator for derived types.",
          "type": "string"
        },
        "label": {
          "description": "A label that is assigned to a JobInput, that is used to satisfy a reference used in the Transform. For example, a Transform can be authored so as to take an image file with the label 'xyz' and apply it as an overlay onto the input video before it is encoded. When submitting a Job, exactly one of the JobInputs should be the image file, and it should have the label 'xyz'.",
          "type": "string"
        }
      },
      "required": [
        "@odata.type"
      ],
      "type": "object"
    },
    "JobInputAsset": {
      "allOf": [
        {
          "$ref": "#/definitions/JobInputClip"
        }
      ],
      "description": "Represents an Asset for input into a Job.",
      "properties": {
        "assetName": {
          "description": "The name of the input Asset.",
          "type": "string"
        }
      },
      "required": [
        "assetName"
      ],
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.JobInputAsset"
    },
    "JobInputClip": {
      "allOf": [
        {
          "$ref": "#/definitions/JobInput"
        }
      ],
      "description": "Represents input files for a Job.",
      "properties": {
        "files": {
          "description": "List of files. Required for JobInputHttp.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.JobInputClip"
    },
    "JobInputHttp": {
      "allOf": [
        {
          "$ref": "#/definitions/JobInputClip"
        }
      ],
      "description": "Represents HTTPS job input.",
      "properties": {
        "baseUri": {
          "description": "Base URI for HTTPS job input. It will be concatenated with provided file names.   If no base uri is given, then the provided file list is assumed to be fully qualified uris.",
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.JobInputHttp"
    },
    "JobInputs": {
      "allOf": [
        {
          "$ref": "#/definitions/JobInput"
        }
      ],
      "description": "Describes a list of inputs to a Job.",
      "properties": {
        "inputs": {
          "description": "List of inputs to a Job.",
          "items": {
            "$ref": "#/definitions/JobInput"
          },
          "type": "array"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.JobInputs"
    },
    "JobOutput": {
      "description": "Describes all the properties of a JobOutput.",
      "discriminator": "@odata.type",
      "properties": {
        "@odata.type": {
          "description": "The discriminator for derived types.",
          "type": "string"
        },
        "error": {
          "$ref": "#/definitions/JobError",
          "description": "If the JobOutput is in the Error state, it contains the details of the error.",
          "readOnly": true
        },
        "progress": {
          "description": "If the JobOutput is in a Processing state, this contains the job completion percentage.  The value is an estimate and not intended to be used to predict job completion times. To determine if the JobOutput is complete, use the State property.",
          "format": "int32",
          "readOnly": true,
          "type": "integer",
          "x-nullable": false
        },
        "state": {
          "description": "Describes the state of the JobOutput.",
          "enum": [
            "Canceled",
            "Canceling",
            "Error",
            "Finished",
            "Processing",
            "Queued",
            "Scheduled"
          ],
          "readOnly": true,
          "type": "string",
          "x-ms-enum": {
            "modelAsExtensible": true,
            "name": "JobState",
            "values": [
              {
                "description": "The job was canceled. This is a final state for the job.",
                "value": "Canceled"
              },
              {
                "description": "The job is in the process of being canceled. This is a transient state for the job.",
                "value": "Canceling"
              },
              {
                "description": "The job has encountered an error. This is a final state for the job.",
                "value": "Error"
              },
              {
                "description": "The job is finished. This is a final state for the job.",
                "value": "Finished"
              },
              {
                "description": "The job is processing. This is a transient state for the job.",
                "value": "Processing"
              },
              {
                "description": "The job is in a queued state, waiting for resources to become available. This is a transient state.",
                "value": "Queued"
              },
              {
                "description": "The job is being scheduled to run on an available resource. This is a transient state, between queued and processing states.",
                "value": "Scheduled"
              }
            ]
          },
          "x-nullable": false
        }
      },
      "required": [
        "@odata.type"
      ],
      "type": "object"
    },
    "JobOutputAsset": {
      "allOf": [
        {
          "$ref": "#/definitions/JobOutput"
        }
      ],
      "description": "Represents an Asset used as a JobOutput.",
      "properties": {
        "assetName": {
          "description": "The name of the output Asset.",
          "type": "string"
        }
      },
      "required": [
        "assetName"
      ],
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.JobOutputAsset"
    },
    "JobProperties": {
      "description": "Properties of the Job.",
      "properties": {
        "created": {
          "description": "The UTC date and time when the Job was created, in 'YYYY-MM-DDThh:mm:ssZ' format.",
          "format": "date-time",
          "readOnly": true,
          "type": "string",
          "x-nullable": false
        },
        "description": {
          "description": "Optional customer supplied description of the Job.",
          "type": "string"
        },
        "input": {
          "$ref": "#/definitions/JobInput",
          "description": "The inputs for the Job."
        },
        "lastModified": {
          "description": "The UTC date and time when the Job was last updated, in 'YYYY-MM-DDThh:mm:ssZ' format.",
          "format": "date-time",
          "readOnly": true,
          "type": "string",
          "x-nullable": false
        },
        "outputs": {
          "description": "The outputs for the Job.",
          "items": {
            "$ref": "#/definitions/JobOutput"
          },
          "type": "array"
        },
        "priority": {
          "description": "Priority with which the job should be processed. Higher priority jobs are processed before lower priority jobs. If not set, the default is normal.",
          "enum": [
            "Low",
            "Normal",
            "High"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsExtensible": true,
            "name": "Priority",
            "values": [
              {
                "description": "Used for TransformOutputs that can be generated after Normal and High priority TransformOutputs.",
                "value": "Low"
              },
              {
                "description": "Used for TransformOutputs that can be generated at Normal priority.",
                "value": "Normal"
              },
              {
                "description": "Used for TransformOutputs that should take precedence over others.",
                "value": "High"
              }
            ]
          }
        },
        "state": {
          "description": "The current state of the job.",
          "enum": [
            "Canceled",
            "Canceling",
            "Error",
            "Finished",
            "Processing",
            "Queued",
            "Scheduled"
          ],
          "readOnly": true,
          "type": "string",
          "x-ms-enum": {
            "modelAsExtensible": true,
            "name": "JobState",
            "values": [
              {
                "description": "The job was canceled. This is a final state for the job.",
                "value": "Canceled"
              },
              {
                "description": "The job is in the process of being canceled. This is a transient state for the job.",
                "value": "Canceling"
              },
              {
                "description": "The job has encountered an error. This is a final state for the job.",
                "value": "Error"
              },
              {
                "description": "The job is finished. This is a final state for the job.",
                "value": "Finished"
              },
              {
                "description": "The job is processing. This is a transient state for the job.",
                "value": "Processing"
              },
              {
                "description": "The job is in a queued state, waiting for resources to become available. This is a transient state.",
                "value": "Queued"
              },
              {
                "description": "The job is being scheduled to run on an available resource. This is a transient state, between queued and processing states.",
                "value": "Scheduled"
              }
            ]
          },
          "x-nullable": false
        }
      },
      "required": [
        "input",
        "outputs"
      ],
      "type": "object"
    },
    "JpgFormat": {
      "allOf": [
        {
          "$ref": "#/definitions/ImageFormat"
        }
      ],
      "description": "Describes the settings for producing JPEG thumbnails.",
      "properties": {},
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.JpgFormat"
    },
    "JpgImage": {
      "allOf": [
        {
          "$ref": "#/definitions/Image"
        }
      ],
      "description": "Describes the properties for producing a series of JPEG images from the input video.",
      "properties": {
        "layers": {
          "description": "A collection of output JPEG image layers to be produced by the encoder.",
          "items": {
            "$ref": "#/definitions/JpgLayer"
          },
          "type": "array"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.JpgImage"
    },
    "JpgLayer": {
      "allOf": [
        {
          "$ref": "#/definitions/Layer"
        }
      ],
      "description": "Describes the settings to produce a JPEG image from the input video.",
      "properties": {
        "quality": {
          "description": "The compression quality of the JPEG output. Range is from 0-100 and the default is 70.",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.JpgLayer"
    },
    "Layer": {
      "description": "The encoder can be configured to produce video and/or images (thumbnails) at different resolutions, by specifying a layer for each desired resolution. A layer represents the properties for the video or image at a resolution.",
      "discriminator": "@odata.type",
      "properties": {
        "@odata.type": {
          "description": "The discriminator for derived types.",
          "type": "string"
        },
        "height": {
          "description": "The height of the output video for this layer. The value can be absolute (in pixels) or relative (in percentage). For example 50% means the output video has half as many pixels in height as the input.",
          "type": "string"
        },
        "label": {
          "description": "The alphanumeric label for this layer, which can be used in multiplexing different video and audio layers, or in naming the output file.",
          "type": "string"
        },
        "width": {
          "description": "The width of the output video for this layer. The value can be absolute (in pixels) or relative (in percentage). For example 50% means the output video has half as many pixels in width as the input.",
          "type": "string"
        }
      },
      "required": [
        "@odata.type"
      ],
      "type": "object"
    },
    "Mp4Format": {
      "allOf": [
        {
          "$ref": "#/definitions/MultiBitrateFormat"
        }
      ],
      "description": "Describes the properties for an output ISO MP4 file.",
      "properties": {},
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.Mp4Format"
    },
    "MultiBitrateFormat": {
      "allOf": [
        {
          "$ref": "#/definitions/Format"
        }
      ],
      "description": "Describes the properties for producing a collection of GOP aligned multi-bitrate files. The default behavior is to produce one output file for each video layer which is muxed together with all the audios. The exact output files produced can be controlled by specifying the outputFiles collection.",
      "properties": {
        "outputFiles": {
          "description": "The list of output files to produce.  Each entry in the list is a set of audio and video layer labels to be muxed together .",
          "items": {
            "$ref": "#/definitions/OutputFile"
          },
          "type": "array"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.MultiBitrateFormat"
    },
    "ODataError": {
      "description": "Information about an error.",
      "properties": {
        "code": {
          "description": "A language-independent error name.",
          "type": "string"
        },
        "details": {
          "description": "The error details.",
          "items": {
            "$ref": "#/definitions/ODataError"
          },
          "type": "array"
        },
        "message": {
          "description": "The error message.",
          "type": "string"
        },
        "target": {
          "description": "The target of the error (for example, the name of the property in error).",
          "type": "string"
        }
      },
      "type": "object"
    },
    "OutputFile": {
      "description": "Represents an output file produced.",
      "properties": {
        "labels": {
          "description": "The list of labels that describe how the encoder should multiplex video and audio into an output file. For example, if the encoder is producing two video layers with labels v1 and v2, and one audio layer with label a1, then an array like '[v1, a1]' tells the encoder to produce an output file with the video track represented by v1 and the audio track represented by a1.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "Overlay": {
      "description": "Base type for all overlays - image, audio or video.",
      "discriminator": "@odata.type",
      "properties": {
        "@odata.type": {
          "description": "The discriminator for derived types.",
          "type": "string"
        },
        "audioGainLevel": {
          "description": "The gain level of audio in the overlay. The value should be in the range [0, 1.0]. The default is 1.0.",
          "format": "double",
          "type": "number"
        },
        "end": {
          "description": "The position in the input video at which the overlay ends. The value should be in ISO 8601 duration format. For example, PT30S to end the overlay at 30 seconds in to the input video. If not specified the overlay will be applied until the end of the input video if inputLoop is true. Else, if inputLoop is false, then overlay will last as long as the duration of the overlay media.",
          "format": "duration",
          "type": "string"
        },
        "fadeInDuration": {
          "description": "The duration over which the overlay fades in onto the input video. The value should be in ISO 8601 duration format. If not specified the default behavior is to have no fade in (same as PT0S).",
          "format": "duration",
          "type": "string"
        },
        "fadeOutDuration": {
          "description": "The duration over which the overlay fades out of the input video. The value should be in ISO 8601 duration format. If not specified the default behavior is to have no fade out (same as PT0S).",
          "format": "duration",
          "type": "string"
        },
        "inputLabel": {
          "description": "The label of the job input which is to be used as an overlay. The Input must specify exactly one file. You can specify an image file in JPG or PNG formats, or an audio file (such as a WAV, MP3, WMA or M4A file), or a video file. See https://aka.ms/mesformats for the complete list of supported audio and video file formats.",
          "type": "string"
        },
        "start": {
          "description": "The start position, with reference to the input video, at which the overlay starts. The value should be in ISO 8601 format. For example, PT05S to start the overlay at 5 seconds in to the input video. If not specified the overlay starts from the beginning of the input video.",
          "format": "duration",
          "type": "string"
        }
      },
      "required": [
        "@odata.type"
      ],
      "type": "object"
    },
    "PngFormat": {
      "allOf": [
        {
          "$ref": "#/definitions/ImageFormat"
        }
      ],
      "description": "Describes the settings for producing PNG thumbnails.",
      "properties": {},
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.PngFormat"
    },
    "PngImage": {
      "allOf": [
        {
          "$ref": "#/definitions/Image"
        }
      ],
      "description": "Describes the properties for producing a series of PNG images from the input video.",
      "properties": {
        "layers": {
          "description": "A collection of output PNG image layers to be produced by the encoder.",
          "items": {
            "$ref": "#/definitions/PngLayer"
          },
          "type": "array"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.PngImage"
    },
    "PngLayer": {
      "allOf": [
        {
          "$ref": "#/definitions/Layer"
        }
      ],
      "description": "Describes the settings to produce a PNG image from the input video.",
      "properties": {},
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.PngLayer"
    },
    "Preset": {
      "description": "Base type for all Presets, which define the recipe or instructions on how the input media files should be processed.",
      "discriminator": "@odata.type",
      "properties": {
        "@odata.type": {
          "description": "The discriminator for derived types.",
          "type": "string"
        }
      },
      "required": [
        "@odata.type"
      ],
      "type": "object"
    },
    "Rectangle": {
      "description": "Describes the properties of a rectangular window applied to the input media before processing it.",
      "properties": {
        "height": {
          "description": "The height of the rectangular region in pixels. This can be absolute pixel value (e.g 100), or relative to the size of the video (For example, 50%).",
          "type": "string"
        },
        "left": {
          "description": "The number of pixels from the left-margin. This can be absolute pixel value (e.g 100), or relative to the size of the video (For example, 50%).",
          "type": "string"
        },
        "top": {
          "description": "The number of pixels from the top-margin. This can be absolute pixel value (e.g 100), or relative to the size of the video (For example, 50%).",
          "type": "string"
        },
        "width": {
          "description": "The width of the rectangular region in pixels. This can be absolute pixel value (e.g 100), or relative to the size of the video (For example, 50%).",
          "type": "string"
        }
      },
      "type": "object"
    },
    "StandardEncoderPreset": {
      "allOf": [
        {
          "$ref": "#/definitions/Preset"
        }
      ],
      "description": "Describes all the settings to be used when encoding the input video with the Standard Encoder.",
      "properties": {
        "codecs": {
          "description": "The list of codecs to be used when encoding the input video.",
          "items": {
            "$ref": "#/definitions/Codec"
          },
          "type": "array"
        },
        "filters": {
          "$ref": "#/definitions/Filters",
          "description": "One or more filtering operations that are applied to the input media before encoding."
        },
        "formats": {
          "description": "The list of outputs to be produced by the encoder.",
          "items": {
            "$ref": "#/definitions/Format"
          },
          "type": "array"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.StandardEncoderPreset"
    },
    "Transform": {
      "allOf": [
        {
          "allOf": [
            {
              "description": "The core properties of ARM resources.",
              "properties": {
                "id": {
                  "description": "Fully qualified resource ID for the resource.",
                  "readOnly": true,
                  "type": "string"
                },
                "name": {
                  "description": "The name of the resource.",
                  "readOnly": true,
                  "type": "string"
                },
                "type": {
                  "description": "The type of the resource.",
                  "readOnly": true,
                  "type": "string"
                }
              },
              "x-ms-azure-resource": true
            }
          ],
          "description": "The resource model definition for a ARM proxy resource."
        }
      ],
      "description": "A Transform encapsulates the rules or instructions for generating desired outputs from input media, such as by transcoding or by extracting insights. After the Transform is created, it can be applied to input media by creating Jobs.",
      "properties": {
        "properties": {
          "$ref": "#/definitions/TransformProperties",
          "description": "The resource properties.",
          "x-ms-client-flatten": true
        }
      },
      "type": "object"
    },
    "TransformCollection": {
      "description": "A collection of Transform items.",
      "properties": {
        "@odata.nextLink": {
          "description": "A link to the next page of the collection (when the collection contains too many results to return in one response).",
          "type": "string"
        },
        "value": {
          "description": "A collection of Transform items.",
          "items": {
            "$ref": "#/definitions/Transform"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "TransformOutput": {
      "description": "Describes the properties of a TransformOutput, which are the rules to be applied while generating the desired output.",
      "properties": {
        "onError": {
          "description": "A Transform can define more than one outputs. This property defines what the service should do when one output fails - either continue to produce other outputs, or, stop the other outputs. The default is stop.",
          "enum": [
            "StopProcessingJob",
            "ContinueJob"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsExtensible": true,
            "name": "OnErrorType",
            "values": [
              {
                "description": "Tells the service that if this TransformOutput fails, then any other incomplete TransformOutputs can be stopped.",
                "value": "StopProcessingJob"
              },
              {
                "description": "Tells the service that if this TransformOutput fails, then allow any other TransformOutput to continue.",
                "value": "ContinueJob"
              }
            ]
          }
        },
        "preset": {
          "$ref": "#/definitions/Preset",
          "description": "Preset that describes the operations that will be used to modify, transcode, or extract insights from the source file to generate the output."
        },
        "relativePriority": {
          "description": "Sets the relative priority of the TransformOutputs within a Transform. This sets the priority that the service uses for processing TransformOutputs. The default priority is Normal.",
          "enum": [
            "Low",
            "Normal",
            "High"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsExtensible": true,
            "name": "Priority",
            "values": [
              {
                "description": "Used for TransformOutputs that can be generated after Normal and High priority TransformOutputs.",
                "value": "Low"
              },
              {
                "description": "Used for TransformOutputs that can be generated at Normal priority.",
                "value": "Normal"
              },
              {
                "description": "Used for TransformOutputs that should take precedence over others.",
                "value": "High"
              }
            ]
          }
        }
      },
      "required": [
        "preset"
      ],
      "type": "object"
    },
    "TransformProperties": {
      "description": "A Transform.",
      "properties": {
        "created": {
          "description": "The UTC date and time when the Transform was created, in 'YYYY-MM-DDThh:mm:ssZ' format.",
          "format": "date-time",
          "readOnly": true,
          "type": "string",
          "x-nullable": false
        },
        "description": {
          "description": "An optional verbose description of the Transform.",
          "type": "string"
        },
        "lastModified": {
          "description": "The UTC date and time when the Transform was last updated, in 'YYYY-MM-DDThh:mm:ssZ' format.",
          "format": "date-time",
          "readOnly": true,
          "type": "string",
          "x-nullable": false
        },
        "outputs": {
          "description": "An array of one or more TransformOutputs that the Transform should generate.",
          "items": {
            "$ref": "#/definitions/TransformOutput"
          },
          "type": "array"
        }
      },
      "required": [
        "outputs"
      ],
      "type": "object"
    },
    "TransportStreamFormat": {
      "allOf": [
        {
          "$ref": "#/definitions/MultiBitrateFormat"
        }
      ],
      "description": "Describes the properties for generating an MPEG-2 Transport Stream (ISO/IEC 13818-1) output video file(s).",
      "properties": {},
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.TransportStreamFormat"
    },
    "Video": {
      "allOf": [
        {
          "$ref": "#/definitions/Codec"
        }
      ],
      "description": "Describes the basic properties for encoding the input video.",
      "properties": {
        "keyFrameInterval": {
          "description": "The distance between two key frames, thereby defining a group of pictures (GOP). The value should be a non-zero integer in the range [1, 30] seconds, specified in ISO 8601 format. The default is 2 seconds (PT2S).",
          "format": "duration",
          "type": "string"
        },
        "stretchMode": {
          "description": "The resizing mode - how the input video will be resized to fit the desired output resolution(s). Default is AutoSize",
          "enum": [
            "None",
            "AutoSize",
            "AutoFit"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsExtensible": true,
            "name": "StretchMode",
            "values": [
              {
                "description": "Strictly respect the output resolution without considering the pixel aspect ratio or display aspect ratio of the input video.",
                "value": "None"
              },
              {
                "description": "Override the output resolution, and change it to match the display aspect ratio of the input, without padding. For example, if the input is 1920x1080 and the encoding preset asks for 1280x1280, then the value in the preset is overridden, and the output will be at 1280x720, which maintains the input aspect ratio of 16:9.",
                "value": "AutoSize"
              },
              {
                "description": "Pad the output (with either letterbox or pillar box) to honor the output resolution, while ensuring that the active video region in the output has the same aspect ratio as the input. For example, if the input is 1920x1080 and the encoding preset asks for 1280x1280, then the output will be at 1280x1280, which contains an inner rectangle of 1280x720 at aspect ratio of 16:9, and pillar box regions 280 pixels wide at the left and right.",
                "value": "AutoFit"
              }
            ]
          }
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.Video"
    },
    "VideoAnalyzerPreset": {
      "allOf": [
        {
          "$ref": "#/definitions/AudioAnalyzerPreset"
        }
      ],
      "description": "A video analyzer preset that extracts insights (rich metadata) from both audio and video, and outputs a JSON format file.",
      "properties": {
        "audioInsightsOnly": {
          "description": "Whether to only extract audio insights when processing a video file.",
          "type": "boolean"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.VideoAnalyzerPreset"
    },
    "VideoLayer": {
      "allOf": [
        {
          "$ref": "#/definitions/Layer"
        }
      ],
      "description": "Describes the settings to be used when encoding the input video into a desired output bitrate layer.",
      "properties": {
        "adaptiveBFrame": {
          "description": "Whether or not adaptive B-frames are to be used when encoding this layer. If not specified, the encoder will turn it on whenever the video profile permits its use.",
          "type": "boolean"
        },
        "bFrames": {
          "description": "The number of B-frames to be used when encoding this layer.  If not specified, the encoder chooses an appropriate number based on the video profile and level.",
          "format": "int32",
          "type": "integer"
        },
        "bitrate": {
          "description": "The average bitrate in bits per second at which to encode the input video when generating this layer. This is a required field.",
          "format": "int32",
          "type": "integer"
        },
        "frameRate": {
          "description": "The frame rate (in frames per second) at which to encode this layer. The value can be in the form of M/N where M and N are integers (For example, 30000/1001), or in the form of a number (For example, 30, or 29.97). The encoder enforces constraints on allowed frame rates based on the profile and level. If it is not specified, the encoder will use the same frame rate as the input video.",
          "type": "string"
        },
        "maxBitrate": {
          "description": "The maximum bitrate (in bits per second), at which the VBV buffer should be assumed to refill. If not specified, defaults to the same value as bitrate.",
          "format": "int32",
          "type": "integer"
        },
        "slices": {
          "description": "The number of slices to be used when encoding this layer. If not specified, default is zero, which means that encoder will use a single slice for each frame.",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.VideoLayer"
    },
    "VideoOverlay": {
      "allOf": [
        {
          "$ref": "#/definitions/Overlay"
        }
      ],
      "description": "Describes the properties of a video overlay.",
      "properties": {
        "cropRectangle": {
          "$ref": "#/definitions/Rectangle",
          "description": "An optional rectangular window used to crop the overlay image or video."
        },
        "opacity": {
          "description": "The opacity of the overlay. This is a value in the range [0 - 1.0]. Default is 1.0 which mean the overlay is opaque.",
          "format": "double",
          "type": "number"
        },
        "position": {
          "$ref": "#/definitions/Rectangle",
          "description": "The location in the input video where the overlay is applied."
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.VideoOverlay"
    }
  }
}