{
  "components": {
    "schemas": {
      "AIPipelinePreset": {
        "properties": {
          "@odata.type": {
            "description": "The discriminator for derived types.",
            "type": "string"
          },
          "pipeline": {
            "$ref": "#/components/schemas/PipelineArguments",
            "description": "AI pipeline settings"
          }
        },
        "required": [
          "@odata.type",
          "pipeline"
        ],
        "title": "AIPipelinePreset",
        "type": "object"
      },
      "AWSCredential": {
        "properties": {
          "accessKeyId": {
            "description": "The access key ID for the bucket.",
            "pattern": "^A[KS]IA[0-9A-Z]{16}$",
            "type": "string"
          },
          "secretAccessKey": {
            "description": "The secret access key for the bucket.",
            "pattern": "^[A-Za-z0-9+/=]{40}$",
            "type": "string"
          }
        },
        "required": [
          "accessKeyId",
          "secretAccessKey"
        ],
        "title": "AWSCredential",
        "type": "object"
      },
      "AWSCredentialSpec": {
        "properties": {
          "credential": {
            "$ref": "#/components/schemas/AWSCredential",
            "description": "The credential for the AWS S3 bucket."
          },
          "type": {
            "description": "The type of the credential.",
            "enum": [
              "Microsoft.Storage",
              "AWS.S3",
              "Google.Storage"
            ],
            "example": "Microsoft.Storage",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "type",
          "credential"
        ],
        "title": "AWSCredentialSpec",
        "type": "object"
      },
      "AWSStorageSpecCreate": {
        "properties": {
          "bucketName": {
            "description": "The name of the AWS S3 bucket.\nThis field cannot be modified, only set during creation.",
            "pattern": "^(?!.*\\.\\.)[a-z0-9][-a-z0-9.]{1,61}[a-z0-9]$",
            "type": "string",
            "x-mkio-immutable": true
          },
          "credential": {
            "$ref": "#/components/schemas/AWSCredential",
            "description": "The credential for the AWS S3 bucket. Required at creation."
          },
          "description": {
            "description": "Description of the storage.",
            "example": "Input media files for processing.",
            "nullable": true,
            "type": "string"
          },
          "type": {
            "description": "The type of storage.\nThis field cannot be modified, only set during creation.",
            "enum": [
              "Microsoft.Storage",
              "AWS.S3",
              "Google.Storage"
            ],
            "example": "Microsoft.Storage",
            "type": "string",
            "x-mkio-immutable": true
          }
        },
        "required": [
          "type",
          "bucketName"
        ],
        "title": "AWSStorageSpecCreate",
        "type": "object"
      },
      "AWSStorageSpecPatch": {
        "properties": {
          "description": {
            "description": "Description of the storage.",
            "example": "Input media files for processing.",
            "nullable": true,
            "type": "string"
          },
          "type": {
            "description": "The type of storage.\nThis field cannot be modified, only set during creation.",
            "enum": [
              "Microsoft.Storage",
              "AWS.S3",
              "Google.Storage"
            ],
            "example": "Microsoft.Storage",
            "type": "string",
            "x-mkio-immutable": true
          }
        },
        "title": "AWSStorageSpecPatch",
        "type": "object"
      },
      "AWSStorageSpecRead": {
        "properties": {
          "bucketName": {
            "description": "The name of the AWS S3 bucket.\nThis field cannot be modified, only set during creation.",
            "pattern": "^(?!.*\\.\\.)[a-z0-9][-a-z0-9.]{1,61}[a-z0-9]$",
            "type": "string",
            "x-mkio-immutable": true
          },
          "credential": {
            "$ref": "#/components/schemas/AWSCredential",
            "description": "The credential for the AWS S3 bucket. Required at creation."
          },
          "description": {
            "description": "Description of the storage.",
            "example": "Input media files for processing.",
            "nullable": true,
            "type": "string"
          },
          "region": {
            "description": "Storage region.",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "type": {
            "description": "The type of storage.\nThis field cannot be modified, only set during creation.",
            "enum": [
              "Microsoft.Storage",
              "AWS.S3",
              "Google.Storage"
            ],
            "example": "Microsoft.Storage",
            "type": "string",
            "x-mkio-immutable": true
          },
          "url": {
            "description": "The URL of the S3 bucket",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "type",
          "region",
          "description",
          "bucketName",
          "url"
        ],
        "title": "AWSStorageSpecRead",
        "type": "object"
      },
      "AbsoluteClipTime": {
        "properties": {
          "@odata.type": {
            "description": "The discriminator for derived types.",
            "type": "string"
          },
          "time": {
            "description": "The time position on the timeline of the input media. Specified as an ISO8601 period. e.g PT30S for 30 seconds.",
            "pattern": "^P(?:(?P<years>\\d+)Y)?(?:(?P<months>\\d+)M)?(?:(?P<weeks>\\d+)W)?(?:(?P<days>\\d+)D)?T(?:(?P<hours>\\d+)H)?(?:(?P<minutes>\\d+)M)?(?:(?P<seconds_fract>(?:\\d*.)?\\d+)S)?$",
            "type": "string"
          }
        },
        "required": [
          "@odata.type"
        ],
        "title": "AbsoluteClipTime",
        "type": "object"
      },
      "Accessibility": {
        "properties": {
          "schemeIdUri": {
            "description": "",
            "type": "string"
          },
          "value": {
            "description": "",
            "type": "string"
          }
        },
        "title": "Accessibility",
        "type": "object"
      },
      "AccountFilterListResponseSchema": {
        "properties": {
          "@odata.nextLink": {
            "description": "@odata.nextLink URL if the page length and number of items match.",
            "readOnly": true,
            "type": "string"
          },
          "supplemental": {
            "$ref": "#/components/schemas/ListResponseSupplementalSchema",
            "description": "Supplemental info",
            "readOnly": true
          },
          "value": {
            "description": "A list of account filters",
            "items": {
              "$ref": "#/components/schemas/AccountFilterSchema"
            },
            "type": "array"
          }
        },
        "required": [
          "supplemental",
          "value"
        ],
        "title": "AccountFilterListResponseSchema",
        "type": "object"
      },
      "AccountFilterPutSchema": {
        "properties": {
          "properties": {
            "$ref": "#/components/schemas/MediaFilterProperties",
            "description": "Properties for the account filter"
          }
        },
        "required": [
          "properties"
        ],
        "title": "AccountFilterPutSchema",
        "type": "object"
      },
      "AccountFilterSchema": {
        "properties": {
          "id": {
            "description": "Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}",
            "readOnly": true,
            "type": "string"
          },
          "name": {
            "description": "The name of the resource",
            "example": "name",
            "maxLength": 260,
            "minLength": 1,
            "pattern": "^[^\\^\\'<>%&:\\\\?/*+]+$",
            "readOnly": true,
            "type": "string"
          },
          "properties": {
            "$ref": "#/components/schemas/MediaFilterProperties",
            "description": "Properties for the account filter"
          },
          "systemData": {
            "$ref": "#/components/schemas/SystemDataSchema",
            "description": "Metadata pertaining to creation and last modification of the resource.",
            "readOnly": true
          },
          "type": {
            "description": "The type of the resource. E.g. \"Microsoft.Media/mediaservices/assets\"",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "properties"
        ],
        "title": "AccountFilterSchema",
        "type": "object"
      },
      "AdaptationSet": {
        "properties": {
          "accessibility": {
            "description": "",
            "items": {
              "$ref": "#/components/schemas/Accessibility"
            },
            "type": "array"
          },
          "contentType": {
            "description": "",
            "type": "string"
          },
          "id": {
            "description": "",
            "type": "string"
          },
          "maxFrameRate": {
            "description": "",
            "type": "string"
          },
          "maxHeight": {
            "description": "",
            "type": "string"
          },
          "maxWidth": {
            "description": "",
            "type": "string"
          },
          "mimeType": {
            "description": "",
            "type": "string"
          },
          "par": {
            "description": "",
            "type": "string"
          },
          "representation": {
            "description": "",
            "items": {
              "$ref": "#/components/schemas/Representation"
            },
            "type": "array"
          },
          "role": {
            "description": "",
            "items": {
              "$ref": "#/components/schemas/Role"
            },
            "type": "array"
          },
          "segmentAlignment": {
            "description": "",
            "type": "string"
          }
        },
        "title": "AdaptationSet",
        "type": "object"
      },
      "AkamiHeaderAuthKey": {
        "properties": {
          "base64Key": {
            "description": "",
            "type": "string"
          },
          "expiration": {
            "description": "",
            "type": "string"
          },
          "identifier": {
            "description": "",
            "type": "string"
          }
        },
        "title": "AkamiHeaderAuthKey",
        "type": "object"
      },
      "AnyValue": {},
      "ArgumentSchema": {
        "properties": {
          "name": {
            "description": "The name of the argument",
            "example": "name",
            "maxLength": 260,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9_-]+$",
            "type": "string"
          },
          "value": {
            "$ref": "#/components/schemas/AnyValue",
            "description": "The value of the argument"
          }
        },
        "required": [
          "name",
          "value"
        ],
        "title": "ArgumentSchema",
        "type": "object"
      },
      "AssetFileAccessInfoSchema": {
        "properties": {
          "containerName": {
            "description": "The name of the container within the storage account.",
            "type": "string"
          },
          "jwt": {
            "description": "A JWT token to authenticate the request.",
            "type": "string"
          },
          "storageAccountName": {
            "description": "The name of the storage account.",
            "type": "string"
          },
          "subPath": {
            "description": "Optional subpath for instances where your asset is not in the root of the container.",
            "example": "path/to/asset",
            "maxLength": 256,
            "minLength": 0,
            "type": "string"
          },
          "url": {
            "description": "The URL to use to access the container.",
            "type": "string"
          }
        },
        "required": [
          "storageAccountName",
          "containerName",
          "jwt",
          "url"
        ],
        "title": "AssetFileAccessInfoSchema",
        "type": "object"
      },
      "AssetFilterListResponseSchema": {
        "properties": {
          "@odata.nextLink": {
            "description": "@odata.nextLink URL if the page length and number of items match.",
            "readOnly": true,
            "type": "string"
          },
          "supplemental": {
            "$ref": "#/components/schemas/ListResponseSupplementalSchema",
            "description": "Supplemental info",
            "readOnly": true
          },
          "value": {
            "description": "A list of asset filters",
            "items": {
              "$ref": "#/components/schemas/AssetFilterSchema"
            },
            "type": "array"
          }
        },
        "required": [
          "supplemental",
          "value"
        ],
        "title": "AssetFilterListResponseSchema",
        "type": "object"
      },
      "AssetFilterPutSchema": {
        "properties": {
          "properties": {
            "$ref": "#/components/schemas/MediaFilterProperties",
            "description": "Properties for the asset filter"
          }
        },
        "required": [
          "properties"
        ],
        "title": "AssetFilterPutSchema",
        "type": "object"
      },
      "AssetFilterSchema": {
        "properties": {
          "id": {
            "description": "Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}",
            "readOnly": true,
            "type": "string"
          },
          "name": {
            "description": "The name of the resource",
            "example": "name",
            "maxLength": 260,
            "minLength": 1,
            "pattern": "^[^\\^\\'<>%&:\\\\?/*+]+$",
            "readOnly": true,
            "type": "string"
          },
          "properties": {
            "$ref": "#/components/schemas/MediaFilterProperties",
            "description": "Properties for the asset filter"
          },
          "systemData": {
            "$ref": "#/components/schemas/SystemDataSchema",
            "description": "Metadata pertaining to creation and last modification of the resource.",
            "readOnly": true
          },
          "type": {
            "description": "The type of the resource. E.g. \"Microsoft.Media/mediaservices/assets\"",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "properties"
        ],
        "title": "AssetFilterSchema",
        "type": "object"
      },
      "AssetIdentifier": {
        "properties": {
          "schemeIdUri": {
            "description": "",
            "type": "string"
          },
          "value": {
            "description": "",
            "type": "string"
          }
        },
        "title": "AssetIdentifier",
        "type": "object"
      },
      "AssetListResponseSchema": {
        "properties": {
          "@odata.nextLink": {
            "description": "@odata.nextLink URL if the page length and number of items match.",
            "readOnly": true,
            "type": "string"
          },
          "supplemental": {
            "$ref": "#/components/schemas/ListResponseSupplementalSchema",
            "description": "Supplemental info",
            "readOnly": true
          },
          "value": {
            "description": "A list of assets.",
            "items": {
              "$ref": "#/components/schemas/AssetSchema"
            },
            "type": "array"
          }
        },
        "required": [
          "supplemental",
          "value"
        ],
        "title": "AssetListResponseSchema",
        "type": "object"
      },
      "AssetProperties": {
        "properties": {
          "alternateId": {
            "description": "An alternate ID of the asset.",
            "maxLength": 64,
            "minLength": 0,
            "type": "string"
          },
          "assetId": {
            "description": "The Asset ID.",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "container": {
            "description": "The name of the container if this asset is stored in an Azure storage account.",
            "example": "ContainerName",
            "maxLength": 63,
            "minLength": 3,
            "pattern": "^(?!.*--)(?=[a-z0-9-]{3,63}$)(?!-)[a-z0-9]+(?:-[a-z0-9]+)*$",
            "type": "string"
          },
          "containerDeletionPolicy": {
            "description": "This field defines the deletion policy for the underlying storage. \nThis determines the behavior when an asset record is deleted. There are two options, 'Delete', and 'Retain'.\n\nA deletion policy of 'Delete' will result in the associated storage container or folder and all its contents being removed.\nA deletion policy of 'Retain' will leave the content in place.\nIf left blank, the default behavior of the system will be to retain content.\n\nOnce set by the user, this value can be modified, but not un-set.",
            "enum": [
              "Delete",
              "Retain"
            ],
            "type": "string"
          },
          "created": {
            "description": "The creation date of the Asset.",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "description": {
            "description": "The Asset description.",
            "maxLength": 4096,
            "minLength": 0,
            "type": "string"
          },
          "encryptionScope": {
            "description": "Accepted, not supported. The name of the encryption scope to use within your storage container. Errors may be cryptic.",
            "nullable": true,
            "type": "string"
          },
          "lastModified": {
            "description": "The last modified date of the Asset.",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "storageAccountName": {
            "description": "The name of the storage in MK.IO.",
            "maxLength": 255,
            "minLength": 0,
            "type": "string"
          },
          "storageEncryptionFormat": {
            "description": "This field was deprecated in the v3 API. Accepted, not supported. Use an encryption scope instead.",
            "enum": [
              "None",
              "MediaStorageClientEncryption"
            ],
            "type": "string"
          },
          "subPath": {
            "description": "Optional subpath for instances where your asset is not in the root of the container.\nThis needs to be an absolute directory path and can't be an empty string or start with '.', './' or '/' or end with '/'.\n\nValid examples: 'path', 'path2', 'path/to/asset'",
            "example": "path/to/asset",
            "maxLength": 256,
            "minLength": 1,
            "pattern": "^(?!/)(?!.*(//|\\?|%|&)).*[^/]$",
            "type": "string"
          }
        },
        "required": [
          "storageAccountName"
        ],
        "title": "AssetProperties",
        "type": "object"
      },
      "AssetPutProperties": {
        "properties": {
          "alternateId": {
            "description": "An alternate ID of the asset.",
            "maxLength": 64,
            "minLength": 0,
            "type": "string"
          },
          "container": {
            "description": "The name of the container if this asset is stored in an Azure storage account.",
            "example": "ContainerName",
            "maxLength": 63,
            "minLength": 3,
            "pattern": "^(?!.*--)(?=[a-z0-9-]{3,63}$)(?!-)[a-z0-9]+(?:-[a-z0-9]+)*$",
            "type": "string"
          },
          "containerDeletionPolicy": {
            "description": "This field defines the deletion policy for the underlying storage. \nThis determines the behavior when an asset record is deleted. There are two options, 'Delete', and 'Retain'.\n\nA deletion policy of 'Delete' will result in the associated storage container or folder and all its contents being removed.\nA deletion policy of 'Retain' will leave the content in place.\nIf left blank, the default behavior of the system will be to retain content.\n\nOnce set by the user, this value can be modified, but not un-set.",
            "enum": [
              "Delete",
              "Retain"
            ],
            "type": "string"
          },
          "description": {
            "description": "The Asset description.",
            "maxLength": 4096,
            "minLength": 0,
            "type": "string"
          },
          "encryptionScope": {
            "description": "Accepted, not supported. The name of the encryption scope to use within your storage container. Errors may be cryptic.",
            "nullable": true,
            "type": "string"
          },
          "storageAccountName": {
            "description": "The name of the storage in MK.IO.",
            "maxLength": 255,
            "minLength": 0,
            "type": "string"
          },
          "storageEncryptionFormat": {
            "description": "This field was deprecated in the v3 API. Accepted, not supported. Use an encryption scope instead.",
            "enum": [
              "None",
              "MediaStorageClientEncryption"
            ],
            "type": "string"
          },
          "subPath": {
            "description": "Optional subpath for instances where your asset is not in the root of the container.\nThis needs to be an absolute directory path and can't be an empty string or start with '.', './' or '/' or end with '/'.\n\nValid examples: 'path', 'path2', 'path/to/asset'",
            "example": "path/to/asset",
            "maxLength": 256,
            "minLength": 1,
            "pattern": "^(?!/)(?!.*(//|\\?|%|&)).*[^/]$",
            "type": "string"
          }
        },
        "required": [
          "storageAccountName"
        ],
        "title": "AssetPutProperties",
        "type": "object"
      },
      "AssetPutSchema": {
        "properties": {
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A dictionary of labels associated with the resource.\n- Maximum number of labels: 32.\n- Maximum length of a label or value: 256 characters.\n- Label: alphanumeric, hyphens and underscores.\n- Value: alphanumeric, hyphens, underscores and spaces.",
            "example": {
              "label1": "value1",
              "label2": ""
            },
            "maxProperties": 32,
            "type": "object"
          },
          "properties": {
            "$ref": "#/components/schemas/AssetPutProperties",
            "description": "The properties of the asset."
          }
        },
        "required": [
          "properties"
        ],
        "title": "AssetPutSchema",
        "type": "object"
      },
      "AssetSchema": {
        "properties": {
          "id": {
            "description": "Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}",
            "readOnly": true,
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A dictionary of labels associated with the resource.\n- Maximum number of labels: 32.\n- Maximum length of a label or value: 256 characters.\n- Label: alphanumeric, hyphens and underscores.\n- Value: alphanumeric, hyphens, underscores and spaces.",
            "example": {
              "label1": "value1",
              "label2": ""
            },
            "maxProperties": 32,
            "type": "object"
          },
          "name": {
            "description": "The name of the resource",
            "example": "name",
            "maxLength": 260,
            "minLength": 1,
            "pattern": "^[^\\^\\'<>%&:\\\\?/*+]+$",
            "readOnly": true,
            "type": "string"
          },
          "properties": {
            "$ref": "#/components/schemas/AssetProperties",
            "description": "The properties of the asset."
          },
          "systemData": {
            "$ref": "#/components/schemas/SystemDataSchema",
            "description": "Metadata pertaining to creation and last modification of the resource.",
            "readOnly": true
          },
          "type": {
            "description": "The type of the resource. E.g. \"Microsoft.Media/mediaservices/assets\"",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "properties"
        ],
        "title": "AssetSchema",
        "type": "object"
      },
      "AssetStorageDataMetadataSchema": {
        "properties": {
          "id": {
            "description": "The unique identifier for the asset.",
            "format": "uuid",
            "type": "string"
          },
          "name": {
            "description": "The name of the asset.",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "title": "AssetStorageDataMetadataSchema",
        "type": "object"
      },
      "AssetStorageDataSpecSchema": {
        "properties": {
          "container": {
            "description": "The name of the storage container.",
            "type": "string"
          },
          "error": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A dictionary containing error information. This field will be populated in cases where no valid tracks are present.",
            "type": "object"
          },
          "exceptions": {
            "$ref": "#/components/schemas/ExceptionsSchema",
            "description": "A list of exceptions that occurred during the retrieval process. This is a non-critical field and will only be populated if an exception occurs."
          },
          "files": {
            "description": "A list of files in the storage container. This only represents files present at the top-level of the container.",
            "items": {
              "$ref": "#/components/schemas/FileSchema"
            },
            "type": "array"
          },
          "folders": {
            "description": "A list of folders in the storage container.",
            "items": {
              "$ref": "#/components/schemas/FolderSchema"
            },
            "type": "array"
          },
          "formatHint": {
            "description": "A hint to the client as to the format of the data. \n        mk.mezz.v0 is MediaKind's mezzanine format and will emit a period element. \n        ams.v0 is Azure Media Services' format and will emit a tracks element.",
            "type": "string"
          },
          "periods": {
            "additionalProperties": {
              "$ref": "#/components/schemas/Period"
            },
            "description": "A map of available content for each eligible file in the storage container. Typically just '0/index/edge'.\nPeriods are extracted from the latest instance of the MediaKind mezzanine representation format available in the container.\nTracks or Periods will be available, but not both.",
            "type": "object"
          },
          "tracks": {
            "additionalProperties": {
              "$ref": "#/components/schemas/TrackSchema"
            },
            "description": "A map of available content for each eligible file in the storage container.\nTracks are extracted from all eligible files within the container and are presented to the client with the filename as the dictionary key.\nTracks or Periods will be available, but not both.",
            "type": "object"
          }
        },
        "required": [
          "formatHint",
          "container",
          "folders",
          "files"
        ],
        "title": "AssetStorageDataSpecSchema",
        "type": "object"
      },
      "AssetStorageResponseSchema": {
        "properties": {
          "metadata": {
            "$ref": "#/components/schemas/AssetStorageDataMetadataSchema",
            "description": "Metadata about the asset."
          },
          "spec": {
            "$ref": "#/components/schemas/AssetStorageDataSpecSchema",
            "description": "The storage container data."
          }
        },
        "required": [
          "metadata",
          "spec"
        ],
        "title": "AssetStorageResponseSchema",
        "type": "object"
      },
      "AssetStreamingLocatorListSchema": {
        "properties": {
          "streamingLocators": {
            "description": "List of Streaming Locators",
            "items": {
              "$ref": "#/components/schemas/StreamingLocatorProperties"
            },
            "type": "array"
          }
        },
        "required": [
          "streamingLocators"
        ],
        "title": "AssetStreamingLocatorListSchema",
        "type": "object"
      },
      "AudioChannelConfiguration": {
        "properties": {
          "schemeIdUri": {
            "description": "",
            "type": "string"
          },
          "value": {
            "description": "",
            "type": "string"
          }
        },
        "title": "AudioChannelConfiguration",
        "type": "object"
      },
      "AudioSchema": {
        "properties": {
          "src": {
            "description": "",
            "type": "string"
          },
          "systemBitrate": {
            "description": "",
            "type": "string"
          },
          "systemLanguage": {
            "description": "",
            "type": "string"
          },
          "trackID": {
            "description": "",
            "type": "string"
          },
          "trackName": {
            "description": "",
            "type": "string"
          }
        },
        "required": [
          "src",
          "systemBitrate",
          "systemLanguage",
          "trackID",
          "trackName"
        ],
        "title": "AudioSchema",
        "type": "object"
      },
      "AudioTrack": {
        "properties": {
          "@odata.type": {
            "description": "The discriminator for derived types.",
            "type": "string"
          },
          "dashSettings": {
            "$ref": "#/components/schemas/DashSettings",
            "description": "The DASH specific setting for the audio track."
          },
          "displayName": {
            "description": "The display name of the audio track on a video player. In HLS, this maps to the NAME attribute of EXT-X-MEDIA.",
            "type": "string"
          },
          "hlsSettings": {
            "$ref": "#/components/schemas/HlsSettings",
            "description": "The HLS specific setting for the audio track."
          },
          "languageCode": {
            "description": "The RFC5646 language code for the audio track.",
            "type": "string"
          },
          "trackName": {
            "description": "The name of the audio track in the manifest.",
            "type": "string"
          }
        },
        "required": [
          "@odata.type",
          "trackName"
        ],
        "title": "AudioTrack",
        "type": "object"
      },
      "AzureCredentialCreate": {
        "properties": {
          "sasToken": {
            "description": "SAS Token for Azure Storage Account, including leading ?",
            "example": "?sv=2022-11-02&ss=bfqt&srt=co&sp=rwdlacupiyx&se=2024-11-12T00:05:04Z&st=2024-11-11T16:05:04Z&spr=https&sig=<redacted>",
            "pattern": "^\\?([a-z]+=[^&]+)(&[a-z]+=[^&]+)+$",
            "type": "string"
          }
        },
        "required": [
          "sasToken"
        ],
        "title": "AzureCredentialCreate",
        "type": "object"
      },
      "AzureCredentialRead": {
        "properties": {
          "sasToken": {
            "description": "SAS Token for Azure Storage Account, including leading ?",
            "example": "?sv=2022-11-02&ss=bfqt&srt=co&sp=rwdlacupiyx&se=2024-11-12T00:05:04Z&st=2024-11-11T16:05:04Z&spr=https&sig=<redacted>",
            "pattern": "^\\?([a-z]+=[^&]+)(&[a-z]+=[^&]+)+$",
            "type": "string"
          },
          "signedExpiry": {
            "description": "The expiry time of the token.",
            "example": "2024-11-12T00:05:04Z",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "signedStart": {
            "description": "The start time of the token.",
            "example": "2024-11-11T16:05:04Z",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "sasToken",
          "signedStart",
          "signedExpiry"
        ],
        "title": "AzureCredentialRead",
        "type": "object"
      },
      "AzureCredentialSpecCreate": {
        "properties": {
          "credential": {
            "$ref": "#/components/schemas/AzureCredentialCreate",
            "description": "The credential for the Azure Storage Account"
          },
          "type": {
            "description": "The type of the credential.",
            "enum": [
              "Microsoft.Storage",
              "AWS.S3",
              "Google.Storage"
            ],
            "example": "Microsoft.Storage",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "type",
          "credential"
        ],
        "title": "AzureCredentialSpecCreate",
        "type": "object"
      },
      "AzureCredentialSpecRead": {
        "properties": {
          "credential": {
            "$ref": "#/components/schemas/AzureCredentialRead",
            "description": "The credential for the Azure Storage Account"
          },
          "type": {
            "description": "The type of the credential.",
            "enum": [
              "Microsoft.Storage",
              "AWS.S3",
              "Google.Storage"
            ],
            "example": "Microsoft.Storage",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "type",
          "credential"
        ],
        "title": "AzureCredentialSpecRead",
        "type": "object"
      },
      "AzureStorageSpecCreate": {
        "properties": {
          "credential": {
            "$ref": "#/components/schemas/AzureCredentialCreate",
            "description": "The credential for the Azure Storage Account"
          },
          "description": {
            "description": "Description of the storage.",
            "example": "Input media files for processing.",
            "nullable": true,
            "type": "string"
          },
          "privateLinkServiceConnection": {
            "$ref": "#/components/schemas/PrivateLinkServiceConnectionNullable",
            "description": "Optional settings for a Private Link. Set it to null to remove the Private Link."
          },
          "type": {
            "description": "The type of storage.\nThis field cannot be modified, only set during creation.",
            "enum": [
              "Microsoft.Storage",
              "AWS.S3",
              "Google.Storage"
            ],
            "example": "Microsoft.Storage",
            "type": "string",
            "x-mkio-immutable": true
          },
          "url": {
            "description": "HTTP(S) URL required for access to the storage.\nThis field cannot be modified, only set during creation.",
            "example": "https://blobsamples.blob.core.windows.net/",
            "type": "string",
            "x-mkio-immutable": true
          }
        },
        "required": [
          "type",
          "url"
        ],
        "title": "AzureStorageSpecCreate",
        "type": "object"
      },
      "AzureStorageSpecPatch": {
        "properties": {
          "description": {
            "description": "Description of the storage.",
            "example": "Input media files for processing.",
            "nullable": true,
            "type": "string"
          },
          "privateLinkServiceConnection": {
            "$ref": "#/components/schemas/PrivateLinkServiceConnectionNullable",
            "description": "Optional settings for a Private Link. Set it to null to remove the Private Link."
          },
          "type": {
            "description": "The type of storage.\nThis field cannot be modified, only set during creation.",
            "enum": [
              "Microsoft.Storage",
              "AWS.S3",
              "Google.Storage"
            ],
            "example": "Microsoft.Storage",
            "type": "string",
            "x-mkio-immutable": true
          }
        },
        "title": "AzureStorageSpecPatch",
        "type": "object"
      },
      "AzureStorageSpecRead": {
        "properties": {
          "credential": {
            "$ref": "#/components/schemas/AzureCredentialRead",
            "description": "The credential for the Azure Storage Account"
          },
          "description": {
            "description": "Description of the storage.",
            "example": "Input media files for processing.",
            "nullable": true,
            "type": "string"
          },
          "privateLinkServiceConnection": {
            "$ref": "#/components/schemas/PrivateLinkServiceConnectionNullable",
            "description": "Optional settings for a Private Link. Set it to null to remove the Private Link."
          },
          "region": {
            "description": "Storage region.",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "type": {
            "description": "The type of storage.\nThis field cannot be modified, only set during creation.",
            "enum": [
              "Microsoft.Storage",
              "AWS.S3",
              "Google.Storage"
            ],
            "example": "Microsoft.Storage",
            "type": "string",
            "x-mkio-immutable": true
          },
          "url": {
            "description": "HTTP(S) URL required for access to the storage.\nThis field cannot be modified, only set during creation.",
            "example": "https://blobsamples.blob.core.windows.net/",
            "type": "string",
            "x-mkio-immutable": true
          }
        },
        "required": [
          "type",
          "region",
          "description",
          "url"
        ],
        "title": "AzureStorageSpecRead",
        "type": "object"
      },
      "BlobStorageMetadataSchema": {
        "properties": {
          "created": {
            "description": "The time when the resource was created",
            "format": "date-time",
            "type": "string"
          },
          "createdBy": {
            "description": "ID of the user who created the resource",
            "format": "uuid",
            "type": "string"
          },
          "createdByEmail": {
            "description": "Email of the user who created the resource",
            "type": "string"
          },
          "id": {
            "description": "The ID of the resource",
            "format": "uuid",
            "type": "string"
          },
          "name": {
            "description": "The name of the resource",
            "type": "string"
          },
          "updated": {
            "description": "The time when the resource was last updated",
            "format": "date-time",
            "type": "string"
          },
          "updatedBy": {
            "description": "ID of the user who last updated the resource",
            "format": "uuid",
            "type": "string"
          },
          "updatedByEmail": {
            "description": "Email of the user who last updated the resource",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "title": "BlobStorageMetadataSchema",
        "type": "object"
      },
      "BodySchema": {
        "properties": {
          "audio": {
            "description": "",
            "items": {
              "$ref": "#/components/schemas/AudioSchema"
            },
            "type": "array"
          },
          "textstream": {
            "description": "",
            "items": {
              "$ref": "#/components/schemas/TextStreamSchema"
            },
            "type": "array"
          },
          "video": {
            "description": "",
            "items": {
              "$ref": "#/components/schemas/VideoSchema"
            },
            "type": "array"
          }
        },
        "required": [
          "textstream",
          "video",
          "audio"
        ],
        "title": "BodySchema",
        "type": "object"
      },
      "BuiltInAssetConverterPreset": {
        "properties": {
          "@odata.type": {
            "description": "The discriminator for derived types.",
            "type": "string"
          },
          "presetName": {
            "description": "The built-in preset to be used for performing asset conversion.",
            "enum": [
              "CopyTopBitrateInterleaved",
              "CopyAllBitrateNonInterleaved",
              "CopyAllBitrateInterleaved"
            ],
            "type": "string"
          }
        },
        "required": [
          "@odata.type",
          "presetName"
        ],
        "title": "BuiltInAssetConverterPreset",
        "type": "object"
      },
      "BuiltInStandardEncoderPreset": {
        "properties": {
          "@odata.type": {
            "description": "The discriminator for derived types.",
            "type": "string"
          },
          "advancedSettingsName": {
            "description": "Name of the advanced settings configuration to apply to this transform's config.\nThese configuration blocks are managed by MediaKind and you should not set this field unless MediaKind support has asked you to.",
            "type": "string"
          },
          "presetName": {
            "description": "The built-in preset to be used for encoding videos. Options include:\n* H264SingleBitrateSD\n* H264SingleBitrate720p\n* H264SingleBitrate1080p\n* H264MultipleBitrateSD\n* H264MultipleBitrate720p\n* H264MultipleBitrate1080p\n* H264MultipleBitrateSDWithCVQ\n* H264MultipleBitrate720pWithCVQ\n* H264MultipleBitrate1080pWithCVQ\n* H265SingleBitrate720p\n* H265SingleBitrate1080p\n* H265SingleBitrate4K\n* AACGoodQualityAudio",
            "type": "string"
          }
        },
        "required": [
          "@odata.type",
          "presetName"
        ],
        "title": "BuiltInStandardEncoderPreset",
        "type": "object"
      },
      "CbcsDrmConfiguration": {
        "properties": {
          "fairPlay": {
            "$ref": "#/components/schemas/StreamingPolicyFairPlayConfiguration",
            "description": "FairPlay configuration"
          },
          "playReady": {
            "$ref": "#/components/schemas/StreamingPolicyPlayReadyConfiguration",
            "description": "PlayReady configuration"
          },
          "widevine": {
            "$ref": "#/components/schemas/StreamingPolicyWidevineConfiguration",
            "description": "Widevine configuration"
          }
        },
        "title": "CbcsDrmConfiguration",
        "type": "object"
      },
      "CencDrmConfiguration": {
        "properties": {
          "playReady": {
            "$ref": "#/components/schemas/StreamingPolicyPlayReadyConfiguration",
            "description": "PlayReady configuration"
          },
          "widevine": {
            "$ref": "#/components/schemas/StreamingPolicyWidevineConfiguration",
            "description": "Widevine configuration"
          }
        },
        "title": "CencDrmConfiguration",
        "type": "object"
      },
      "ClearKeyEncryptionConfiguration": {
        "properties": {
          "customKeysAcquisitionUrlTemplate": {
            "description": "The custom license acquisition URL template for a Clear Key license delivery service.",
            "type": "string"
          }
        },
        "title": "ClearKeyEncryptionConfiguration",
        "type": "object"
      },
      "CommonEncryptionCbcs": {
        "properties": {
          "clearKeyEncryptionConfiguration": {
            "$ref": "#/components/schemas/ClearKeyEncryptionConfiguration",
            "description": "Clear key configuration"
          },
          "clearTracks": {
            "description": "This represents which tracks should *not* be encrypted.",
            "items": {
              "$ref": "#/components/schemas/StreamingPolicyTrackSelection"
            },
            "type": "array"
          },
          "contentKeys": {
            "$ref": "#/components/schemas/StreamingPolicyContentKeys",
            "description": "Content keys used by the streaming policy."
          },
          "drm": {
            "$ref": "#/components/schemas/CbcsDrmConfiguration",
            "description": "DRM configuration"
          },
          "enabledProtocols": {
            "$ref": "#/components/schemas/EnabledProtocols",
            "description": "Enabled protocols. This is the set of protocols (dash, download, and hls) that will be delivered with common encryption."
          }
        },
        "title": "CommonEncryptionCbcs",
        "type": "object"
      },
      "CommonEncryptionCenc": {
        "properties": {
          "clearKeyEncryptionConfiguration": {
            "$ref": "#/components/schemas/ClearKeyEncryptionConfiguration",
            "description": "Clear key configuration"
          },
          "clearTracks": {
            "description": "This represents which tracks should *not* be encrypted.",
            "items": {
              "$ref": "#/components/schemas/StreamingPolicyTrackSelection"
            },
            "type": "array"
          },
          "contentKeys": {
            "$ref": "#/components/schemas/StreamingPolicyContentKeys",
            "description": "Content keys used by the streaming policy."
          },
          "drm": {
            "$ref": "#/components/schemas/CencDrmConfiguration",
            "description": "DRM configuration"
          },
          "enabledProtocols": {
            "$ref": "#/components/schemas/EnabledProtocols",
            "description": "Enabled protocols. This is the set of protocols (dash, download, and hls) that will be delivered with common encryption."
          }
        },
        "title": "CommonEncryptionCenc",
        "type": "object"
      },
      "ContentKeyPolicyClearKeyConfiguration": {
        "description": "Represents a configuration for non-DRM keys.",
        "properties": {
          "@odata.type": {
            "description": "The discriminator for derived types.",
            "type": "string"
          }
        },
        "required": [
          "@odata.type"
        ],
        "title": "ContentKeyPolicyClearKeyConfiguration",
        "type": "object"
      },
      "ContentKeyPolicyFairPlayConfiguration": {
        "description": "Specifies a configuration for FairPlay licenses.",
        "properties": {
          "@odata.type": {
            "description": "The discriminator for derived types.",
            "type": "string"
          },
          "ask": {
            "description": "The key that must be used as FairPlay Application Secret key. This needs to be base64 encoded.",
            "format": "byte",
            "nullable": true,
            "type": "string"
          },
          "fairPlayPfx": {
            "description": "The Base64 representation of FairPlay certificate in PKCS 12 (pfx) format (including private key).",
            "nullable": true,
            "type": "string"
          },
          "fairPlayPfxPassword": {
            "description": "The password encrypting FairPlay certificate in PKCS 12 (pfx) format.",
            "nullable": true,
            "type": "string"
          },
          "offlineRentalConfiguration": {
            "$ref": "#/components/schemas/ContentKeyPolicyFairPlayOfflineRentalConfiguration",
            "description": "Offline rental policy"
          },
          "rentalAndLeaseKeyType": {
            "description": "The rental and lease key type.",
            "enum": [
              "Unknown",
              "Undefined",
              "DualExpiry",
              "PersistentUnlimited",
              "PersistentLimited"
            ],
            "type": "string"
          },
          "rentalDuration": {
            "description": "The rental duration. Must be greater than or equal to 0.",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "@odata.type",
          "ask",
          "fairPlayPfx",
          "fairPlayPfxPassword",
          "rentalAndLeaseKeyType",
          "rentalDuration"
        ],
        "title": "ContentKeyPolicyFairPlayConfiguration",
        "type": "object"
      },
      "ContentKeyPolicyFairPlayOfflineRentalConfiguration": {
        "properties": {
          "playbackDurationSeconds": {
            "description": "Playback duration",
            "format": "int64",
            "type": "integer"
          },
          "storageDurationSeconds": {
            "description": "Storage duration",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "playbackDurationSeconds",
          "storageDurationSeconds"
        ],
        "title": "ContentKeyPolicyFairPlayOfflineRentalConfiguration",
        "type": "object"
      },
      "ContentKeyPolicyListResponseSchema": {
        "properties": {
          "@odata.nextLink": {
            "description": "@odata.nextLink URL if the page length and number of items match.",
            "readOnly": true,
            "type": "string"
          },
          "supplemental": {
            "$ref": "#/components/schemas/ListResponseSupplementalSchema",
            "description": "Supplemental info",
            "readOnly": true
          },
          "value": {
            "description": "A list of content key policies.",
            "items": {
              "$ref": "#/components/schemas/ContentKeyPolicySchema"
            },
            "type": "array"
          }
        },
        "required": [
          "supplemental",
          "value"
        ],
        "title": "ContentKeyPolicyListResponseSchema",
        "type": "object"
      },
      "ContentKeyPolicyOpenRestriction": {
        "description": "Represents an open restriction. License or key will be delivered on every request.",
        "properties": {
          "@odata.type": {
            "description": "The discriminator for derived types.",
            "type": "string"
          }
        },
        "required": [
          "@odata.type"
        ],
        "title": "ContentKeyPolicyOpenRestriction",
        "type": "object"
      },
      "ContentKeyPolicyOption": {
        "description": "Represents a policy option.",
        "properties": {
          "configuration": {
            "description": "The key delivery configuration.",
            "discriminator": {
              "mapping": {
                "#Microsoft.Media.ContentKeyPolicyClearKeyConfiguration": "#/components/schemas/ContentKeyPolicyClearKeyConfiguration",
                "#Microsoft.Media.ContentKeyPolicyFairPlayConfiguration": "#/components/schemas/ContentKeyPolicyFairPlayConfiguration",
                "#Microsoft.Media.ContentKeyPolicyPlayReadyConfiguration": "#/components/schemas/ContentKeyPolicyPlayReadyConfiguration",
                "#Microsoft.Media.ContentKeyPolicyUnknownConfiguration": "#/components/schemas/ContentKeyPolicyUnknownConfiguration",
                "#Microsoft.Media.ContentKeyPolicyWidevineConfiguration": "#/components/schemas/ContentKeyPolicyWidevineConfiguration"
              },
              "propertyName": "@odata.type"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/ContentKeyPolicyClearKeyConfiguration"
              },
              {
                "$ref": "#/components/schemas/ContentKeyPolicyFairPlayConfiguration"
              },
              {
                "$ref": "#/components/schemas/ContentKeyPolicyPlayReadyConfiguration"
              },
              {
                "$ref": "#/components/schemas/ContentKeyPolicyUnknownConfiguration"
              },
              {
                "$ref": "#/components/schemas/ContentKeyPolicyWidevineConfiguration"
              }
            ]
          },
          "name": {
            "description": "The Policy Option description.",
            "type": "string"
          },
          "policyOptionId": {
            "description": "The legacy Policy Option ID.",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "restriction": {
            "description": "The requirements that must be met to deliver keys with this configuration",
            "discriminator": {
              "mapping": {
                "#Microsoft.Media.ContentKeyPolicyOpenRestriction": "#/components/schemas/ContentKeyPolicyOpenRestriction",
                "#Microsoft.Media.ContentKeyPolicyTokenRestriction": "#/components/schemas/ContentKeyPolicyTokenRestriction",
                "#Microsoft.Media.ContentKeyPolicyUnknownRestriction": "#/components/schemas/ContentKeyPolicyUnknownRestriction"
              },
              "propertyName": "@odata.type"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/ContentKeyPolicyOpenRestriction"
              },
              {
                "$ref": "#/components/schemas/ContentKeyPolicyTokenRestriction"
              },
              {
                "$ref": "#/components/schemas/ContentKeyPolicyUnknownRestriction"
              }
            ]
          }
        },
        "required": [
          "configuration",
          "restriction"
        ],
        "title": "ContentKeyPolicyOption",
        "type": "object"
      },
      "ContentKeyPolicyPlayReadyConfiguration": {
        "description": "Specifies a configuration for PlayReady licenses.",
        "properties": {
          "@odata.type": {
            "description": "The discriminator for derived types.",
            "type": "string"
          },
          "licenses": {
            "description": "The PlayReady licenses.",
            "items": {
              "$ref": "#/components/schemas/ContentKeyPolicyPlayReadyLicense"
            },
            "type": "array"
          },
          "responseCustomData": {
            "description": "The custom response data.",
            "type": "string"
          }
        },
        "required": [
          "@odata.type",
          "licenses"
        ],
        "title": "ContentKeyPolicyPlayReadyConfiguration",
        "type": "object"
      },
      "ContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader": {
        "description": "Specifies that the content key ID is in the PlayReady header.",
        "properties": {
          "@odata.type": {
            "description": "The discriminator for derived types.",
            "type": "string"
          }
        },
        "required": [
          "@odata.type"
        ],
        "title": "ContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader",
        "type": "object"
      },
      "ContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier": {
        "description": "Specifies that the content key ID is specified in the PlayReady configuration.",
        "properties": {
          "@odata.type": {
            "description": "The discriminator for derived types.",
            "type": "string"
          },
          "keyId": {
            "description": "The content key ID.",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "@odata.type",
          "keyId"
        ],
        "title": "ContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier",
        "type": "object"
      },
      "ContentKeyPolicyPlayReadyExplicitAnalogTelevisionRestriction": {
        "description": "Configures the Explicit Analog Television Output Restriction control bits. For further details see the PlayReady Compliance Rules.",
        "properties": {
          "bestEffort": {
            "description": "Indicates whether this restriction is enforced on a Best Effort basis.",
            "type": "boolean"
          },
          "configurationData": {
            "description": "Configures the restriction control bits. Must be between 0 and 3 inclusive.",
            "format": "int32",
            "maximum": 3,
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "bestEffort",
          "configurationData"
        ],
        "title": "ContentKeyPolicyPlayReadyExplicitAnalogTelevisionRestriction",
        "type": "object"
      },
      "ContentKeyPolicyPlayReadyLicense": {
        "description": "The PlayReady license",
        "properties": {
          "allowTestDevices": {
            "description": "A flag indicating whether test devices can use the license.",
            "type": "boolean"
          },
          "beginDate": {
            "description": "The begin date of license",
            "format": "date-time",
            "type": "string"
          },
          "contentKeyLocation": {
            "description": "The content key location.",
            "discriminator": {
              "mapping": {
                "#Microsoft.Media.ContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader": "#/components/schemas/ContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader",
                "#Microsoft.Media.ContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier": "#/components/schemas/ContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier"
              },
              "propertyName": "@odata.type"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/ContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader"
              },
              {
                "$ref": "#/components/schemas/ContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier"
              }
            ]
          },
          "contentType": {
            "description": "The PlayReady content type.",
            "enum": [
              "Unknown",
              "Unspecified",
              "UltraVioletDownload",
              "UltraVioletStreaming"
            ],
            "type": "string"
          },
          "expirationDate": {
            "description": "The expiration date of license.",
            "format": "date-time",
            "type": "string"
          },
          "gracePeriod": {
            "description": "The grace period of license.",
            "format": "duration",
            "type": "string"
          },
          "licenseType": {
            "description": "The license type.",
            "enum": [
              "Unknown",
              "NonPersistent",
              "Persistent"
            ],
            "type": "string"
          },
          "playRight": {
            "$ref": "#/components/schemas/ContentKeyPolicyPlayReadyPlayRight",
            "description": "The license PlayRight"
          },
          "relativeBeginDate": {
            "description": "The relative begin date of license.",
            "format": "duration",
            "type": "string"
          },
          "relativeExpirationDate": {
            "description": "The relative expiration date of license.",
            "format": "duration",
            "type": "string"
          },
          "securityLevel": {
            "description": "The security level.",
            "enum": [
              "Unknown",
              "SL150",
              "SL2000",
              "SL3000"
            ],
            "type": "string"
          }
        },
        "required": [
          "allowTestDevices",
          "contentKeyLocation",
          "contentType",
          "licenseType"
        ],
        "title": "ContentKeyPolicyPlayReadyLicense",
        "type": "object"
      },
      "ContentKeyPolicyPlayReadyPlayRight": {
        "description": "Configures the Play Right in the PlayReady license.",
        "properties": {
          "agcAndColorStripeRestriction": {
            "description": "Configures Automatic Gain Control (AGC) and Color Stripe in the license. Must be between 0 and 3 inclusive.",
            "format": "int32",
            "maximum": 3,
            "minimum": 0,
            "type": "integer"
          },
          "allowPassingVideoContentToUnknownOutput": {
            "description": "Configures Unknown output handling settings of the license.",
            "enum": [
              "Unknown",
              "NotAllowed",
              "Allowed",
              "AllowedWithVideoConstriction"
            ],
            "type": "string"
          },
          "analogVideoOpl": {
            "description": "Specifies the output protection level for compressed digital audio.",
            "format": "int32",
            "type": "integer"
          },
          "compressedDigitalAudioOpl": {
            "description": "Specifies the output protection level for compressed digital audio.",
            "format": "int32",
            "type": "integer"
          },
          "compressedDigitalVideoOpl": {
            "description": "Specifies the output protection level for compressed digital video.",
            "format": "int32",
            "type": "integer"
          },
          "digitalVideoOnlyContentRestriction": {
            "description": "Enables the Image Constraint For Analog Component Video Restriction in the license.",
            "type": "boolean"
          },
          "explicitAnalogTelevisionOutputRestriction": {
            "$ref": "#/components/schemas/ContentKeyPolicyPlayReadyExplicitAnalogTelevisionRestriction",
            "description": "Configures the Explicit Analog Television Output Restriction in the license. Configuration data must be between 0 and 3 inclusive."
          },
          "firstPlayExpiration": {
            "description": "The amount of time that the license is valid after the license is first used to play content.",
            "format": "duration",
            "type": "string"
          },
          "imageConstraintForAnalogComponentVideoRestriction": {
            "description": "Enables the Image Constraint For Analog Component Video Restriction in the license.",
            "type": "boolean"
          },
          "imageConstraintForAnalogComputerMonitorRestriction": {
            "description": "Enables the Image Constraint For Analog Component Video Restriction in the license.",
            "type": "boolean"
          },
          "scmsRestriction": {
            "description": "Configures the Serial Copy Management System (SCMS) in the license. Must be between 0 and 3 inclusive.",
            "format": "int32",
            "maximum": 3,
            "minimum": 0,
            "type": "integer"
          },
          "uncompressedDigitalAudioOpl": {
            "description": "Specifies the output protection level for uncompressed digital audio.",
            "format": "int32",
            "type": "integer"
          },
          "uncompressedDigitalVideoOpl": {
            "description": "Specifies the output protection level for uncompressed digital video.",
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "allowPassingVideoContentToUnknownOutput",
          "digitalVideoOnlyContentRestriction",
          "imageConstraintForAnalogComponentVideoRestriction",
          "imageConstraintForAnalogComputerMonitorRestriction"
        ],
        "title": "ContentKeyPolicyPlayReadyPlayRight",
        "type": "object"
      },
      "ContentKeyPolicyProperties": {
        "description": "The properties of the Content Key Policy.",
        "properties": {
          "created": {
            "description": "The creation date of the Policy",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "description": {
            "description": "A description for the Policy.",
            "maxLength": 1024,
            "minLength": 0,
            "type": "string"
          },
          "fairPlayAmsCompatibility": {
            "description": "FairPlay AMS compatibility enabled.",
            "type": "boolean"
          },
          "lastModified": {
            "description": "The last modified date of the Policy",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "options": {
            "description": "The Key Policy options.",
            "items": {
              "$ref": "#/components/schemas/ContentKeyPolicyOption"
            },
            "type": "array"
          },
          "policyId": {
            "description": "The legacy Policy ID.",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "options"
        ],
        "title": "ContentKeyPolicyProperties",
        "type": "object"
      },
      "ContentKeyPolicyPutProperties": {
        "description": "The properties of the Content Key Policy.",
        "properties": {
          "description": {
            "description": "A description for the Policy.",
            "maxLength": 1024,
            "minLength": 0,
            "type": "string"
          },
          "fairPlayAmsCompatibility": {
            "description": "FairPlay AMS compatibility enabled.",
            "type": "boolean"
          },
          "options": {
            "description": "The Key Policy options.",
            "items": {
              "$ref": "#/components/schemas/ContentKeyPolicyOption"
            },
            "type": "array"
          }
        },
        "required": [
          "options"
        ],
        "title": "ContentKeyPolicyPutProperties",
        "type": "object"
      },
      "ContentKeyPolicyPutSchema": {
        "properties": {
          "properties": {
            "$ref": "#/components/schemas/ContentKeyPolicyPutProperties",
            "description": "The key policy"
          }
        },
        "required": [
          "properties"
        ],
        "title": "ContentKeyPolicyPutSchema",
        "type": "object"
      },
      "ContentKeyPolicyRsaTokenKey": {
        "description": "Specifies a RSA key for token validation",
        "properties": {
          "@odata.type": {
            "description": "The discriminator for derived types.",
            "type": "string"
          },
          "exponent": {
            "description": "The RSA Parameter exponent",
            "format": "byte",
            "nullable": true,
            "type": "string"
          },
          "modulus": {
            "description": "The RSA Parameter modulus",
            "format": "byte",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "@odata.type",
          "exponent",
          "modulus"
        ],
        "title": "ContentKeyPolicyRsaTokenKey",
        "type": "object"
      },
      "ContentKeyPolicySchema": {
        "properties": {
          "id": {
            "description": "Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}",
            "readOnly": true,
            "type": "string"
          },
          "name": {
            "description": "The name of the resource",
            "example": "name",
            "maxLength": 260,
            "minLength": 1,
            "pattern": "^[^\\^\\'<>%&:\\\\?/*+]+$",
            "readOnly": true,
            "type": "string"
          },
          "properties": {
            "$ref": "#/components/schemas/ContentKeyPolicyProperties",
            "description": "The key policy"
          },
          "systemData": {
            "$ref": "#/components/schemas/SystemDataSchema",
            "description": "Metadata pertaining to creation and last modification of the resource.",
            "readOnly": true
          },
          "type": {
            "description": "The type of the resource. E.g. \"Microsoft.Media/mediaservices/assets\"",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "properties"
        ],
        "title": "ContentKeyPolicySchema",
        "type": "object"
      },
      "ContentKeyPolicySymmetricTokenKey": {
        "description": "Specifies a symmetric key for token validation.",
        "properties": {
          "@odata.type": {
            "description": "The discriminator for derived types.",
            "type": "string"
          },
          "keyValue": {
            "description": "The key value of the key",
            "format": "byte",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "@odata.type",
          "keyValue"
        ],
        "title": "ContentKeyPolicySymmetricTokenKey",
        "type": "object"
      },
      "ContentKeyPolicyTokenClaim": {
        "description": "Represents a token claim.",
        "properties": {
          "claimType": {
            "description": "Token claim type.",
            "type": "string"
          },
          "claimValue": {
            "description": "Token claim value.",
            "type": "string"
          }
        },
        "title": "ContentKeyPolicyTokenClaim",
        "type": "object"
      },
      "ContentKeyPolicyTokenRestriction": {
        "description": "Represents a token restriction. Provided token must match these requirements for successful license or key delivery.",
        "properties": {
          "@odata.type": {
            "description": "The discriminator for derived types.",
            "type": "string"
          },
          "alternateVerificationKeys": {
            "description": "A list of alternative verification keys.",
            "items": {
              "discriminator": {
                "mapping": {
                  "#Microsoft.Media.ContentKeyPolicyRsaTokenKey": "#/components/schemas/ContentKeyPolicyRsaTokenKey",
                  "#Microsoft.Media.ContentKeyPolicySymmetricTokenKey": "#/components/schemas/ContentKeyPolicySymmetricTokenKey",
                  "#Microsoft.Media.ContentKeyPolicyX509CertificateTokenKey": "#/components/schemas/ContentKeyPolicyX509CertificateTokenKey"
                },
                "propertyName": "@odata.type"
              },
              "oneOf": [
                {
                  "$ref": "#/components/schemas/ContentKeyPolicyRsaTokenKey"
                },
                {
                  "$ref": "#/components/schemas/ContentKeyPolicySymmetricTokenKey"
                },
                {
                  "$ref": "#/components/schemas/ContentKeyPolicyX509CertificateTokenKey"
                }
              ]
            },
            "type": "array"
          },
          "audience": {
            "description": "The audience for the token.",
            "type": "string"
          },
          "issuer": {
            "description": "The token issuer.",
            "type": "string"
          },
          "openIdConnectDiscoveryDocument": {
            "description": "The OpenID connect discovery document.",
            "type": "string"
          },
          "primaryVerificationKey": {
            "description": "The primary verification key.",
            "discriminator": {
              "mapping": {
                "#Microsoft.Media.ContentKeyPolicyRsaTokenKey": "#/components/schemas/ContentKeyPolicyRsaTokenKey",
                "#Microsoft.Media.ContentKeyPolicySymmetricTokenKey": "#/components/schemas/ContentKeyPolicySymmetricTokenKey",
                "#Microsoft.Media.ContentKeyPolicyX509CertificateTokenKey": "#/components/schemas/ContentKeyPolicyX509CertificateTokenKey"
              },
              "propertyName": "@odata.type"
            },
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ContentKeyPolicyRsaTokenKey"
              },
              {
                "$ref": "#/components/schemas/ContentKeyPolicySymmetricTokenKey"
              },
              {
                "$ref": "#/components/schemas/ContentKeyPolicyX509CertificateTokenKey"
              }
            ]
          },
          "requiredClaims": {
            "description": "A list of required token claims.",
            "items": {
              "$ref": "#/components/schemas/ContentKeyPolicyTokenClaim"
            },
            "type": "array"
          },
          "restrictionTokenType": {
            "description": "The type of token.",
            "enum": [
              "Unknown",
              "Swt",
              "Jwt"
            ],
            "type": "string"
          }
        },
        "required": [
          "@odata.type",
          "audience",
          "issuer",
          "primaryVerificationKey",
          "restrictionTokenType"
        ],
        "title": "ContentKeyPolicyTokenRestriction",
        "type": "object"
      },
      "ContentKeyPolicyUnknownConfiguration": {
        "description": "Represents a ContentKeyPolicyConfiguration that is unavailable in the current API version.",
        "properties": {
          "@odata.type": {
            "description": "The discriminator for derived types.",
            "type": "string"
          }
        },
        "required": [
          "@odata.type"
        ],
        "title": "ContentKeyPolicyUnknownConfiguration",
        "type": "object"
      },
      "ContentKeyPolicyUnknownRestriction": {
        "description": "Represents a ContentKeyPolicyRestriction that is unavailable in the current API version.",
        "properties": {
          "@odata.type": {
            "description": "The discriminator for derived types.",
            "type": "string"
          }
        },
        "required": [
          "@odata.type"
        ],
        "title": "ContentKeyPolicyUnknownRestriction",
        "type": "object"
      },
      "ContentKeyPolicyWidevineConfiguration": {
        "description": "Specifies a configuration for Widevine licenses.",
        "properties": {
          "@odata.type": {
            "description": "The discriminator for derived types.",
            "type": "string"
          },
          "widevineTemplate": {
            "description": "The Widevine template.",
            "type": "string"
          }
        },
        "required": [
          "@odata.type",
          "widevineTemplate"
        ],
        "title": "ContentKeyPolicyWidevineConfiguration",
        "type": "object"
      },
      "ContentKeyPolicyX509CertificateTokenKey": {
        "description": "Specifies a certificate for token validation.",
        "properties": {
          "@odata.type": {
            "description": "The discriminator for derived types.",
            "type": "string"
          },
          "rawBody": {
            "description": "The raw data field of a certificate in PKCS 12 format (X509Certificate2 in .NET)",
            "format": "byte",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "@odata.type",
          "rawBody"
        ],
        "title": "ContentKeyPolicyX509CertificateTokenKey",
        "type": "object"
      },
      "CredentialListSchema": {
        "properties": {
          "@odata.nextLink": {
            "description": "@odata.nextLink URL if the page length and number of items match.",
            "readOnly": true,
            "type": "string"
          },
          "supplemental": {
            "$ref": "#/components/schemas/ListResponseSupplementalSchema",
            "description": "Supplemental info",
            "readOnly": true
          },
          "value": {
            "description": "A list of credentials",
            "items": {
              "$ref": "#/components/schemas/CredentialSchemaGet"
            },
            "type": "array"
          }
        },
        "required": [
          "supplemental",
          "value"
        ],
        "title": "CredentialListSchema",
        "type": "object"
      },
      "CredentialSchemaGet": {
        "properties": {
          "metadata": {
            "$ref": "#/components/schemas/SasTokenMetadataSchema",
            "description": "Metadata about the credential."
          },
          "spec": {
            "description": "The specification of the credential.",
            "discriminator": {
              "mapping": {
                "AWS.S3": "#/components/schemas/AWSCredentialSpec",
                "Google.Storage": "#/components/schemas/GoogleCredentialSpec",
                "Microsoft.Storage": "#/components/schemas/AzureCredentialSpecRead"
              },
              "propertyName": "type"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/AzureCredentialSpecRead"
              },
              {
                "$ref": "#/components/schemas/AWSCredentialSpec"
              },
              {
                "$ref": "#/components/schemas/GoogleCredentialSpec"
              }
            ]
          }
        },
        "required": [
          "metadata",
          "spec"
        ],
        "title": "CredentialSchemaGet",
        "type": "object"
      },
      "CredentialSchemaPost": {
        "properties": {
          "spec": {
            "description": "The specification of the credential.",
            "discriminator": {
              "mapping": {
                "AWS.S3": "#/components/schemas/AWSCredentialSpec",
                "Google.Storage": "#/components/schemas/GoogleCredentialSpec",
                "Microsoft.Storage": "#/components/schemas/AzureCredentialSpecCreate"
              },
              "propertyName": "type"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/AzureCredentialSpecCreate"
              },
              {
                "$ref": "#/components/schemas/AWSCredentialSpec"
              },
              {
                "$ref": "#/components/schemas/GoogleCredentialSpec"
              }
            ]
          }
        },
        "required": [
          "spec"
        ],
        "title": "CredentialSchemaPost",
        "type": "object"
      },
      "CrossSiteAccessPolicies": {
        "properties": {
          "clientAccessPolicy": {
            "description": "The XML content of the client access policy file. Search 'clientaccesspolicy.xml' to learn more.",
            "nullable": true,
            "type": "string"
          },
          "crossDomainPolicy": {
            "description": "The XML content of the cross-domain policy file. Search 'crossdomain.xml' to learn more.",
            "nullable": true,
            "type": "string"
          }
        },
        "title": "CrossSiteAccessPolicies",
        "type": "object"
      },
      "DashSettings": {
        "properties": {
          "role": {
            "description": "The role for the DASH setting.",
            "type": "string"
          }
        },
        "title": "DashSettings",
        "type": "object"
      },
      "DefaultKey": {
        "properties": {
          "label": {
            "description": "Labels are a potential matching field for selecting a content key via a streaming locator.",
            "type": "string"
          },
          "policyName": {
            "description": "Policy used by the key.",
            "type": "string"
          }
        },
        "title": "DefaultKey",
        "type": "object"
      },
      "EnabledProtocols": {
        "properties": {
          "dash": {
            "description": "Enable Dash protocol",
            "type": "boolean"
          },
          "download": {
            "description": "Enable download protocol",
            "type": "boolean"
          },
          "hls": {
            "description": "Enable HLS protocol",
            "type": "boolean"
          },
          "smoothStreaming": {
            "description": "Smooth streaming is not supported and the value of this field is ignored.",
            "type": "boolean"
          }
        },
        "required": [
          "download",
          "dash",
          "hls",
          "smoothStreaming"
        ],
        "title": "EnabledProtocols",
        "type": "object"
      },
      "EncoderPreset": {
        "properties": {
          "@odata.type": {
            "description": "The discriminator for derived types.",
            "type": "string"
          },
          "advancedSettingsName": {
            "description": "Name of the advanced settings configuration to apply to this transform's config.\nThese configuration blocks are managed by MediaKind and you should not set this field unless MediaKind support has asked you to.",
            "type": "string"
          },
          "config": {
            "additionalProperties": {},
            "description": "The configuration for the custom preset.",
            "type": "object"
          },
          "presetName": {
            "description": "Name of this preset.",
            "type": "string"
          }
        },
        "required": [
          "@odata.type",
          "config",
          "presetName"
        ],
        "title": "EncoderPreset",
        "type": "object"
      },
      "EnvelopeEncryption": {
        "properties": {
          "clearTracks": {
            "description": "Clear tracks. This is the set of tracks that will be delivered without envelope encryption.",
            "items": {
              "$ref": "#/components/schemas/StreamingPolicyTrackSelection"
            },
            "type": "array"
          },
          "contentKeys": {
            "$ref": "#/components/schemas/StreamingPolicyContentKeys",
            "description": "Content keys used by the streaming policy."
          },
          "customKeyAcquisitionUrlTemplate": {
            "description": "Optional template for the customer service to use for key acquisition. Not needed if using the built-in key delivery service.",
            "maxLength": 1024,
            "minLength": 1,
            "type": "string"
          },
          "enabledProtocols": {
            "$ref": "#/components/schemas/EnabledProtocols",
            "description": "Enabled protocols. This is the set of protocols (dash, download, and hls) that will be delivered with envelope encryption."
          }
        },
        "title": "EnvelopeEncryption",
        "type": "object"
      },
      "Error": {
        "properties": {
          "error": {
            "$ref": "#/components/schemas/ErrorDetail",
            "description": "Pertinent information about the error"
          },
          "ref": {
            "description": "A reference to the request that caused the error.",
            "type": "string"
          },
          "status": {
            "description": "The HTTP status code",
            "type": "integer"
          }
        },
        "required": [
          "error",
          "status",
          "ref"
        ],
        "title": "Error",
        "type": "object"
      },
      "ErrorDetail": {
        "properties": {
          "code": {
            "description": "The error code.",
            "type": "string"
          },
          "detail": {
            "description": "The error message.",
            "type": "string"
          },
          "extraDetail": {
            "additionalProperties": {},
            "description": "Extra information regarding this error.",
            "type": "object"
          }
        },
        "required": [
          "code",
          "detail"
        ],
        "title": "ErrorDetail",
        "type": "object"
      },
      "ExceptionsSchema": {
        "properties": {
          "additionalProperties": {
            "description": "",
            "type": "string"
          }
        },
        "required": [
          "additionalProperties"
        ],
        "title": "ExceptionsSchema",
        "type": "object"
      },
      "FileSchema": {
        "properties": {
          "name": {
            "description": "",
            "type": "string"
          },
          "size": {
            "description": "",
            "type": "integer"
          }
        },
        "required": [
          "name",
          "size"
        ],
        "title": "FileSchema",
        "type": "object"
      },
      "FilterTrackPropertyCondition": {
        "properties": {
          "operation": {
            "description": "Set to either 'Equal' or 'NotEqual'. Tracks matching this predicate will be included.\n\nExamples:\nTo include all audio tracks, set operation to 'Equal', property to 'Type', and value to 'Audio'.",
            "enum": [
              "Equal",
              "NotEqual"
            ],
            "type": "string"
          },
          "property": {
            "description": "The property to match against. Supported properties include:\nBitrate, FourCC, Language, Name, Type, and Unknown. \n\n- Bitrate may be provided as a single numeric value '100000' or as a range '500000-1000000'.\n- FourCC is the codec, and may be one of 'avc1', 'hev1', and 'hvc1' for video, or one of 'mp4a' and 'ec-3' for audio.\n- Language is the value of a language tag to include, as specified in RFC 5646.\n- Name is the name of the track as specified in the manifest.\n- Type is one of either 'video', 'audio', or 'text'.",
            "enum": [
              "Unknown",
              "Type",
              "Name",
              "Language",
              "FourCC",
              "Bitrate"
            ],
            "type": "string"
          },
          "value": {
            "description": "The value to match against. Values are not case-sensitive.",
            "type": "string"
          }
        },
        "required": [
          "property",
          "value",
          "operation"
        ],
        "title": "FilterTrackPropertyCondition",
        "type": "object"
      },
      "FilterTrackSelection": {
        "properties": {
          "trackSelections": {
            "description": "Defines the tracks to include in the output. Multiple entries here will be AND'd together.\n\nTypically, you will want to select a matching Type, such as video, and then select additional filters. \nFor instance, to include all audio tracks that are not English, and all video tracks that are between 3 and 5 Mbps, you would provide three FilterTrackSelection objects:\n```json\n[\n    {\"property\": \"Type\", \"operation\": \"Equal\", \"value\": \"Audio\"},\n    {\"property\": \"Bitrate\", \"operation\": \"Equal\", \"value\": \"3000000-5000000\"},\n    {\"property\": \"Language\", \"operation\": \"NotEqual\", \"value\": \"en\"},\n]\n```",
            "items": {
              "$ref": "#/components/schemas/FilterTrackPropertyCondition"
            },
            "type": "array"
          }
        },
        "required": [
          "trackSelections"
        ],
        "title": "FilterTrackSelection",
        "type": "object"
      },
      "FirstQuality": {
        "properties": {
          "bitrate": {
            "description": "Denotes the target video bitrate to be used when starting playback of an HLS manifest.\nThe video representation with the bitrate closest to the defined bitrate will be presented first among the available representations in the HLS manifest.",
            "type": "integer"
          }
        },
        "required": [
          "bitrate"
        ],
        "title": "FirstQuality",
        "type": "object"
      },
      "FolderSchema": {
        "properties": {
          "name": {
            "description": "",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "title": "FolderSchema",
        "type": "object"
      },
      "GoogleCredential": {
        "properties": {
          "gac": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Google Application Credentials in JSON format.  \n        You can generate this from the command line with `gcloud iam service-accounts keys create key.json --iam-account=<service_account>@<project>.iam.gserviceaccount.com`  \n        Or download it from the GCP console.",
            "example": {
              "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
              "auth_uri": "https://accounts.google.com/o/oauth2/auth",
              "client_email": "sa@mygcpproject.iam.gserviceaccount.com",
              "client_id": "123456789012345678901",
              "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/sa%40mygcpproject.iam.gserviceaccount.com",
              "private_key": "-----BEGIN PRIVATE KEY-----\nVGhpcyBpcyBwcml2YXRlIGtleSBpbmZvLgo=\n-----END PRIVATE KEY-----\n",
              "private_key_id": "4a3aeda866dc4f21b6824c882d886009",
              "project_id": "mygcpproject",
              "token_uri": "https://oauth2.googleapis.com/token",
              "type": "service_account"
            },
            "type": "object"
          }
        },
        "required": [
          "gac"
        ],
        "title": "GoogleCredential",
        "type": "object"
      },
      "GoogleCredentialSpec": {
        "properties": {
          "credential": {
            "$ref": "#/components/schemas/GoogleCredential",
            "description": "The credential for the Google Storage bucket."
          },
          "type": {
            "description": "The type of the credential.",
            "enum": [
              "Microsoft.Storage",
              "AWS.S3",
              "Google.Storage"
            ],
            "example": "Microsoft.Storage",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "type",
          "credential"
        ],
        "title": "GoogleCredentialSpec",
        "type": "object"
      },
      "GoogleStorageSpecCreate": {
        "properties": {
          "bucketName": {
            "description": "The name of the Google Storage bucket.\nThis field cannot be modified, only set during creation.",
            "maxLength": 256,
            "minLength": 2,
            "type": "string",
            "x-mkio-immutable": true
          },
          "credential": {
            "$ref": "#/components/schemas/GoogleCredential",
            "description": "The credential for the Google Storage bucket. Required at creation."
          },
          "description": {
            "description": "Description of the storage.",
            "example": "Input media files for processing.",
            "nullable": true,
            "type": "string"
          },
          "type": {
            "description": "The type of storage.\nThis field cannot be modified, only set during creation.",
            "enum": [
              "Microsoft.Storage",
              "AWS.S3",
              "Google.Storage"
            ],
            "example": "Microsoft.Storage",
            "type": "string",
            "x-mkio-immutable": true
          }
        },
        "required": [
          "type",
          "bucketName"
        ],
        "title": "GoogleStorageSpecCreate",
        "type": "object"
      },
      "GoogleStorageSpecPatch": {
        "properties": {
          "description": {
            "description": "Description of the storage.",
            "example": "Input media files for processing.",
            "nullable": true,
            "type": "string"
          },
          "type": {
            "description": "The type of storage.\nThis field cannot be modified, only set during creation.",
            "enum": [
              "Microsoft.Storage",
              "AWS.S3",
              "Google.Storage"
            ],
            "example": "Microsoft.Storage",
            "type": "string",
            "x-mkio-immutable": true
          }
        },
        "title": "GoogleStorageSpecPatch",
        "type": "object"
      },
      "GoogleStorageSpecRead": {
        "properties": {
          "bucketName": {
            "description": "The name of the Google Storage bucket.\nThis field cannot be modified, only set during creation.",
            "maxLength": 256,
            "minLength": 2,
            "type": "string",
            "x-mkio-immutable": true
          },
          "credential": {
            "$ref": "#/components/schemas/GoogleCredential",
            "description": "The credential for the Google Storage bucket. Required at creation."
          },
          "description": {
            "description": "Description of the storage.",
            "example": "Input media files for processing.",
            "nullable": true,
            "type": "string"
          },
          "region": {
            "description": "Storage region.",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "type": {
            "description": "The type of storage.\nThis field cannot be modified, only set during creation.",
            "enum": [
              "Microsoft.Storage",
              "AWS.S3",
              "Google.Storage"
            ],
            "example": "Microsoft.Storage",
            "type": "string",
            "x-mkio-immutable": true
          }
        },
        "required": [
          "type",
          "region",
          "description",
          "bucketName"
        ],
        "title": "GoogleStorageSpecRead",
        "type": "object"
      },
      "HeadSchema": {
        "properties": {
          "availabilityStartTime": {
            "description": "",
            "format": "date-time",
            "type": "string"
          },
          "clientManifestRelativePath": {
            "description": "",
            "type": "string"
          },
          "compatVersion": {
            "description": "",
            "type": "string"
          },
          "extra": {
            "additionalProperties": {},
            "description": "",
            "type": "object"
          },
          "formats": {
            "description": "",
            "type": "string"
          },
          "fragmentsPerHLSSegment": {
            "description": "",
            "type": "string"
          }
        },
        "required": [
          "clientManifestRelativePath",
          "availabilityStartTime",
          "compatVersion",
          "formats",
          "fragmentsPerHLSSegment",
          "extra"
        ],
        "title": "HeadSchema",
        "type": "object"
      },
      "HlsSettings": {
        "properties": {
          "characteristics": {
            "description": "The characteristics for the HLS setting.",
            "type": "string"
          },
          "default": {
            "default": false,
            "description": "Default track?",
            "type": "boolean"
          },
          "forced": {
            "default": false,
            "description": "Forced track?",
            "type": "boolean"
          }
        },
        "title": "HlsSettings",
        "type": "object"
      },
      "IPAccessControl": {
        "properties": {
          "allow": {
            "description": "The IP ranges that will be allowed to access the preview.  If empty, all IPs will be allowed.",
            "items": {
              "$ref": "#/components/schemas/IPRange"
            },
            "type": "array"
          }
        },
        "required": [
          "allow"
        ],
        "title": "IPAccessControl",
        "type": "object"
      },
      "IPAcl": {
        "properties": {
          "address": {
            "description": "",
            "type": "string"
          },
          "name": {
            "default": "",
            "description": "The name of the IP ACL.",
            "type": "string"
          },
          "subnetPrefixLength": {
            "default": 32,
            "description": "The subnet prefix length (see CIDR notation).",
            "maximum": 32,
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "address"
        ],
        "title": "IPAcl",
        "type": "object"
      },
      "IPRange": {
        "properties": {
          "address": {
            "description": "The IP address or DNS with port or protocol",
            "type": "string"
          },
          "name": {
            "description": "The name of the IP range. This is for your reference only. examples: 'everyone', 'dave's house', 'corp vpn'.",
            "maxLength": 32,
            "minLength": 1,
            "type": "string"
          },
          "subnetPrefixLength": {
            "description": "The subnet prefix length (see CIDR notation).",
            "maximum": 32,
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "name",
          "address",
          "subnetPrefixLength"
        ],
        "title": "IPRange",
        "type": "object"
      },
      "InputAccessControl": {
        "properties": {
          "ip": {
            "$ref": "#/components/schemas/IPAccessControl",
            "description": "The IP access control for the live event inputs."
          }
        },
        "required": [
          "ip"
        ],
        "title": "InputAccessControl",
        "type": "object"
      },
      "JobError": {
        "properties": {
          "category": {
            "description": "",
            "enum": [
              "Account",
              "Configuration",
              "Content",
              "Download",
              "Service",
              "Upload"
            ],
            "readOnly": true,
            "type": "string"
          },
          "code": {
            "description": "",
            "enum": [
              "ConfigurationUnsupported",
              "ContentMalformed",
              "ContentUnsupported",
              "DownloadNotAccessible",
              "DownloadTransientError",
              "IdentityUnsupported",
              "ServiceError",
              "ServiceTransientError",
              "UploadNotAccessible",
              "UploadTransientError"
            ],
            "readOnly": true,
            "type": "string"
          },
          "message": {
            "description": "",
            "readOnly": true,
            "type": "string"
          },
          "retry": {
            "description": "",
            "enum": [
              "DoNotRetry",
              "MayRetry"
            ],
            "readOnly": true,
            "type": "string"
          }
        },
        "title": "JobError",
        "type": "object"
      },
      "JobInputAsset": {
        "properties": {
          "@odata.type": {
            "description": "The discriminator for derived types.",
            "type": "string"
          },
          "assetName": {
            "description": "The name of the input Asset",
            "type": "string"
          },
          "end": {
            "description": "Defines a point on the timeline of the input media at which processing will end. Defaults to the end of the input media.",
            "discriminator": {
              "mapping": {
                "#Microsoft.Media.AbsoluteClipTime": "#/components/schemas/AbsoluteClipTime",
                "#Microsoft.Media.UtcClipTime": "#/components/schemas/UtcClipTime"
              },
              "propertyName": "@odata.type"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/AbsoluteClipTime"
              },
              {
                "$ref": "#/components/schemas/UtcClipTime"
              }
            ]
          },
          "files": {
            "description": "List of files.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "label": {
            "description": "A label that is assigned to a JobInputClip",
            "type": "string"
          },
          "start": {
            "description": "Defines a point on the timeline of the input media at which processing will start. Defaults to the beginning of the input media.",
            "discriminator": {
              "mapping": {
                "#Microsoft.Media.AbsoluteClipTime": "#/components/schemas/AbsoluteClipTime",
                "#Microsoft.Media.UtcClipTime": "#/components/schemas/UtcClipTime"
              },
              "propertyName": "@odata.type"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/AbsoluteClipTime"
              },
              {
                "$ref": "#/components/schemas/UtcClipTime"
              }
            ]
          }
        },
        "required": [
          "@odata.type",
          "assetName"
        ],
        "title": "JobInputAsset",
        "type": "object"
      },
      "JobInputHttp": {
        "properties": {
          "@odata.type": {
            "description": "The discriminator for derived types.",
            "type": "string"
          },
          "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"
          },
          "end": {
            "description": "(NOT IMPLEMENTED) Defines a point on the timeline of the input media at which processing will end. Defaults to the end of the input media.",
            "discriminator": {
              "mapping": {
                "#Microsoft.Media.AbsoluteClipTime": "#/components/schemas/AbsoluteClipTime",
                "#Microsoft.Media.UtcClipTime": "#/components/schemas/UtcClipTime"
              },
              "propertyName": "@odata.type"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/AbsoluteClipTime"
              },
              {
                "$ref": "#/components/schemas/UtcClipTime"
              }
            ]
          },
          "files": {
            "description": "List of files. Required for JobInputHttp.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "label": {
            "description": "A label that is assigned to a JobInputClip",
            "type": "string"
          },
          "start": {
            "description": "(NOT IMPLEMENTED) Defines a point on the timeline of the input media at which processing will start. Defaults to the beginning of the input media.",
            "discriminator": {
              "mapping": {
                "#Microsoft.Media.AbsoluteClipTime": "#/components/schemas/AbsoluteClipTime",
                "#Microsoft.Media.UtcClipTime": "#/components/schemas/UtcClipTime"
              },
              "propertyName": "@odata.type"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/AbsoluteClipTime"
              },
              {
                "$ref": "#/components/schemas/UtcClipTime"
              }
            ]
          }
        },
        "required": [
          "@odata.type",
          "files"
        ],
        "title": "JobInputHttp",
        "type": "object"
      },
      "JobListResponseSchema": {
        "properties": {
          "@odata.nextLink": {
            "description": "@odata.nextLink URL if the page length and number of items match.",
            "readOnly": true,
            "type": "string"
          },
          "supplemental": {
            "$ref": "#/components/schemas/ListResponseSupplementalSchema",
            "description": "Supplemental info",
            "readOnly": true
          },
          "value": {
            "description": "A list of Jobs",
            "items": {
              "$ref": "#/components/schemas/JobSchema"
            },
            "type": "array"
          }
        },
        "required": [
          "supplemental",
          "value"
        ],
        "title": "JobListResponseSchema",
        "type": "object"
      },
      "JobOutputAsset": {
        "properties": {
          "@odata.type": {
            "description": "The discriminator for derived types.",
            "type": "string"
          },
          "assetName": {
            "description": "The name of the output Asset",
            "type": "string"
          },
          "endTime": {
            "description": "The UTC date and time at which this Output finished processing.",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "error": {
            "$ref": "#/components/schemas/JobError",
            "description": "Details of the Job Output if it is in error state.",
            "readOnly": true
          },
          "label": {
            "description": "A label that is assigned to a JobOutput in order to help uniquely identify it.",
            "type": "string"
          },
          "progress": {
            "default": 0,
            "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.",
            "nullable": true,
            "readOnly": true,
            "type": "integer"
          },
          "startTime": {
            "description": "The UTC date and time at which this Output began processing.",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "state": {
            "default": "Queued",
            "description": "The current state of the job.",
            "enum": [
              "Canceled",
              "Canceling",
              "Error",
              "Finished",
              "Processing",
              "Queued",
              "Scheduled"
            ],
            "nullable": true,
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "@odata.type",
          "assetName"
        ],
        "title": "JobOutputAsset",
        "type": "object"
      },
      "JobOutputAssetPatch": {
        "properties": {
          "@odata.type": {
            "description": "The discriminator for derived types.",
            "type": "string"
          },
          "assetName": {
            "description": "The name of the output Asset",
            "type": "string"
          },
          "label": {
            "description": "A label that is assigned to a JobOutput in order to help uniquely identify it.",
            "type": "string"
          }
        },
        "required": [
          "@odata.type",
          "assetName"
        ],
        "title": "JobOutputAssetPatch",
        "type": "object"
      },
      "JobPatchSchema": {
        "properties": {
          "properties": {
            "$ref": "#/components/schemas/JobPropertiesPatch",
            "description": "Properties of the job"
          }
        },
        "required": [
          "properties"
        ],
        "title": "JobPatchSchema",
        "type": "object"
      },
      "JobProperties": {
        "properties": {
          "correlationData": {
            "additionalProperties": {},
            "description": "Customer provided key, value pairs that will be returned in Job and JobOutput state events.",
            "type": "object"
          },
          "created": {
            "description": "The creation date and time of the Job. Set by the system.",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "description": {
            "description": "The description of the Job.",
            "maxLength": 1024,
            "nullable": true,
            "type": "string"
          },
          "endTime": {
            "description": "The UTC date and time at which this Job finished processing",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "input": {
            "description": "The inputs of the Job.",
            "discriminator": {
              "mapping": {
                "#Microsoft.Media.JobInputAsset": "#/components/schemas/JobInputAsset",
                "#Microsoft.Media.JobInputHttp": "#/components/schemas/JobInputHttp"
              },
              "propertyName": "@odata.type"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/JobInputAsset"
              },
              {
                "$ref": "#/components/schemas/JobInputHttp"
              }
            ]
          },
          "lastModified": {
            "description": "The last modified date and time of the Job. Set by the system.",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "outputs": {
            "description": "The outputs for the Job.",
            "items": {
              "discriminator": {
                "mapping": {
                  "#Microsoft.Media.JobOutputAsset": "#/components/schemas/JobOutputAsset"
                },
                "propertyName": "@odata.type"
              },
              "oneOf": [
                {
                  "$ref": "#/components/schemas/JobOutputAsset"
                }
              ]
            },
            "type": "array"
          },
          "priority": {
            "default": "Normal",
            "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": [
              "High",
              "Low",
              "Normal"
            ],
            "type": "string"
          },
          "recording": {
            "$ref": "#/components/schemas/JobRecording",
            "description": "Recording status. Present only for recording jobs.",
            "readOnly": true
          },
          "startTime": {
            "description": "The UTC date and time at which this Job started processing",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "state": {
            "default": "Queued",
            "description": "The current state of the job.",
            "enum": [
              "Canceled",
              "Canceling",
              "Error",
              "Finished",
              "Processing",
              "Queued",
              "Scheduled"
            ],
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "input",
          "outputs"
        ],
        "title": "JobProperties",
        "type": "object"
      },
      "JobPropertiesPatch": {
        "properties": {
          "correlationData": {
            "additionalProperties": {},
            "description": "Customer provided key, value pairs that will be returned in Job and JobOutput state events.",
            "type": "object"
          },
          "description": {
            "description": "The description of the Job.",
            "maxLength": 1024,
            "nullable": true,
            "type": "string"
          },
          "input": {
            "description": "The inputs of the Job.",
            "discriminator": {
              "mapping": {
                "#Microsoft.Media.JobInputAsset": "#/components/schemas/JobInputAsset",
                "#Microsoft.Media.JobInputHttp": "#/components/schemas/JobInputHttp"
              },
              "propertyName": "@odata.type"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/JobInputAsset"
              },
              {
                "$ref": "#/components/schemas/JobInputHttp"
              }
            ]
          },
          "outputs": {
            "description": "The outputs for the Job.",
            "items": {
              "discriminator": {
                "mapping": {
                  "#Microsoft.Media.JobOutputAsset": "#/components/schemas/JobOutputAssetPatch"
                },
                "propertyName": "@odata.type"
              },
              "oneOf": [
                {
                  "$ref": "#/components/schemas/JobOutputAssetPatch"
                }
              ]
            },
            "type": "array"
          },
          "priority": {
            "default": "Normal",
            "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": [
              "High",
              "Low",
              "Normal"
            ],
            "type": "string"
          }
        },
        "required": [
          "input",
          "outputs"
        ],
        "title": "JobPropertiesPatch",
        "type": "object"
      },
      "JobPutProperties": {
        "properties": {
          "correlationData": {
            "additionalProperties": {},
            "description": "Customer provided key, value pairs that will be returned in Job and JobOutput state events.",
            "type": "object"
          },
          "description": {
            "description": "The description of the Job.",
            "maxLength": 1024,
            "nullable": true,
            "type": "string"
          },
          "input": {
            "description": "The inputs of the Job.",
            "discriminator": {
              "mapping": {
                "#Microsoft.Media.JobInputAsset": "#/components/schemas/JobInputAsset",
                "#Microsoft.Media.JobInputHttp": "#/components/schemas/JobInputHttp"
              },
              "propertyName": "@odata.type"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/JobInputAsset"
              },
              {
                "$ref": "#/components/schemas/JobInputHttp"
              }
            ]
          },
          "outputs": {
            "description": "The outputs for the Job.",
            "items": {
              "discriminator": {
                "mapping": {
                  "#Microsoft.Media.JobOutputAsset": "#/components/schemas/JobOutputAsset"
                },
                "propertyName": "@odata.type"
              },
              "oneOf": [
                {
                  "$ref": "#/components/schemas/JobOutputAsset"
                }
              ]
            },
            "type": "array"
          },
          "priority": {
            "default": "Normal",
            "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": [
              "High",
              "Low",
              "Normal"
            ],
            "type": "string"
          }
        },
        "required": [
          "input",
          "outputs"
        ],
        "title": "JobPutProperties",
        "type": "object"
      },
      "JobPutSchema": {
        "properties": {
          "properties": {
            "$ref": "#/components/schemas/JobPutProperties",
            "description": "Properties of the job"
          }
        },
        "required": [
          "properties"
        ],
        "title": "JobPutSchema",
        "type": "object"
      },
      "JobRecording": {
        "nullable": true,
        "properties": {
          "actualEndTime": {
            "description": "The content range actually captured \u2014 end.",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "actualStartTime": {
            "description": "The content range actually captured \u2014 start.",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "details": {
            "description": "Error details; empty otherwise.",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "state": {
            "description": "Current recording lifecycle state.",
            "enum": [
              "Scheduled",
              "Waiting",
              "InProgress",
              "Completed",
              "Error"
            ],
            "readOnly": true,
            "type": "string"
          },
          "targetEndTime": {
            "description": "The boundary the pod is currently targeting for clip end.",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "targetStartTime": {
            "description": "The boundary the pod is currently targeting for clip start.",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          }
        },
        "title": "JobRecording",
        "type": "object"
      },
      "JobSchema": {
        "properties": {
          "id": {
            "description": "Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}",
            "readOnly": true,
            "type": "string"
          },
          "name": {
            "description": "The name of the resource",
            "example": "name",
            "maxLength": 260,
            "minLength": 1,
            "pattern": "^[^\\^\\'<>%&:\\\\?/*+]+$",
            "readOnly": true,
            "type": "string"
          },
          "properties": {
            "$ref": "#/components/schemas/JobProperties",
            "description": "Properties of the job"
          },
          "systemData": {
            "$ref": "#/components/schemas/SystemDataSchema",
            "description": "Metadata pertaining to creation and last modification of the resource.",
            "readOnly": true
          },
          "type": {
            "description": "The type of the resource. E.g. \"Microsoft.Media/mediaservices/assets\"",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "properties"
        ],
        "title": "JobSchema",
        "type": "object"
      },
      "JsonPatchEntry": {
        "properties": {
          "op": {
            "description": "Operation",
            "enum": [
              "add",
              "remove",
              "replace",
              "stringReplace",
              "numberReplace"
            ],
            "type": "string"
          },
          "path": {
            "description": "Path",
            "type": "string"
          },
          "search": {
            "description": "Search string for 'stringReplace' and 'numberReplace' operations.  \n'numberReplace' replaces with JSON number type but only when the search string matches the entire value. I.e \"audio_pid\" would be replaced with 50, not \"50\".",
            "type": "string"
          },
          "value": {
            "$ref": "#/components/schemas/AnyValue",
            "description": "Value"
          }
        },
        "required": [
          "op",
          "path"
        ],
        "title": "JsonPatchEntry",
        "type": "object"
      },
      "ListResponseSupplementalSchema": {
        "properties": {
          "count": {
            "description": "Number of items returned",
            "readOnly": true,
            "type": "integer"
          },
          "kind": {
            "description": "Type of items in the list",
            "readOnly": true,
            "type": "string"
          },
          "operation": {
            "description": "Operation type. Should always say 'list'",
            "readOnly": true,
            "type": "string"
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfoSchema",
            "description": "Pagination info",
            "readOnly": true
          },
          "subscription": {
            "$ref": "#/components/schemas/ProjectInfoSchema",
            "description": "Project info",
            "readOnly": true
          }
        },
        "required": [
          "kind",
          "count",
          "operation",
          "pagination"
        ],
        "title": "ListResponseSupplementalSchema",
        "type": "object"
      },
      "LiveEventEncoding": {
        "properties": {
          "encodingType": {
            "description": "Live event type. When encodingType is set to PassthroughBasic or PassthroughStandard, the service simply passes through the incoming video and audio layer(s) to the output. When encodingType is set to Standard or Premium1080p, a live encoder transcodes the incoming stream into multiple bitrates or layers",
            "enum": [
              "None",
              "PassthroughBasic",
              "PassthroughStandard",
              "Premium1080p",
              "Standard"
            ],
            "type": "string"
          },
          "keyFrameInterval": {
            "default": "PT2S",
            "description": "Use an ISO 8601 time value between 1 and 10 seconds to specify the output fragment length for the video and audio tracks of an encoding live event. For example, use PT2S to indicate 2 seconds. For the video track it also defines the key frame interval, or the length of a GoP (group of pictures). If this value is not set for an encoding live event, the fragment duration defaults to 2 seconds. The value cannot be set for pass-through live events.",
            "type": "string"
          },
          "presetName": {
            "description": "Defaults to either Default720p or Default1080p depending on encoding type. May be used to specify alternative encoding templates - contact support for assistance if your needs are complex.",
            "type": "string"
          },
          "stretchMode": {
            "description": "Determines how aspect ratio will be preserved when there is a mismatch between the input and output aspect ratios. Autofit to pad the output. Autosize to ignore the output ratio and pick the largest dimension that fits, and None to clip the content.",
            "enum": [
              "None",
              "AutoSize",
              "AutoFit"
            ],
            "type": "string"
          }
        },
        "required": [
          "encodingType"
        ],
        "title": "LiveEventEncoding",
        "type": "object"
      },
      "LiveEventEndpoint": {
        "properties": {
          "protocol": {
            "description": "The streaming protocol for the endpoint. Possible values include: 'SRT', 'RTMP'.",
            "type": "string"
          },
          "url": {
            "description": "The IP address or DNS with port and protocol",
            "type": "string"
          }
        },
        "title": "LiveEventEndpoint",
        "type": "object"
      },
      "LiveEventInput": {
        "properties": {
          "accessControl": {
            "$ref": "#/components/schemas/InputAccessControl",
            "description": "Access control for live event input."
          },
          "accessToken": {
            "description": "For RTMP, a UUID in string form to uniquely identify the stream.\nFor SRT, an arbitrary string of between 10 and 79 characters, used as the passphrase.\nThis can be specified at creation time but cannot be updated. \nIf omitted or null, the service will generate a unique value.",
            "maxLength": 79,
            "minLength": 10,
            "type": "string"
          },
          "endpoints": {
            "description": "Populated server-side. The input endpoints for the live event.",
            "items": {
              "$ref": "#/components/schemas/LiveEventEndpoint"
            },
            "type": "array"
          },
          "keyFrameIntervalDuration": {
            "description": "ISO 8601 time duration of the key frame interval duration of the input. This value sets the EXT-X-TARGETDURATION property in the HLS output. For example, use PT2S to indicate 2 seconds. Leave the value empty for encoding live events.",
            "type": "string"
          },
          "streamingProtocol": {
            "default": "RTMP",
            "description": "The input protocol for the live event. \nThis is specified at creation time and cannot be updated.",
            "enum": [
              "RTMP",
              "RTMPS",
              "SRT"
            ],
            "type": "string"
          },
          "timedMetadataEndpoints": {
            "description": "The metadata endpoints for the live event.",
            "items": {
              "$ref": "#/components/schemas/LiveEventTimedMetadataEndpoint"
            },
            "type": "array"
          }
        },
        "required": [
          "accessControl",
          "timedMetadataEndpoints",
          "accessToken",
          "keyFrameIntervalDuration"
        ],
        "title": "LiveEventInput",
        "type": "object"
      },
      "LiveEventListResponseSchema": {
        "properties": {
          "@odata.nextLink": {
            "description": "@odata.nextLink URL if the page length and number of items match.",
            "readOnly": true,
            "type": "string"
          },
          "supplemental": {
            "$ref": "#/components/schemas/ListResponseSupplementalSchema",
            "description": "Supplemental info",
            "readOnly": true
          },
          "value": {
            "description": "A list of live events.",
            "items": {
              "$ref": "#/components/schemas/LiveEventSchema"
            },
            "type": "array"
          }
        },
        "required": [
          "supplemental",
          "value"
        ],
        "title": "LiveEventListResponseSchema",
        "type": "object"
      },
      "LiveEventPatchSchema": {
        "properties": {
          "properties": {
            "$ref": "#/components/schemas/LiveEventPropertiesPatch",
            "description": "The properties of the live event."
          }
        },
        "required": [
          "properties"
        ],
        "title": "LiveEventPatchSchema",
        "type": "object"
      },
      "LiveEventPreview": {
        "properties": {
          "accessControl": {
            "$ref": "#/components/schemas/PreviewAccessControl",
            "description": "Address-based ACLs for access to the preview."
          },
          "alternativeMediaId": {
            "description": "Not currently supported. Will be used to support DRM license acquisition for preview content.",
            "type": "string"
          },
          "endpoints": {
            "description": "Populated server-side. The endpoints that are used for previewing the live event.",
            "items": {
              "$ref": "#/components/schemas/LiveEventEndpoint"
            },
            "type": "array"
          },
          "previewLocator": {
            "description": "The ID of the locator for the preview. This is automatically generated when the live event is created, and removed when the live Event is deleted. \nThe caller may specify a locator GUID, in which case the caller must ensure that the GUID is unique and not already used by another resource.",
            "format": "uuid",
            "type": "string"
          },
          "streamingPolicyName": {
            "default": "Predefined_ClearStreamingOnly",
            "description": "The name of the DRM streaming policy for the live event preview. Defaults to Predefined_ClearStreamingOnly and no other value is presently supported.",
            "maxLength": 260,
            "type": "string"
          }
        },
        "title": "LiveEventPreview",
        "type": "object"
      },
      "LiveEventProperties": {
        "properties": {
          "created": {
            "description": "The time when the live event was created.",
            "readOnly": true,
            "type": "string"
          },
          "crossSiteAccessPolicies": {
            "$ref": "#/components/schemas/CrossSiteAccessPolicies",
            "description": "The configuration for cross-site access policies. This includes the XML content of the client access policy and cross-domain policy files.\nThis field cannot be modified, only set during creation.",
            "x-mkio-immutable": true
          },
          "description": {
            "description": "An optional description for the live event.\nThis field cannot be modified, only set during creation.",
            "maxLength": 4096,
            "minLength": 0,
            "type": "string",
            "x-mkio-immutable": true
          },
          "encoding": {
            "$ref": "#/components/schemas/LiveEventEncoding",
            "description": "The encoding configuration for the live event. This includes settings like encoding type and preset name.\nThis field cannot be modified, only set during creation.",
            "x-mkio-immutable": true
          },
          "hostnamePrefix": {
            "description": "Applied when useStaticHostname=true to specify the first part of the hostname for all input and preview addresses.\nThis field cannot be modified, only set during creation.",
            "type": "string",
            "x-mkio-immutable": true
          },
          "input": {
            "$ref": "#/components/schemas/LiveEventInput",
            "description": "The configuration for the input of the live event. This includes settings like key frame interval duration, streaming protocol, access token, and endpoints.\nThis field cannot be modified, only set during creation.",
            "x-mkio-immutable": true
          },
          "lastModified": {
            "description": "The last time the live event was modified.",
            "readOnly": true,
            "type": "string"
          },
          "pipeline": {
            "$ref": "#/components/schemas/PipelineArguments",
            "description": "Not currently supported. AI pipeline settings"
          },
          "preview": {
            "$ref": "#/components/schemas/LiveEventPreview",
            "description": "The configuration for the preview of the live event. This includes settings like preview locator, streaming policy name, access control, and endpoints.\nThis field cannot be modified, only set during creation.",
            "x-mkio-immutable": true
          },
          "provisioningState": {
            "description": "The current provisioning state of the resource. One of 'InProgress', 'Succeeded', or 'Failed'",
            "readOnly": true,
            "type": "string"
          },
          "resourceState": {
            "description": "The current state of the resource. One of 'Stopped', 'Starting', 'Running', 'Stopping', or 'Deleting'.",
            "enum": [
              "Stopped",
              "Starting",
              "Running",
              "Stopping",
              "Deleting"
            ],
            "readOnly": true,
            "type": "string"
          },
          "streamOptions": {
            "description": "A list of streaming options for the live event. One of 'Default' or 'LowLatency'. Only one value permitted in the list.\nThis field cannot be modified, only set during creation.",
            "items": {
              "type": "string"
            },
            "type": "array",
            "x-mkio-immutable": true
          },
          "transcriptions": {
            "description": "Not currently supported. Transcription settings for the live event.\nThis field cannot be modified, only set during creation.",
            "items": {
              "$ref": "#/components/schemas/AnyValue"
            },
            "type": "array",
            "x-mkio-immutable": true
          },
          "useStaticHostname": {
            "description": "A boolean value that indicates whether a static hostname is assigned to input and preview endpoints. If not set, will default to 'false' and IP addresses will be provided.\nThis field cannot be modified, only set during creation.",
            "type": "boolean",
            "x-mkio-immutable": true
          }
        },
        "required": [
          "useStaticHostname",
          "encoding",
          "input",
          "streamOptions"
        ],
        "title": "LiveEventProperties",
        "type": "object"
      },
      "LiveEventPropertiesPatch": {
        "properties": {
          "pipeline": {
            "$ref": "#/components/schemas/PipelineArgumentsPatch",
            "description": "Not currently supported. AI pipeline settings"
          }
        },
        "title": "LiveEventPropertiesPatch",
        "type": "object"
      },
      "LiveEventPutProperties": {
        "properties": {
          "crossSiteAccessPolicies": {
            "$ref": "#/components/schemas/CrossSiteAccessPolicies",
            "description": "The configuration for cross-site access policies. This includes the XML content of the client access policy and cross-domain policy files.\nThis field cannot be modified, only set during creation.",
            "x-mkio-immutable": true
          },
          "description": {
            "description": "An optional description for the live event.\nThis field cannot be modified, only set during creation.",
            "maxLength": 4096,
            "minLength": 0,
            "type": "string",
            "x-mkio-immutable": true
          },
          "encoding": {
            "$ref": "#/components/schemas/LiveEventEncoding",
            "description": "The encoding configuration for the live event. This includes settings like encoding type and preset name.\nThis field cannot be modified, only set during creation.",
            "x-mkio-immutable": true
          },
          "hostnamePrefix": {
            "description": "Applied when useStaticHostname=true to specify the first part of the hostname for all input and preview addresses.\nThis field cannot be modified, only set during creation.",
            "type": "string",
            "x-mkio-immutable": true
          },
          "input": {
            "$ref": "#/components/schemas/LiveEventInput",
            "description": "The configuration for the input of the live event. This includes settings like key frame interval duration, streaming protocol, access token, and endpoints.\nThis field cannot be modified, only set during creation.",
            "x-mkio-immutable": true
          },
          "pipeline": {
            "$ref": "#/components/schemas/PipelineArguments",
            "description": "Not currently supported. AI pipeline settings"
          },
          "preview": {
            "$ref": "#/components/schemas/LiveEventPreview",
            "description": "The configuration for the preview of the live event. This includes settings like preview locator, streaming policy name, access control, and endpoints.\nThis field cannot be modified, only set during creation.",
            "x-mkio-immutable": true
          },
          "streamOptions": {
            "description": "A list of streaming options for the live event. One of 'Default' or 'LowLatency'. Only one value permitted in the list.\nThis field cannot be modified, only set during creation.",
            "items": {
              "type": "string"
            },
            "type": "array",
            "x-mkio-immutable": true
          },
          "transcriptions": {
            "description": "Not currently supported. Transcription settings for the live event.\nThis field cannot be modified, only set during creation.",
            "items": {
              "$ref": "#/components/schemas/AnyValue"
            },
            "type": "array",
            "x-mkio-immutable": true
          },
          "useStaticHostname": {
            "description": "A boolean value that indicates whether a static hostname is assigned to input and preview endpoints. If not set, will default to 'false' and IP addresses will be provided.\nThis field cannot be modified, only set during creation.",
            "type": "boolean",
            "x-mkio-immutable": true
          }
        },
        "required": [
          "useStaticHostname",
          "encoding",
          "input",
          "streamOptions"
        ],
        "title": "LiveEventPutProperties",
        "type": "object"
      },
      "LiveEventPutSchema": {
        "properties": {
          "location": {
            "description": "Deprecated field.\nThis field cannot be modified, only set during creation.",
            "type": "string",
            "x-mkio-immutable": true
          },
          "properties": {
            "$ref": "#/components/schemas/LiveEventPutProperties",
            "description": "The properties of the live event."
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A dictionary of tags associated with the live event. Maximum number of tags: 16. Maximum length of a tag: 64 characters.  For the purposes of the `$label_key` and `$label` queries this field will be checked.\nThis field cannot be modified, only set during creation.",
            "maxProperties": 16,
            "type": "object",
            "x-mkio-immutable": true
          }
        },
        "required": [
          "tags",
          "properties"
        ],
        "title": "LiveEventPutSchema",
        "type": "object"
      },
      "LiveEventSchema": {
        "properties": {
          "location": {
            "description": "Deprecated field.\nThis field cannot be modified, only set during creation.",
            "type": "string",
            "x-mkio-immutable": true
          },
          "name": {
            "description": "The name of the resource",
            "example": "name",
            "maxLength": 32,
            "minLength": 2,
            "pattern": "^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$",
            "readOnly": true,
            "type": "string"
          },
          "properties": {
            "$ref": "#/components/schemas/LiveEventProperties",
            "description": "The properties of the live event."
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A dictionary of tags associated with the live event. Maximum number of tags: 16. Maximum length of a tag: 64 characters.  For the purposes of the `$label_key` and `$label` queries this field will be checked.\nThis field cannot be modified, only set during creation.",
            "maxProperties": 16,
            "type": "object",
            "x-mkio-immutable": true
          }
        },
        "required": [
          "tags",
          "properties"
        ],
        "title": "LiveEventSchema",
        "type": "object"
      },
      "LiveEventTimedMetadataEndpoint": {
        "properties": {
          "url": {
            "description": "",
            "type": "string"
          }
        },
        "required": [
          "url"
        ],
        "title": "LiveEventTimedMetadataEndpoint",
        "type": "object"
      },
      "LiveOutputHls": {
        "properties": {
          "fragmentsPerTsSegment": {
            "default": 1,
            "description": "The number of fragments per HLS segment.",
            "maximum": 100000000,
            "minimum": 1,
            "type": "integer"
          }
        },
        "title": "LiveOutputHls",
        "type": "object"
      },
      "LiveOutputListResponseSchema": {
        "properties": {
          "@odata.nextLink": {
            "description": "@odata.nextLink URL if the page length and number of items match.",
            "readOnly": true,
            "type": "string"
          },
          "supplemental": {
            "$ref": "#/components/schemas/ListResponseSupplementalSchema",
            "description": "Supplemental info",
            "readOnly": true
          },
          "value": {
            "description": "A list of Live Outputs",
            "items": {
              "$ref": "#/components/schemas/LiveOutputSchema"
            },
            "type": "array"
          }
        },
        "required": [
          "supplemental",
          "value"
        ],
        "title": "LiveOutputListResponseSchema",
        "type": "object"
      },
      "LiveOutputProperties": {
        "properties": {
          "archiveWindowLength": {
            "description": "ISO 8601 timespan duration of the archive window length. This is duration that customer want to retain the recorded content.",
            "type": "string"
          },
          "assetName": {
            "description": "The name of the asset that the live output will write to.",
            "maxLength": 260,
            "minLength": 1,
            "type": "string"
          },
          "created": {
            "description": "The exact time the live output was created.",
            "readOnly": true,
            "type": "string"
          },
          "description": {
            "description": "The description of the live output.",
            "maxLength": 4096,
            "minLength": 0,
            "type": "string"
          },
          "hls": {
            "$ref": "#/components/schemas/LiveOutputHls",
            "description": "The HLS configuration."
          },
          "lastModified": {
            "description": "The exact time the live output was last modified.",
            "readOnly": true,
            "type": "string"
          },
          "manifestName": {
            "description": "The name of the manifest file. If not provided, the service will generate one automatically. This is the filename that will appear in playback URLs.",
            "example": "name",
            "maxLength": 64,
            "minLength": 1,
            "pattern": "^[a-zA-Z0-9\\-]+[a-zA-Z0-9]$",
            "type": "string"
          },
          "outputSnapTime": {
            "default": 0,
            "description": "Not supported. The output snapshot time. This is the wall clock time, in unix epoch seconds, that the live output will begin recording from.",
            "type": "integer"
          },
          "provisioningState": {
            "description": "The provisioning state of the live output.",
            "readOnly": true,
            "type": "string"
          },
          "resourceState": {
            "description": "The resource state of the live output.",
            "enum": [
              "Creating",
              "Deleting",
              "Running"
            ],
            "readOnly": true,
            "type": "string"
          },
          "rewindWindowLength": {
            "description": "Not supported. \nISO 8601 timespan duration of the rewind window length during live playback. \nThis is the amount of time that the live output will be able to rewind.",
            "type": "string"
          }
        },
        "required": [
          "assetName",
          "archiveWindowLength"
        ],
        "title": "LiveOutputProperties",
        "type": "object"
      },
      "LiveOutputPutProperties": {
        "properties": {
          "archiveWindowLength": {
            "description": "ISO 8601 timespan duration of the archive window length. This is duration that customer want to retain the recorded content.",
            "type": "string"
          },
          "assetName": {
            "description": "The name of the asset that the live output will write to.",
            "maxLength": 260,
            "minLength": 1,
            "type": "string"
          },
          "description": {
            "description": "The description of the live output.",
            "maxLength": 4096,
            "minLength": 0,
            "type": "string"
          },
          "hls": {
            "$ref": "#/components/schemas/LiveOutputHls",
            "description": "The HLS configuration."
          },
          "manifestName": {
            "description": "The name of the manifest file. If not provided, the service will generate one automatically. This is the filename that will appear in playback URLs.",
            "example": "name",
            "maxLength": 64,
            "minLength": 1,
            "pattern": "^[a-zA-Z0-9\\-]+[a-zA-Z0-9]$",
            "type": "string"
          },
          "outputSnapTime": {
            "default": 0,
            "description": "Not supported. The output snapshot time. This is the wall clock time, in unix epoch seconds, that the live output will begin recording from.",
            "type": "integer"
          },
          "rewindWindowLength": {
            "description": "Not supported. \nISO 8601 timespan duration of the rewind window length during live playback. \nThis is the amount of time that the live output will be able to rewind.",
            "type": "string"
          }
        },
        "required": [
          "assetName",
          "archiveWindowLength"
        ],
        "title": "LiveOutputPutProperties",
        "type": "object"
      },
      "LiveOutputPutSchema": {
        "properties": {
          "properties": {
            "$ref": "#/components/schemas/LiveOutputPutProperties",
            "description": "The properties of the live output."
          }
        },
        "required": [
          "properties"
        ],
        "title": "LiveOutputPutSchema",
        "type": "object"
      },
      "LiveOutputSchema": {
        "properties": {
          "name": {
            "description": "The name of the resource",
            "example": "name",
            "maxLength": 256,
            "minLength": 1,
            "pattern": "^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$",
            "readOnly": true,
            "type": "string"
          },
          "properties": {
            "$ref": "#/components/schemas/LiveOutputProperties",
            "description": "The properties of the live output."
          }
        },
        "required": [
          "properties"
        ],
        "title": "LiveOutputSchema",
        "type": "object"
      },
      "MediaFilterProperties": {
        "properties": {
          "firstQuality": {
            "$ref": "#/components/schemas/FirstQuality",
            "description": "This parameter defines the initial quality level when playback starts. This is the first bitrate in the ladder. \nIf a value is set that does not match the ladder, the closest value will be used. Setting a high value \nmay increase the time it takes to start playback, but ensures that initial video quality is high."
          },
          "presentationTimeRange": {
            "$ref": "#/components/schemas/PresentationTimeRange",
            "description": "This parameter is used to cut an asset into a smaller asset by specifying a start and end time."
          },
          "tracks": {
            "description": "Defines the tracks to include in the output. If multiple FilterTrackSelection objects are provided, their configurations will be OR'd together.\n\nFor instance, if you want to include all audio tracks that are not English, and all video tracks that are between 3 and 5 Mbps, you would provide two FilterTrackSelection objects.",
            "items": {
              "$ref": "#/components/schemas/FilterTrackSelection"
            },
            "type": "array"
          }
        },
        "title": "MediaFilterProperties",
        "type": "object"
      },
      "NoEncryption": {
        "properties": {
          "enabledProtocols": {
            "$ref": "#/components/schemas/EnabledProtocols",
            "description": "Enabled protocols. This is the set of protocols (dash, download, and hls) that will be delivered without encryption."
          }
        },
        "title": "NoEncryption",
        "type": "object"
      },
      "PaginationInfoSchema": {
        "properties": {
          "end": {
            "description": "Position of the last item in the list",
            "readOnly": true,
            "type": "integer"
          },
          "records": {
            "description": "Total number of items returned in the list",
            "readOnly": true,
            "type": "integer"
          },
          "start": {
            "description": "Position of the first item in the list",
            "readOnly": true,
            "type": "integer"
          },
          "total": {
            "description": "Total number of items in the project",
            "readOnly": true,
            "type": "integer"
          }
        },
        "required": [
          "start",
          "end",
          "records",
          "total"
        ],
        "title": "PaginationInfoSchema",
        "type": "object"
      },
      "Period": {
        "properties": {
          "adaptation_set": {
            "description": "",
            "items": {
              "$ref": "#/components/schemas/AdaptationSet"
            },
            "type": "array"
          },
          "asset_identifier": {
            "$ref": "#/components/schemas/AssetIdentifier",
            "description": ""
          },
          "id": {
            "description": "",
            "type": "string"
          },
          "resource_type": {
            "description": "",
            "type": "string"
          },
          "start": {
            "description": "",
            "type": "string"
          }
        },
        "required": [
          "resource_type"
        ],
        "title": "Period",
        "type": "object"
      },
      "PipelineArguments": {
        "properties": {
          "arguments": {
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/ArgumentSchema"
              },
              "type": "array"
            },
            "description": "Arguments to each operation in the AI pipeline",
            "example": {
              "operation1": [
                {
                  "name": "language",
                  "value": "en-US"
                }
              ],
              "operation2": [
                {
                  "name": "length",
                  "value": "3.7m"
                }
              ]
            },
            "type": "object"
          },
          "name": {
            "description": "The name of the AI pipeline the Transform will execute.",
            "maxLength": 255,
            "minLength": 0,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "title": "PipelineArguments",
        "type": "object"
      },
      "PipelineArgumentsPatch": {
        "properties": {
          "arguments": {
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/ArgumentSchema"
              },
              "type": "array"
            },
            "description": "Arguments to each operation in the AI pipeline",
            "example": {
              "operation1": [
                {
                  "name": "language",
                  "value": "en-US"
                }
              ],
              "operation2": [
                {
                  "name": "length",
                  "value": "3.7m"
                }
              ]
            },
            "type": "object"
          },
          "name": {
            "description": "The name of the AI pipeline the Transform will execute.",
            "maxLength": 255,
            "minLength": 0,
            "type": "string"
          }
        },
        "title": "PipelineArgumentsPatch",
        "type": "object"
      },
      "PresentationTimeRange": {
        "properties": {
          "endTime": {
            "description": "For live content only (including live events that have finished).\n\nIndicates the end of the presentation window, like `endTimestamp` but as an explicit UTC time.",
            "format": "date-time",
            "type": "string"
          },
          "endTimestamp": {
            "description": "For both VOD and live content.\n\nIndicates the end of the presentation window, in units of timescale. Given a timescale of \"1\", a value of \"N\" set here will constrain the \nvideo manifest to contain exactly \"N\" seconds of content. This value is relative to the actual start of the content, not the startTimestamp. \n\nExamples:\n- timescale=1, startTimestamp=0, endTimestamp=10: The first 10 seconds of content will be included in the output.\n- timescale=1, startTimestamp=10, endTimestamp=70: The 60 seconds of content starting at 10 seconds will be included in the output.\n- timescale=10000000, startTimestamp=0, endTimestamp=100000000: The first 10 seconds of content will be included in the output.\n\nIn cases where the endTimestamp does not perfectly align with a segment boundary, the endTimestamp will be rounded down to the nearest segment boundary.",
            "minimum": 0,
            "type": "integer"
          },
          "forceEndTimestamp": {
            "description": "A validation parameter.\n\nWhen set, requires that the filter endTimestamp be set. This might be useful to limit the duration of a locator \nassociated with a long-running live event, once the live event has ended and the video manifest is closed.",
            "type": "boolean"
          },
          "liveBackoffDuration": {
            "description": "For live content only (including live events that have finished).\n\nTruncates content from the head of a live video manifest by the specified duration. In effect, setting this value\ncreates a buffer between the client and the true live point by omitting content from the head of a manifest. This is a useful capability in cases where \nCDN latency and other \"network realities\" make it difficult to deliver a true live experience, and result in content being presented in the manifest that \nis not yet available in caches. \n\nFor example, if you set this value to 30 seconds, the client will see a manifest that is 30 seconds behind the true live point. This means that the client\nwill not be able to play the first 30 seconds of content, but will be able to play the content that is 30 seconds old and newer.\n\nThe maximum live backoff duration is 300 seconds.",
            "type": "integer"
          },
          "presentationWindowDuration": {
            "description": "For live content only (including live events that have finished).\n\nIndicates the duration of the presentation window, in units of timescale. A presentation window is the depth of content\npresent in the live manifest. For example, if you set this value to 300 seconds, the client will see a manifest containing 300 seconds of content, even if the underlying\nasset is much longer. This is useful for restricting playback to the very latest content, or for restricting seek positions in content.\n\nThe minimum presentation window duration is 10 seconds.",
            "type": "integer"
          },
          "startTime": {
            "description": "For live content only (including live events that have finished).\n\nIndicates the start of the presentation window, like `startTimestamp` but as an explicit UTC time.",
            "format": "date-time",
            "type": "string"
          },
          "startTimestamp": {
            "description": "For both VOD and live content.\n\nIndicates the start of the presentation window, in units of timescale. Given a timescale of \"1\", a value of \"N\" set here will \nclip the first \"N\" seconds of content from the beginning of the video manifest. \n\nExamples:\ntimescale=1, startTimestamp=0, endTimestamp=10: The first 10 seconds of content will be included in the output.\ntimescale=1, startTimestamp=10, endTimestamp=70: The 60 seconds of content starting at 10 seconds will be included in the output.\ntimescale=10000000, startTimestamp=0, endTimestamp=100000000: The first 10 seconds of content will be included in the output.\n\nIn cases where the startTimestamp does not perfectly align with a segment boundary, the endTimestamp will be rounded down to the nearest segment boundary.",
            "minimum": 0,
            "type": "integer"
          },
          "timescale": {
            "default": 10000000,
            "description": "Defines the unit of time for all the values in this object. The value is expressed in ticks per second.\nThe default value of 10,000,000 increments per second (or 10 MHz) is used if this parameter is not specified. IF you're a video\nengineer doing Serious Business, consider setting this to 48,000 or 90,000 representing 90Khz and 48Khz respectively. If you're \na mere mortal, a value of 1 is sensible and would represent seconds.\n\nFor example, with a timescale set to \"1\", the startTimestamp and endTimestamp values are expressed in seconds. So a startTimestamp of\n10 and an endTimestamp of 20 would represent a 10 second window of content. Segments overlapping this window would be included in the \noutput.",
            "maximum": 1000000000,
            "minimum": 1,
            "type": "integer"
          }
        },
        "title": "PresentationTimeRange",
        "type": "object"
      },
      "PreviewAccessControl": {
        "properties": {
          "ip": {
            "$ref": "#/components/schemas/IPAccessControl",
            "description": "The IP access control for the preview endpoint. Determines who will be able to access preview content."
          }
        },
        "required": [
          "ip"
        ],
        "title": "PreviewAccessControl",
        "type": "object"
      },
      "PrivateLinkServiceConnectionNullable": {
        "nullable": true,
        "properties": {
          "requestMessage": {
            "description": "A message passed to the owner of the remote resource with this connection request.\nThis field cannot be modified, only set during creation.",
            "maxLength": 140,
            "minLength": 0,
            "type": "string",
            "x-mkio-immutable": true
          },
          "resourceGroupName": {
            "description": "The name of the resource group containing the storage account\nThis field cannot be modified, only set during creation.",
            "maxLength": 90,
            "minLength": 1,
            "type": "string",
            "x-mkio-immutable": true
          },
          "storageAccountName": {
            "description": "The name of the storage account.  The full Azure ID would be '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{storageAccountName}'\nThis field cannot be modified, only set during creation.",
            "maxLength": 24,
            "minLength": 3,
            "type": "string",
            "x-mkio-immutable": true
          },
          "subscriptionId": {
            "description": "The ID of the Azure subscription containing the storage account\nThis field cannot be modified, only set during creation.",
            "format": "uuid",
            "type": "string",
            "x-mkio-immutable": true
          }
        },
        "required": [
          "requestMessage",
          "subscriptionId",
          "resourceGroupName",
          "storageAccountName"
        ],
        "title": "PrivateLinkServiceConnectionNullable",
        "type": "object"
      },
      "ProjectInfoSchema": {
        "properties": {
          "id": {
            "description": "Project ID",
            "readOnly": true,
            "type": "string"
          },
          "name": {
            "description": "Project name",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "title": "ProjectInfoSchema",
        "type": "object"
      },
      "Representation": {
        "properties": {
          "audio_channel_configuration": {
            "description": "",
            "items": {
              "$ref": "#/components/schemas/AudioChannelConfiguration"
            },
            "type": "array"
          },
          "bandwidth": {
            "description": "",
            "type": "string"
          },
          "codecs": {
            "description": "",
            "type": "string"
          },
          "frameRate": {
            "description": "",
            "type": "string"
          },
          "height": {
            "description": "",
            "type": "string"
          },
          "id": {
            "description": "",
            "type": "string"
          },
          "mimeType": {
            "description": "",
            "type": "string"
          },
          "sar": {
            "description": "",
            "type": "string"
          },
          "scanType": {
            "description": "",
            "type": "string"
          },
          "startsWithSAP": {
            "description": "",
            "type": "string"
          },
          "width": {
            "description": "",
            "type": "string"
          }
        },
        "title": "Representation",
        "type": "object"
      },
      "ResourceStateSchema": {
        "properties": {
          "status": {
            "$ref": "#/components/schemas/ResourceStateStatus",
            "description": "The status of the resource."
          }
        },
        "required": [
          "status"
        ],
        "title": "ResourceStateSchema",
        "type": "object"
      },
      "ResourceStateStatus": {
        "properties": {
          "state": {
            "description": "The state of the resource. The value depends on the resource type.",
            "type": "string"
          }
        },
        "required": [
          "state"
        ],
        "title": "ResourceStateStatus",
        "type": "object"
      },
      "Role": {
        "properties": {
          "schemeIdUri": {
            "description": "",
            "type": "string"
          },
          "value": {
            "description": "",
            "type": "string"
          }
        },
        "title": "Role",
        "type": "object"
      },
      "SasTokenMetadataSchema": {
        "properties": {
          "created": {
            "description": "The time when the resource was created",
            "format": "date-time",
            "type": "string"
          },
          "createdBy": {
            "description": "ID of the user who created the resource",
            "format": "uuid",
            "type": "string"
          },
          "createdByEmail": {
            "description": "Email of the user who created the resource",
            "type": "string"
          },
          "id": {
            "description": "The ID of the resource",
            "format": "uuid",
            "type": "string"
          },
          "updated": {
            "description": "The time when the resource was last updated",
            "format": "date-time",
            "type": "string"
          },
          "updatedBy": {
            "description": "ID of the user who last updated the resource",
            "format": "uuid",
            "type": "string"
          },
          "updatedByEmail": {
            "description": "Email of the user who last updated the resource",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "title": "SasTokenMetadataSchema",
        "type": "object"
      },
      "ScteTrigger": {
        "properties": {
          "filters": {
            "description": "Outer array is OR-combined; each inner array is AND-combined field matchers.",
            "items": {
              "items": {
                "additionalProperties": {},
                "type": "object"
              },
              "type": "array"
            },
            "type": "array"
          },
          "searchRange": {
            "$ref": "#/components/schemas/ScteTriggerSearchRange",
            "description": "Bounds the signal search to [anchor+startOffset, anchor+endOffset]. Anchor is `time` if present, else dispatch_time (start) or resolved_start (end)."
          },
          "signalType": {
            "description": "Signal type.",
            "enum": [
              "SCTE35"
            ],
            "type": "string"
          }
        },
        "required": [
          "signalType"
        ],
        "title": "ScteTrigger",
        "type": "object"
      },
      "ScteTriggerSearchRange": {
        "properties": {
          "endOffset": {
            "description": "Closes the signal-search window relative to the anchor (ISO 8601 Duration, e.g. \"PT2M\").",
            "type": "string"
          },
          "startOffset": {
            "description": "Opens the signal-search window relative to the anchor (ISO 8601 Duration; negative allowed, e.g. \"-PT5M\").",
            "type": "string"
          }
        },
        "required": [
          "startOffset",
          "endOffset"
        ],
        "title": "ScteTriggerSearchRange",
        "type": "object"
      },
      "StorageListSchema_v1": {
        "properties": {
          "@odata.nextLink": {
            "description": "@odata.nextLink URL if the page length and number of items match.",
            "readOnly": true,
            "type": "string"
          },
          "supplemental": {
            "$ref": "#/components/schemas/ListResponseSupplementalSchema",
            "description": "Supplemental info",
            "readOnly": true
          },
          "value": {
            "description": "List of storage instances.",
            "items": {
              "$ref": "#/components/schemas/StorageSchemaGet"
            },
            "type": "array"
          }
        },
        "required": [
          "supplemental",
          "value"
        ],
        "title": "StorageListSchema_v1",
        "type": "object"
      },
      "StorageSchemaGet": {
        "properties": {
          "kind": {
            "description": "The kind of record.",
            "readOnly": true,
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/BlobStorageMetadataSchema",
            "description": "Metadata about the storage instance."
          },
          "spec": {
            "description": "The specification of the storage instance.",
            "discriminator": {
              "mapping": {
                "AWS.S3": "#/components/schemas/AWSStorageSpecRead",
                "Google.Storage": "#/components/schemas/GoogleStorageSpecRead",
                "Microsoft.Storage": "#/components/schemas/AzureStorageSpecRead"
              },
              "propertyName": "type"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/AzureStorageSpecRead"
              },
              {
                "$ref": "#/components/schemas/AWSStorageSpecRead"
              },
              {
                "$ref": "#/components/schemas/GoogleStorageSpecRead"
              }
            ]
          },
          "status": {
            "$ref": "#/components/schemas/StorageStatusRead",
            "description": "Additional status information regarding the storage instance.",
            "readOnly": true
          }
        },
        "required": [
          "metadata",
          "spec"
        ],
        "title": "StorageSchemaGet",
        "type": "object"
      },
      "StorageSchemaPatch": {
        "additionalProperties": false,
        "properties": {
          "spec": {
            "description": "The specification of the storage instance.",
            "discriminator": {
              "mapping": {
                "AWS.S3": "#/components/schemas/AWSStorageSpecPatch",
                "Google.Storage": "#/components/schemas/GoogleStorageSpecPatch",
                "Microsoft.Storage": "#/components/schemas/AzureStorageSpecPatch"
              },
              "propertyName": "type"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/AzureStorageSpecPatch"
              },
              {
                "$ref": "#/components/schemas/AWSStorageSpecPatch"
              },
              {
                "$ref": "#/components/schemas/GoogleStorageSpecPatch"
              }
            ]
          }
        },
        "title": "StorageSchemaPatch",
        "type": "object"
      },
      "StorageSchemaPut": {
        "properties": {
          "spec": {
            "description": "The specification of the storage instance.",
            "discriminator": {
              "mapping": {
                "AWS.S3": "#/components/schemas/AWSStorageSpecCreate",
                "Google.Storage": "#/components/schemas/GoogleStorageSpecCreate",
                "Microsoft.Storage": "#/components/schemas/AzureStorageSpecCreate"
              },
              "propertyName": "type"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/AzureStorageSpecCreate"
              },
              {
                "$ref": "#/components/schemas/AWSStorageSpecCreate"
              },
              {
                "$ref": "#/components/schemas/GoogleStorageSpecCreate"
              }
            ]
          }
        },
        "required": [
          "spec"
        ],
        "title": "StorageSchemaPut",
        "type": "object"
      },
      "StorageStatusRead": {
        "properties": {
          "activeCredentialId": {
            "description": "The ID of the active credential for this storage.",
            "format": "uuid",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "privateLinkServiceConnectionStatus": {
            "description": "The state of the Azure Private Connection, if enabled.",
            "enum": [
              "Creating",
              "Pending",
              "Ready",
              "Running",
              "Deleting",
              "Deleted"
            ],
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "activeCredentialId"
        ],
        "title": "StorageStatusRead",
        "type": "object"
      },
      "StreamingEndpointAccessControl": {
        "properties": {
          "akamai": {
            "$ref": "#/components/schemas/StreamingEndpointAkamiACL",
            "deprecated": true,
            "description": "DEPRECATED: This is provided for backwards compatibility and will be removed in a future release. Akamai access control configuration for the streaming endpoint. If the Akamai CDN profile is specified and CDN is enabled, this field is required."
          },
          "ip": {
            "$ref": "#/components/schemas/StreamingEndpointIPACL",
            "description": "IP-based access control configuration for the streaming endpoint. If omitted, this will default to 0.0.0.0/0"
          }
        },
        "title": "StreamingEndpointAccessControl",
        "type": "object"
      },
      "StreamingEndpointAkamiACL": {
        "properties": {
          "akamaiSignatureHeaderAuthenticationKeyList": {
            "deprecated": true,
            "description": "DEPRECATED: This is provided for backwards compatibility and will be removed in a future release. The Akamai access control configuration for the streaming endpoint. Learn more: https://techdocs.akamai.com/netstorage-usage/reference/example-authentication-headers",
            "items": {
              "$ref": "#/components/schemas/AkamiHeaderAuthKey"
            },
            "type": "array"
          }
        },
        "required": [
          "akamaiSignatureHeaderAuthenticationKeyList"
        ],
        "title": "StreamingEndpointAkamiACL",
        "type": "object"
      },
      "StreamingEndpointIPACL": {
        "properties": {
          "allow": {
            "description": "The IP allow list.",
            "items": {
              "$ref": "#/components/schemas/IPAcl"
            },
            "type": "array"
          }
        },
        "required": [
          "allow"
        ],
        "title": "StreamingEndpointIPACL",
        "type": "object"
      },
      "StreamingEndpointListResponseSchema": {
        "properties": {
          "@odata.nextLink": {
            "description": "@odata.nextLink URL if the page length and number of items match.",
            "readOnly": true,
            "type": "string"
          },
          "supplemental": {
            "$ref": "#/components/schemas/ListResponseSupplementalSchema",
            "description": "Supplemental info",
            "readOnly": true
          },
          "value": {
            "description": "A list of streaming endpoints",
            "items": {
              "$ref": "#/components/schemas/StreamingEndpointSchema"
            },
            "type": "array"
          }
        },
        "required": [
          "supplemental",
          "value"
        ],
        "title": "StreamingEndpointListResponseSchema",
        "type": "object"
      },
      "StreamingEndpointProperties": {
        "properties": {
          "accessControl": {
            "$ref": "#/components/schemas/StreamingEndpointAccessControl",
            "description": "The access control settings for the streaming endpoint."
          },
          "advancedSettingsName": {
            "description": "Name of the advanced settings configuration to apply to this streaming endpoint.\nThese configuration blocks are managed by MediaKind and you should not set this field unless MediaKind support has asked you to.",
            "maxLength": 64,
            "nullable": true,
            "type": "string"
          },
          "cdnBasePath": {
            "description": "If CDN is enabled, the path that must be inserted after the hostname and before the locator, e.g. https://<hostName><cdnBasePath><locator>.",
            "readOnly": true,
            "type": "string"
          },
          "cdnEnabled": {
            "default": false,
            "description": "Indicates if CDN is enabled for the streaming endpoint.",
            "type": "boolean"
          },
          "cdnProfile": {
            "description": "If CDN is enabled, the optional CDN profile name for the streaming endpoint.",
            "maxLength": 100,
            "type": "string"
          },
          "cdnProvider": {
            "deprecated": true,
            "description": "DEPRECATED: CDN provider is set by default when CDN is enabled. Value will be ignored if provided. This is provided for backwards compatibility and will be removed in a future release.",
            "enum": [
              "StandardAkamai"
            ],
            "type": "string"
          },
          "created": {
            "description": "The creation date and time of the streaming endpoint. Set by the system.",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "crossSiteAccessPolicies": {
            "$ref": "#/components/schemas/CrossSiteAccessPolicies",
            "description": "Cross-site access policies are CDN policies for Smooth or DASH streaming that determine which domains clients are permitted to playback content from."
          },
          "customHostNames": {
            "description": "NOT SUPPORTED pending implementation of DNS validation. \nCustom host names for the streaming endpoint. Must be unique within the region. \nIf not specified, a default hostname will be used. The best practice for custom DNS\nis to use a CNAME pointing to the autogenerated hostname derived from the streaming endpoint name,\nand to configure your CDN to deliver a HOST header to the origin server for routing purposes.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "description": {
            "description": "The description of the streaming endpoint.",
            "maxLength": 1024,
            "nullable": true,
            "type": "string"
          },
          "hostName": {
            "description": "The fqdn of the streaming endpoint. This is the output hostname and is always configured. To set a custom hostname, use the customHostNames property.",
            "readOnly": true,
            "type": "string"
          },
          "lastModified": {
            "description": "The last modified date and time of the streaming endpoint. Set by the system.",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "maxCacheAge": {
            "default": 86400,
            "description": "The maximum amount of time that segments will be cached, in seconds. This value is superseded by any ETAG values set by the infrastructure.",
            "maximum": 2592000,
            "minimum": 0,
            "type": "integer"
          },
          "maxManifestCacheAge": {
            "default": 60,
            "description": "The maximum amount of time that closed manifests will be cached, in seconds. This value is superseded by any ETAG values set by the infrastructure.",
            "maximum": 2592000,
            "minimum": 0,
            "type": "integer"
          },
          "provisioningState": {
            "description": "The provisioning state of the streaming endpoint. Set by the system. One of InProgress,Succeeded,Failed.",
            "enum": [
              "InProgress",
              "Succeeded",
              "Failed"
            ],
            "type": "string"
          },
          "publicName": {
            "description": "Public name for the streaming endpoint",
            "maxLength": 63,
            "minLength": 3,
            "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
            "type": "string"
          },
          "resourceState": {
            "description": "The runtime state of the streaming endpoint. Set by the system.",
            "enum": [
              "Creating",
              "Updating",
              "Scaling",
              "Starting",
              "Stopping",
              "Restarting",
              "Deleting",
              "Running",
              "Stopped",
              "Deleted"
            ],
            "type": "string"
          },
          "scaleUnits": {
            "description": "The number of scale units for the streaming endpoint.\nThis will determine your minimum scale. A value of 0 will result in the streaming endpoints using a Standard SKU. \nA value greater than zero indicates that the 'Premium' SKUs will be provisioned.",
            "minimum": 0,
            "type": "integer"
          },
          "shieldCache": {
            "$ref": "#/components/schemas/StreamingEndpointShieldCache",
            "description": "Shield cache configuration for the streaming endpoint."
          },
          "sku": {
            "$ref": "#/components/schemas/StreamingEndpointsCurrentSku",
            "description": "The SKU definition for the streaming endpoint."
          },
          "urlStyle": {
            "description": "The style of URL associated with the streaming endpoint. The default is 'AMS' and you should only use any other value if advised to by MediaKind",
            "type": "string"
          }
        },
        "required": [
          "scaleUnits"
        ],
        "title": "StreamingEndpointProperties",
        "type": "object"
      },
      "StreamingEndpointPutProperties": {
        "properties": {
          "accessControl": {
            "$ref": "#/components/schemas/StreamingEndpointAccessControl",
            "description": "The access control settings for the streaming endpoint."
          },
          "advancedSettingsName": {
            "description": "Name of the advanced settings configuration to apply to this streaming endpoint.\nThese configuration blocks are managed by MediaKind and you should not set this field unless MediaKind support has asked you to.",
            "maxLength": 64,
            "nullable": true,
            "type": "string"
          },
          "cdnEnabled": {
            "default": false,
            "description": "Indicates if CDN is enabled for the streaming endpoint.",
            "type": "boolean"
          },
          "cdnProfile": {
            "description": "If CDN is enabled, the optional CDN profile name for the streaming endpoint.",
            "maxLength": 100,
            "type": "string"
          },
          "cdnProvider": {
            "deprecated": true,
            "description": "DEPRECATED: CDN provider is set by default when CDN is enabled. Value will be ignored if provided. This is provided for backwards compatibility and will be removed in a future release.",
            "enum": [
              "StandardAkamai"
            ],
            "type": "string"
          },
          "crossSiteAccessPolicies": {
            "$ref": "#/components/schemas/CrossSiteAccessPolicies",
            "description": "Cross-site access policies are CDN policies for Smooth or DASH streaming that determine which domains clients are permitted to playback content from."
          },
          "customHostNames": {
            "description": "NOT SUPPORTED pending implementation of DNS validation. \nCustom host names for the streaming endpoint. Must be unique within the region. \nIf not specified, a default hostname will be used. The best practice for custom DNS\nis to use a CNAME pointing to the autogenerated hostname derived from the streaming endpoint name,\nand to configure your CDN to deliver a HOST header to the origin server for routing purposes.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "description": {
            "description": "The description of the streaming endpoint.",
            "maxLength": 1024,
            "nullable": true,
            "type": "string"
          },
          "maxCacheAge": {
            "default": 86400,
            "description": "The maximum amount of time that segments will be cached, in seconds. This value is superseded by any ETAG values set by the infrastructure.",
            "maximum": 2592000,
            "minimum": 0,
            "type": "integer"
          },
          "maxManifestCacheAge": {
            "default": 60,
            "description": "The maximum amount of time that closed manifests will be cached, in seconds. This value is superseded by any ETAG values set by the infrastructure.",
            "maximum": 2592000,
            "minimum": 0,
            "type": "integer"
          },
          "provisioningState": {
            "description": "The provisioning state of the streaming endpoint. Set by the system. One of InProgress,Succeeded,Failed.",
            "enum": [
              "InProgress",
              "Succeeded",
              "Failed"
            ],
            "type": "string"
          },
          "publicName": {
            "description": "Public name for the streaming endpoint",
            "maxLength": 63,
            "minLength": 3,
            "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
            "type": "string"
          },
          "resourceState": {
            "description": "The runtime state of the streaming endpoint. Set by the system.",
            "enum": [
              "Creating",
              "Updating",
              "Scaling",
              "Starting",
              "Stopping",
              "Restarting",
              "Deleting",
              "Running",
              "Stopped",
              "Deleted"
            ],
            "type": "string"
          },
          "scaleUnits": {
            "description": "The number of scale units for the streaming endpoint.\nThis will determine your minimum scale. A value of 0 will result in the streaming endpoints using a Standard SKU. \nA value greater than zero indicates that the 'Premium' SKUs will be provisioned.",
            "minimum": 0,
            "type": "integer"
          },
          "shieldCache": {
            "$ref": "#/components/schemas/StreamingEndpointShieldCache",
            "description": "Shield cache configuration for the streaming endpoint."
          },
          "sku": {
            "$ref": "#/components/schemas/StreamingEndpointPutPropertiessCurrentSku",
            "description": "The SKU definition for the streaming endpoint."
          },
          "urlStyle": {
            "description": "The style of URL associated with the streaming endpoint. The default is 'AMS' and you should only use any other value if advised to by MediaKind",
            "type": "string"
          }
        },
        "required": [
          "scaleUnits"
        ],
        "title": "StreamingEndpointPutProperties",
        "type": "object"
      },
      "StreamingEndpointPutPropertiessCurrentSku": {
        "properties": {
          "name": {
            "description": "The name of the SKU. Will default to 'Standard' if the sku configuration is not provided.",
            "enum": [
              "Standard",
              "Premium"
            ],
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "title": "StreamingEndpointPutPropertiessCurrentSku",
        "type": "object"
      },
      "StreamingEndpointPutSchema": {
        "properties": {
          "location": {
            "description": "The name of the location in which the streaming endpoint is located. This field must match the location in which the user's subscription is provisioned.",
            "type": "string"
          },
          "properties": {
            "$ref": "#/components/schemas/StreamingEndpointPutProperties",
            "description": "The properties of the streaming endpoint."
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A dictionary of key:value pairs describing the resource. Search may be implemented against tags in the future.",
            "maxProperties": 2,
            "type": "object"
          }
        },
        "required": [
          "location",
          "properties"
        ],
        "title": "StreamingEndpointPutSchema",
        "type": "object"
      },
      "StreamingEndpointScaleSchema": {
        "properties": {
          "scaleUnit": {
            "description": "The scale unit count for this streaming endpoint.",
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "scaleUnit"
        ],
        "title": "StreamingEndpointScaleSchema",
        "type": "object"
      },
      "StreamingEndpointSchema": {
        "properties": {
          "location": {
            "description": "The name of the location in which the streaming endpoint is located. This field must match the location in which the user's subscription is provisioned.",
            "type": "string"
          },
          "name": {
            "description": "The name of the resource",
            "example": "name",
            "maxLength": 64,
            "minLength": 1,
            "pattern": "^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$",
            "readOnly": true,
            "type": "string"
          },
          "properties": {
            "$ref": "#/components/schemas/StreamingEndpointProperties",
            "description": "The properties of the streaming endpoint."
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A dictionary of key:value pairs describing the resource. Search may be implemented against tags in the future.",
            "maxProperties": 2,
            "type": "object"
          }
        },
        "required": [
          "location",
          "properties"
        ],
        "title": "StreamingEndpointSchema",
        "type": "object"
      },
      "StreamingEndpointShieldCache": {
        "properties": {
          "scaleUnits": {
            "description": "The number of scale units for the shield cache. A value of 0 indicates that no shield cache will be deployed.\nThis feature should only be used if advised by MediaKind. It is controlled by a feature flag.",
            "maximum": 1024,
            "minimum": 0,
            "nullable": true,
            "type": "integer"
          }
        },
        "required": [
          "scaleUnits"
        ],
        "title": "StreamingEndpointShieldCache",
        "type": "object"
      },
      "StreamingEndpointsCurrentSku": {
        "properties": {
          "capacity": {
            "description": "This is the bandwidth capacity of current streaming unit configuration",
            "readOnly": true,
            "type": "integer"
          },
          "name": {
            "description": "The name of the SKU. Will default to 'Standard' if the sku configuration is not provided.",
            "enum": [
              "Standard",
              "Premium"
            ],
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "title": "StreamingEndpointsCurrentSku",
        "type": "object"
      },
      "StreamingLocatorContentKey": {
        "properties": {
          "id": {
            "description": "The id of the content key",
            "type": "string"
          },
          "labelReferenceInStreamingPolicy": {
            "description": "The label reference in the streaming policy",
            "type": "string"
          },
          "policyName": {
            "description": "The name of the policy",
            "type": "string"
          },
          "tracks": {
            "description": "Not currently supported. The tracks which use this content key",
            "items": {
              "$ref": "#/components/schemas/StreamingLocatorTrackSelection"
            },
            "readOnly": true,
            "type": "array"
          },
          "type": {
            "description": "The streaming locator content key type",
            "enum": [
              "CommonEncryptionCenc",
              "CommonEncryptionCbcs",
              "EnvelopeEncryption"
            ],
            "type": "string"
          },
          "value": {
            "description": "The value of the content key",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "title": "StreamingLocatorContentKey",
        "type": "object"
      },
      "StreamingLocatorDrm": {
        "properties": {
          "certificateUrl": {
            "description": "The URL for obtaining the streaming certificate.",
            "type": "string"
          },
          "licenseAcquisitionUrl": {
            "description": "The license acquisition URL for the DRM.",
            "type": "string"
          }
        },
        "required": [
          "licenseAcquisitionUrl"
        ],
        "title": "StreamingLocatorDrm",
        "type": "object"
      },
      "StreamingLocatorListContentKeysResponseSchema": {
        "properties": {
          "contentKeys": {
            "description": "The content keys used by this streaming locator",
            "items": {
              "$ref": "#/components/schemas/StreamingLocatorContentKey"
            },
            "type": "array"
          }
        },
        "title": "StreamingLocatorListContentKeysResponseSchema",
        "type": "object"
      },
      "StreamingLocatorListPathsResponseSchema": {
        "properties": {
          "downloadPaths": {
            "description": "The download paths for the locator.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "drm": {
            "additionalProperties": {
              "$ref": "#/components/schemas/StreamingLocatorDrm"
            },
            "description": "The license acquisition URLs for configured DRM types.",
            "type": "object"
          },
          "streamingPaths": {
            "description": "The streaming paths for the locator.",
            "items": {
              "$ref": "#/components/schemas/StreamingLocatorListPathsStreamingPaths"
            },
            "type": "array"
          }
        },
        "required": [
          "streamingPaths",
          "downloadPaths",
          "drm"
        ],
        "title": "StreamingLocatorListPathsResponseSchema",
        "type": "object"
      },
      "StreamingLocatorListPathsSchema": {
        "properties": {
          "urlStyle": {
            "default": "AMS",
            "description": "The style of URL associated to the streaming endpoint. Default is 'AMS'.",
            "enum": [
              "AMS",
              "Aquila",
              "Unified"
            ],
            "type": "string"
          }
        },
        "title": "StreamingLocatorListPathsSchema",
        "type": "object"
      },
      "StreamingLocatorListPathsStreamingPaths": {
        "properties": {
          "encryptionScheme": {
            "description": "The encryption scheme used for the path.",
            "enum": [
              "NoEncryption",
              "EnvelopeEncryption",
              "CommonEncryptionCenc",
              "CommonEncryptionCbcs"
            ],
            "type": "string"
          },
          "paths": {
            "description": "The paths for the locator.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "streamingProtocol": {
            "description": "The streaming protocol used for the path.",
            "enum": [
              "Hls",
              "Dash",
              "Download",
              "SmoothStreaming"
            ],
            "type": "string"
          }
        },
        "required": [
          "streamingProtocol",
          "encryptionScheme",
          "paths"
        ],
        "title": "StreamingLocatorListPathsStreamingPaths",
        "type": "object"
      },
      "StreamingLocatorListResponseSchema": {
        "properties": {
          "@odata.nextLink": {
            "description": "@odata.nextLink URL if the page length and number of items match.",
            "readOnly": true,
            "type": "string"
          },
          "supplemental": {
            "$ref": "#/components/schemas/ListResponseSupplementalSchema",
            "description": "Supplemental info",
            "readOnly": true
          },
          "value": {
            "description": "The list of streaming locators",
            "items": {
              "$ref": "#/components/schemas/StreamingLocatorSchema"
            },
            "type": "array"
          }
        },
        "required": [
          "supplemental",
          "value"
        ],
        "title": "StreamingLocatorListResponseSchema",
        "type": "object"
      },
      "StreamingLocatorProperties": {
        "properties": {
          "alternativeMediaId": {
            "description": "The alternative media id of the asset used by this streaming locator",
            "type": "string"
          },
          "assetName": {
            "description": "The name of the asset used by this streaming locator",
            "type": "string"
          },
          "contentId": {
            "description": "Optional content ID. Only valid when an external key server is used.",
            "maxLength": 260,
            "minLength": 1,
            "type": "string"
          },
          "contentKeys": {
            "description": "The content keys used by this streaming locator",
            "items": {
              "$ref": "#/components/schemas/StreamingLocatorContentKey"
            },
            "type": "array"
          },
          "defaultContentKeyPolicyName": {
            "description": "The default content key policy name used by this streaming locator.",
            "maxLength": 260,
            "type": "string"
          },
          "defaultManifestFilename": {
            "description": "Manifest filename used with streaming endpoints that have urlStyle set to 'Aquila' or 'Unified'. For example: manifest.ism (for MP4 assets), manifest.mpd (for TS assets), index.qfm (for live events)",
            "maxLength": 260,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9 _.,()-]+$",
            "type": "string"
          },
          "endTime": {
            "description": "The end time of the streaming locator",
            "format": "date-time",
            "type": "string"
          },
          "filters": {
            "description": "A list of asset or account filters to apply to the streaming locator.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "provisioningState": {
            "description": "The provisioning state of the streaming locator. Set by the system. One of InProgress, Succeeded, Failed.",
            "enum": [
              "InProgress",
              "Succeeded",
              "Failed"
            ],
            "readOnly": true,
            "type": "string"
          },
          "resourceState": {
            "description": "The runtime state of the streaming locator. Set by the system.",
            "enum": [
              "Creating",
              "Updating",
              "Deleting",
              "Created",
              "Deleted",
              "Error"
            ],
            "readOnly": true,
            "type": "string"
          },
          "startTime": {
            "description": "The start time of the streaming locator",
            "format": "date-time",
            "type": "string"
          },
          "streamingLocatorId": {
            "description": "The streaming locator id",
            "example": "00000000-0000-0000-0000-000000000000",
            "maxLength": 260,
            "minLength": 1,
            "pattern": "^[^\\/]+$",
            "type": "string"
          },
          "streamingPolicyName": {
            "description": "The name of the streaming policy used by this streaming locator.  \n        You may specify a custom policy by name, or used one of the predefined policies.  \n        To get the list of valid policy options use the `GET /api/v1/projects/{project_name}/media/streamingPolicies` endpoint.",
            "maxLength": 260,
            "type": "string"
          },
          "suppressed": {
            "default": false,
            "description": "Optional configuration for output suppression.\nA suppressed locator will return a 404 HTTP response to requests, in the same way it would if the `startTime` had not yet been reached.\n\nThe 404 code can be overridden with a different status code by setting `preAvailabilityStatusCode` in a custom catalog in a Streaming Policy.",
            "type": "boolean"
          }
        },
        "required": [
          "assetName",
          "streamingPolicyName"
        ],
        "title": "StreamingLocatorProperties",
        "type": "object"
      },
      "StreamingLocatorPutProperties": {
        "properties": {
          "alternativeMediaId": {
            "description": "The alternative media id of the asset used by this streaming locator",
            "type": "string"
          },
          "assetName": {
            "description": "The name of the asset used by this streaming locator",
            "type": "string"
          },
          "contentId": {
            "description": "Optional content ID. Only valid when an external key server is used.",
            "maxLength": 260,
            "minLength": 1,
            "type": "string"
          },
          "contentKeys": {
            "description": "The content keys used by this streaming locator",
            "items": {
              "$ref": "#/components/schemas/StreamingLocatorContentKey"
            },
            "type": "array"
          },
          "defaultContentKeyPolicyName": {
            "description": "The default content key policy name used by this streaming locator.",
            "maxLength": 260,
            "type": "string"
          },
          "defaultManifestFilename": {
            "description": "Manifest filename used with streaming endpoints that have urlStyle set to 'Aquila' or 'Unified'. For example: manifest.ism (for MP4 assets), manifest.mpd (for TS assets), index.qfm (for live events)",
            "maxLength": 260,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9 _.,()-]+$",
            "type": "string"
          },
          "endTime": {
            "description": "The end time of the streaming locator",
            "format": "date-time",
            "type": "string"
          },
          "filters": {
            "description": "A list of asset or account filters to apply to the streaming locator.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "startTime": {
            "description": "The start time of the streaming locator",
            "format": "date-time",
            "type": "string"
          },
          "streamingLocatorId": {
            "description": "The streaming locator id",
            "example": "00000000-0000-0000-0000-000000000000",
            "maxLength": 260,
            "minLength": 1,
            "pattern": "^[^\\/]+$",
            "type": "string"
          },
          "streamingPolicyName": {
            "description": "The name of the streaming policy used by this streaming locator.  \n        You may specify a custom policy by name, or used one of the predefined policies.  \n        To get the list of valid policy options use the `GET /api/v1/projects/{project_name}/media/streamingPolicies` endpoint.",
            "maxLength": 260,
            "type": "string"
          },
          "suppressed": {
            "default": false,
            "description": "Optional configuration for output suppression.\nA suppressed locator will return a 404 HTTP response to requests, in the same way it would if the `startTime` had not yet been reached.\n\nThe 404 code can be overridden with a different status code by setting `preAvailabilityStatusCode` in a custom catalog in a Streaming Policy.",
            "type": "boolean"
          }
        },
        "required": [
          "assetName",
          "streamingPolicyName"
        ],
        "title": "StreamingLocatorPutProperties",
        "type": "object"
      },
      "StreamingLocatorPutSchema": {
        "properties": {
          "properties": {
            "$ref": "#/components/schemas/StreamingLocatorPutProperties",
            "description": "Properties for streaming locator"
          }
        },
        "required": [
          "properties"
        ],
        "title": "StreamingLocatorPutSchema",
        "type": "object"
      },
      "StreamingLocatorSchema": {
        "properties": {
          "id": {
            "description": "Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}",
            "readOnly": true,
            "type": "string"
          },
          "name": {
            "description": "The name of the resource",
            "example": "name",
            "maxLength": 260,
            "minLength": 1,
            "pattern": "^[^\\^\\'<>%&:\\\\?/*+]+$",
            "readOnly": true,
            "type": "string"
          },
          "properties": {
            "$ref": "#/components/schemas/StreamingLocatorProperties",
            "description": "Properties for streaming locator"
          },
          "systemData": {
            "$ref": "#/components/schemas/SystemDataSchema",
            "description": "Metadata pertaining to creation and last modification of the resource.",
            "readOnly": true
          },
          "type": {
            "description": "The type of the resource. E.g. \"Microsoft.Media/mediaservices/assets\"",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "properties"
        ],
        "title": "StreamingLocatorSchema",
        "type": "object"
      },
      "StreamingLocatorTrackPropertyCondition": {
        "properties": {
          "operation": {
            "$ref": "#/components/schemas/TrackPropertyCompareOperation",
            "description": "The track property comparison operation"
          },
          "property": {
            "description": "The track property to compare against",
            "type": "string"
          },
          "value": {
            "description": "The track property value.",
            "type": "string"
          }
        },
        "required": [
          "operation",
          "property",
          "value"
        ],
        "title": "StreamingLocatorTrackPropertyCondition",
        "type": "object"
      },
      "StreamingLocatorTrackSelection": {
        "properties": {
          "trackSelections": {
            "description": "The track selections",
            "items": {
              "$ref": "#/components/schemas/StreamingLocatorTrackPropertyCondition"
            },
            "type": "array"
          }
        },
        "required": [
          "trackSelections"
        ],
        "title": "StreamingLocatorTrackSelection",
        "type": "object"
      },
      "StreamingPolicyContentKey": {
        "properties": {
          "label": {
            "description": "Labels are a potential matching field for selecting a content key via a streaming locator.",
            "type": "string"
          },
          "policyName": {
            "description": "Policy used by the key.",
            "type": "string"
          },
          "tracks": {
            "description": "This represents which tracks should be encrypted.",
            "items": {
              "$ref": "#/components/schemas/StreamingPolicyTrackSelection"
            },
            "type": "array"
          }
        },
        "title": "StreamingPolicyContentKey",
        "type": "object"
      },
      "StreamingPolicyContentKeys": {
        "properties": {
          "defaultKey": {
            "$ref": "#/components/schemas/DefaultKey",
            "description": "Default content key used by the encryption."
          },
          "keyToTrackMappings": {
            "description": "List of content keys used by the key. Used to assign different keys to different tracks. For instance, using widevine L3 for SD and L1 for HD.",
            "items": {
              "$ref": "#/components/schemas/StreamingPolicyContentKey"
            },
            "type": "array"
          }
        },
        "title": "StreamingPolicyContentKeys",
        "type": "object"
      },
      "StreamingPolicyFairPlayConfiguration": {
        "properties": {
          "allowPersistentLicense": {
            "description": "Allow persistent license",
            "type": "boolean"
          },
          "customLicenseAcquisitionUrlTemplate": {
            "description": "The custom license acquisition URL template for a FairPlay license delivery service.",
            "type": "string"
          }
        },
        "required": [
          "allowPersistentLicense"
        ],
        "title": "StreamingPolicyFairPlayConfiguration",
        "type": "object"
      },
      "StreamingPolicyListResponseSchema": {
        "properties": {
          "@odata.nextLink": {
            "description": "@odata.nextLink URL if the page length and number of items match.",
            "readOnly": true,
            "type": "string"
          },
          "supplemental": {
            "$ref": "#/components/schemas/ListResponseSupplementalSchema",
            "description": "Supplemental info",
            "readOnly": true
          },
          "value": {
            "description": "A list of streaming policies.",
            "items": {
              "$ref": "#/components/schemas/StreamingPolicySchema"
            },
            "type": "array"
          }
        },
        "required": [
          "supplemental",
          "value"
        ],
        "title": "StreamingPolicyListResponseSchema",
        "type": "object"
      },
      "StreamingPolicyPlayReadyConfiguration": {
        "properties": {
          "customLicenseAcquisitionUrlTemplate": {
            "description": "The custom license acquisition URL template for a PlayReady license delivery service.",
            "type": "string"
          },
          "playReadyCustomAttributes": {
            "description": "The custom attributes for PlayReady.",
            "type": "string"
          }
        },
        "title": "StreamingPolicyPlayReadyConfiguration",
        "type": "object"
      },
      "StreamingPolicyProperties": {
        "properties": {
          "catalog": {
            "additionalProperties": {},
            "description": "The custom catalog configuration.",
            "type": "object"
          },
          "commonEncryptionCbcs": {
            "$ref": "#/components/schemas/CommonEncryptionCbcs",
            "description": "CommonEncryptionCbcs"
          },
          "commonEncryptionCenc": {
            "$ref": "#/components/schemas/CommonEncryptionCenc",
            "description": "CommonEncryptionCenc"
          },
          "defaultContentKeyPolicyName": {
            "description": "The default content key policy name used by current streaming policy.",
            "maxLength": 260,
            "type": "string"
          },
          "envelopeEncryption": {
            "$ref": "#/components/schemas/EnvelopeEncryption",
            "description": "EnvelopeEncryption"
          },
          "noEncryption": {
            "$ref": "#/components/schemas/NoEncryption",
            "description": "NoEncryption"
          }
        },
        "title": "StreamingPolicyProperties",
        "type": "object"
      },
      "StreamingPolicyPutSchema": {
        "properties": {
          "properties": {
            "$ref": "#/components/schemas/StreamingPolicyProperties",
            "description": "The properties of the streaming policy."
          }
        },
        "required": [
          "properties"
        ],
        "title": "StreamingPolicyPutSchema",
        "type": "object"
      },
      "StreamingPolicySchema": {
        "properties": {
          "id": {
            "description": "Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}",
            "readOnly": true,
            "type": "string"
          },
          "name": {
            "description": "The name of the resource",
            "example": "name",
            "maxLength": 260,
            "minLength": 1,
            "pattern": "^[^\\^\\'<>%&:\\\\?/*+]+$",
            "readOnly": true,
            "type": "string"
          },
          "properties": {
            "$ref": "#/components/schemas/StreamingPolicyProperties",
            "description": "The properties of the streaming policy."
          },
          "systemData": {
            "$ref": "#/components/schemas/SystemDataSchema",
            "description": "Metadata pertaining to creation and last modification of the resource.",
            "readOnly": true
          },
          "type": {
            "description": "The type of the resource. E.g. \"Microsoft.Media/mediaservices/assets\"",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "properties"
        ],
        "title": "StreamingPolicySchema",
        "type": "object"
      },
      "StreamingPolicyTrackPropertyCondition": {
        "properties": {
          "operation": {
            "description": "Track property operation. Only equality is supported.",
            "enum": [
              "Unknown",
              "Equal"
            ],
            "type": "string"
          },
          "property": {
            "description": "Track property type",
            "enum": [
              "Unknown",
              "FourCC"
            ],
            "type": "string"
          },
          "value": {
            "description": "Track property value",
            "type": "string"
          }
        },
        "required": [
          "property",
          "operation"
        ],
        "title": "StreamingPolicyTrackPropertyCondition",
        "type": "object"
      },
      "StreamingPolicyTrackSelection": {
        "properties": {
          "trackSelections": {
            "description": "track selections is used to specify a set or a subset of track for selection by the streaming policy.",
            "items": {
              "$ref": "#/components/schemas/StreamingPolicyTrackPropertyCondition"
            },
            "type": "array"
          }
        },
        "title": "StreamingPolicyTrackSelection",
        "type": "object"
      },
      "StreamingPolicyWidevineConfiguration": {
        "properties": {
          "customLicenseAcquisitionUrlTemplate": {
            "description": "The custom license acquisition URL template for a Widevine license delivery service.",
            "type": "string"
          }
        },
        "title": "StreamingPolicyWidevineConfiguration",
        "type": "object"
      },
      "SystemDataSchema": {
        "properties": {
          "createdAt": {
            "description": "The timestamp of resource creation (UTC).",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "createdBy": {
            "description": "The identity that created the resource.",
            "readOnly": true,
            "type": "string"
          },
          "createdByType": {
            "description": "The type of identity that created the resource.",
            "enum": [
              "User",
              "Application",
              "ManagedIdentity",
              "Key"
            ],
            "readOnly": true,
            "type": "string"
          },
          "internalId": {
            "description": "The internal ID of the resource.",
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          },
          "lastModifiedAt": {
            "description": "The timestamp of resource last modification (UTC).",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "lastModifiedBy": {
            "description": "The identity that last modified the resource.",
            "readOnly": true,
            "type": "string"
          },
          "lastModifiedByType": {
            "description": "The type of identity that last modified the resource.",
            "enum": [
              "User",
              "Application",
              "ManagedIdentity",
              "Key"
            ],
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "internalId",
          "createdBy",
          "createdByType",
          "createdAt",
          "lastModifiedBy",
          "lastModifiedByType",
          "lastModifiedAt"
        ],
        "title": "SystemDataSchema",
        "type": "object"
      },
      "TextStreamSchema": {
        "properties": {
          "Scheme": {
            "description": "",
            "type": "string"
          },
          "manifestOutput": {
            "description": "",
            "type": "string"
          },
          "parentTrackName": {
            "description": "",
            "type": "string"
          },
          "src": {
            "description": "",
            "type": "string"
          },
          "systemBitrate": {
            "description": "",
            "type": "string"
          },
          "timescale": {
            "description": "",
            "type": "string"
          },
          "trackID": {
            "description": "",
            "type": "string"
          },
          "trackName": {
            "description": "",
            "type": "string"
          }
        },
        "required": [
          "src",
          "systemBitrate",
          "manifestOutput",
          "trackID",
          "parentTrackName",
          "trackName"
        ],
        "title": "TextStreamSchema",
        "type": "object"
      },
      "TextTrack": {
        "properties": {
          "@odata.type": {
            "description": "The discriminator for derived types.",
            "type": "string"
          },
          "displayName": {
            "description": "The display name of the track on a video player. In HLS, this maps to the NAME attribute of EXT-X-MEDIA.",
            "type": "string"
          },
          "hlsSettings": {
            "$ref": "#/components/schemas/HlsSettings",
            "description": "The HLS specific setting for the track."
          },
          "languageCode": {
            "description": "The RFC5646 language code for the track.",
            "type": "string"
          },
          "playerVisibility": {
            "default": "Visible",
            "description": "When PlayerVisibility is set to 'Visible', the track will be present in the DASH manifest or HLS playlist when requested by a client. When the PlayerVisibility is set to 'Hidden', the track will not be available to the client. The default value is 'Visible'.",
            "enum": [
              "Visible",
              "Hidden"
            ],
            "type": "string"
          },
          "trackName": {
            "description": "The name of the track in the manifest.",
            "type": "string"
          }
        },
        "required": [
          "@odata.type",
          "trackName"
        ],
        "title": "TextTrack",
        "type": "object"
      },
      "ThumbnailGeneratorConfiguration": {
        "properties": {
          "format": {
            "description": "The output format for the thumbnails.",
            "enum": [
              "Jpeg",
              "Png"
            ],
            "type": "string"
          },
          "height": {
            "description": "Either an integer size in pixels, or a percentage of the input resolution. If either width/height is defined as percentage, the other dimension must be the same percentage.",
            "type": "string"
          },
          "label": {
            "description": "Used to create the output filename as `{BaseFilename}_{Label}{Index}{Extension}`. When generating sprites, the output vtt file will be named `{BaseFilename}_{Label}.vtt`",
            "maxLength": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "type": "string"
          },
          "quality": {
            "default": 70,
            "description": "The compression quality for JPEG images.  Between 0-100, default: 70.",
            "maximum": 100,
            "minimum": 0,
            "type": "integer"
          },
          "range": {
            "default": "1",
            "description": "Either an ISO8601 duration, or a percentage of the asset duration, or the value '1'.  The default is '1', a single thumbnail is produced.",
            "type": "string"
          },
          "spriteColumn": {
            "description": "The number of columns used if you want a thumbnail sprite image.  Default: Single image output files.",
            "maximum": 10,
            "minimum": 1,
            "type": "integer"
          },
          "start": {
            "default": "PT10S",
            "description": "Either an ISO8601 duration, or a percentage of the asset duration.  Default: PT10S.",
            "type": "string"
          },
          "step": {
            "description": "The intervals at which thumbnails are generated. Either an ISO8601 duration, or a percentage of the asset duration.",
            "type": "string"
          },
          "width": {
            "description": "Either an integer size in pixels, or a percentage of the input resolution. If only one of width/height is present, the aspect ratio from the source is preserved.",
            "type": "string"
          }
        },
        "required": [
          "format"
        ],
        "title": "ThumbnailGeneratorConfiguration",
        "type": "object"
      },
      "ThumbnailGeneratorPreset": {
        "properties": {
          "@odata.type": {
            "description": "The discriminator for derived types.",
            "type": "string"
          },
          "baseFilename": {
            "description": "Used to create the output filename as `{BaseFilename}_{Label}{Index}{Extension}`.  The default is the name of the input file.  If the name of the input file is too long then it will be truncated to 64 characters.",
            "maxLength": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "type": "string"
          },
          "thumbnails": {
            "description": "The set of thumbnails to be produced.",
            "items": {
              "$ref": "#/components/schemas/ThumbnailGeneratorConfiguration"
            },
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "@odata.type",
          "thumbnails"
        ],
        "title": "ThumbnailGeneratorPreset",
        "type": "object"
      },
      "TrackInserterPreset": {
        "properties": {
          "@odata.type": {
            "description": "The discriminator for derived types.",
            "type": "string"
          },
          "baseFilename": {
            "description": "Used to create the output filename.\n- For text tracks: `{BaseFilename}.cmft`, the default being the input .vtt filename minus the extension, e.g. `subtitles.vtt` -> `subtitles.cmft`.\n- For audio tracks: `{BaseFilename}.mp4`, the default being the input .mp4 filename, ignored if the audio file is already present in the output asset.",
            "maxLength": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "type": "string"
          },
          "tracks": {
            "description": "The set of tracks to be inserted.  Currently limited to one.",
            "items": {
              "discriminator": {
                "mapping": {
                  "#MediaKind.AudioTrack": "#/components/schemas/AudioTrack",
                  "#MediaKind.TextTrack": "#/components/schemas/TextTrack"
                },
                "propertyName": "@odata.type"
              },
              "oneOf": [
                {
                  "$ref": "#/components/schemas/TextTrack"
                },
                {
                  "$ref": "#/components/schemas/AudioTrack"
                }
              ]
            },
            "maxItems": 1,
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "@odata.type",
          "tracks"
        ],
        "title": "TrackInserterPreset",
        "type": "object"
      },
      "TrackPropertyCompareOperation": {
        "properties": {
          "Equal": {
            "description": "The track property comparison operation",
            "type": "string"
          },
          "Unknown": {
            "description": "The track property comparison operation",
            "type": "string"
          }
        },
        "required": [
          "Equal",
          "Unknown"
        ],
        "title": "TrackPropertyCompareOperation",
        "type": "object"
      },
      "TrackSchema": {
        "properties": {
          "body": {
            "$ref": "#/components/schemas/BodySchema",
            "description": ""
          },
          "head": {
            "$ref": "#/components/schemas/HeadSchema",
            "description": ""
          }
        },
        "required": [
          "head",
          "body"
        ],
        "title": "TrackSchema",
        "type": "object"
      },
      "TransformListResponseSchema": {
        "properties": {
          "@odata.nextLink": {
            "description": "@odata.nextLink URL if the page length and number of items match.",
            "readOnly": true,
            "type": "string"
          },
          "supplemental": {
            "$ref": "#/components/schemas/ListResponseSupplementalSchema",
            "description": "Supplemental info",
            "readOnly": true
          },
          "value": {
            "description": "A list of Transforms",
            "items": {
              "$ref": "#/components/schemas/TransformSchema"
            },
            "type": "array"
          }
        },
        "required": [
          "supplemental",
          "value"
        ],
        "title": "TransformListResponseSchema",
        "type": "object"
      },
      "TransformOutput": {
        "properties": {
          "onError": {
            "description": "Defines what the service should do when one output fails. Continue to produce other outputs, or stop processing.",
            "enum": [
              "ContinueJob",
              "StopProcessingJob"
            ],
            "type": "string"
          },
          "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.",
            "discriminator": {
              "mapping": {
                "#MediaKind.AIPipelinePreset": "#/components/schemas/AIPipelinePreset",
                "#MediaKind.BuiltInAssetConverterPreset": "#/components/schemas/BuiltInAssetConverterPreset",
                "#MediaKind.EncoderPreset": "#/components/schemas/EncoderPreset",
                "#MediaKind.ThumbnailGeneratorPreset": "#/components/schemas/ThumbnailGeneratorPreset",
                "#MediaKind.TrackInserterPreset": "#/components/schemas/TrackInserterPreset",
                "#Microsoft.Media.BuiltInAssetConverterPreset": "#/components/schemas/BuiltInAssetConverterPreset",
                "#Microsoft.Media.BuiltInStandardEncoderPreset": "#/components/schemas/BuiltInStandardEncoderPreset"
              },
              "propertyName": "@odata.type"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/BuiltInStandardEncoderPreset"
              },
              {
                "$ref": "#/components/schemas/BuiltInAssetConverterPreset"
              },
              {
                "$ref": "#/components/schemas/BuiltInAssetConverterPreset"
              },
              {
                "$ref": "#/components/schemas/ThumbnailGeneratorPreset"
              },
              {
                "$ref": "#/components/schemas/TrackInserterPreset"
              },
              {
                "$ref": "#/components/schemas/AIPipelinePreset"
              },
              {
                "$ref": "#/components/schemas/EncoderPreset"
              }
            ]
          },
          "relativePriority": {
            "default": "Normal",
            "description": "Sets the relative priority of the TransformOutputs within a Transform",
            "enum": [
              "High",
              "Low",
              "Normal"
            ],
            "type": "string"
          }
        },
        "required": [
          "preset"
        ],
        "title": "TransformOutput",
        "type": "object"
      },
      "TransformProperties": {
        "properties": {
          "created": {
            "description": "The creation date and time of the Transform. Set by the system.",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "description": {
            "description": "The description of the Transform.",
            "maxLength": 1024,
            "type": "string"
          },
          "lastModified": {
            "description": "The last modified date and time of the Transform. Set by the system.",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "outputs": {
            "description": "An array of TransformOutputs that the Transform should generate. Currently limited to one.",
            "items": {
              "$ref": "#/components/schemas/TransformOutput"
            },
            "type": "array"
          }
        },
        "required": [
          "outputs"
        ],
        "title": "TransformProperties",
        "type": "object"
      },
      "TransformPutProperties": {
        "properties": {
          "description": {
            "description": "The description of the Transform.",
            "maxLength": 1024,
            "type": "string"
          },
          "outputs": {
            "description": "An array of TransformOutputs that the Transform should generate. Currently limited to one.",
            "items": {
              "$ref": "#/components/schemas/TransformOutput"
            },
            "type": "array"
          }
        },
        "required": [
          "outputs"
        ],
        "title": "TransformPutProperties",
        "type": "object"
      },
      "TransformPutSchema": {
        "properties": {
          "properties": {
            "$ref": "#/components/schemas/TransformPutProperties",
            "description": "The properties of the Transform"
          }
        },
        "required": [
          "properties"
        ],
        "title": "TransformPutSchema",
        "type": "object"
      },
      "TransformSchema": {
        "properties": {
          "id": {
            "description": "Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}",
            "readOnly": true,
            "type": "string"
          },
          "name": {
            "description": "The name of the resource",
            "example": "name",
            "maxLength": 260,
            "minLength": 1,
            "pattern": "^[^\\^\\'<>%&:\\\\?/*+]+$",
            "readOnly": true,
            "type": "string"
          },
          "properties": {
            "$ref": "#/components/schemas/TransformProperties",
            "description": "The properties of the Transform"
          },
          "systemData": {
            "$ref": "#/components/schemas/SystemDataSchema",
            "description": "Metadata pertaining to creation and last modification of the resource.",
            "readOnly": true
          },
          "type": {
            "description": "The type of the resource. E.g. \"Microsoft.Media/mediaservices/assets\"",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "properties"
        ],
        "title": "TransformSchema",
        "type": "object"
      },
      "UtcClipTime": {
        "properties": {
          "@odata.type": {
            "description": "The discriminator for derived types.",
            "type": "string"
          },
          "time": {
            "description": "The time position on the timeline of the input media based on UTC time.",
            "format": "date-time",
            "type": "string"
          },
          "trigger": {
            "$ref": "#/components/schemas/ScteTrigger",
            "description": "SCTE-35 signal trigger. Recording starts/stops at the first matching signal."
          }
        },
        "required": [
          "@odata.type"
        ],
        "title": "UtcClipTime",
        "type": "object"
      },
      "VideoSchema": {
        "properties": {
          "src": {
            "description": "",
            "type": "string"
          },
          "systemBitrate": {
            "description": "",
            "type": "string"
          },
          "systemLanguage": {
            "description": "",
            "type": "string"
          },
          "trackID": {
            "description": "",
            "type": "string"
          },
          "trackName": {
            "description": "",
            "type": "string"
          }
        },
        "required": [
          "src",
          "systemBitrate",
          "systemLanguage",
          "trackID",
          "trackName"
        ],
        "title": "VideoSchema",
        "type": "object"
      }
    },
    "securitySchemes": {
      "BearerAuth": {
        "scheme": "bearer",
        "type": "http"
      }
    }
  },
  "info": {
    "description": "## Overview\nThe MK.IO Media API is the project-level REST API for managing media processing and delivery workflows in MK.IO. It provides endpoints for managing assets and storage, transforms and jobs, live events and outputs, streaming publication, filtering, and content protection.\n\n## Authentication\nAll endpoints require a bearer token in the `Authorization` header:\n`Authorization: Bearer <your_token>`\n\nYou can create and manage your tokens in your [profile settings](https://app.mk.io/user/profile) under **Your personal API tokens**. Follow the [API tokens guide](https://docs.mediakind.com/mkio/how-to/managing-your-organization/api-tokens) for more information.\n\n## Usage\nBase URL: `https://app.mk.io`\n\nTypical usage pattern:\n- Create or reference core resources such as storage, assets, and transforms.\n- Run VOD or live workflows, then monitor resource state until processing is ready.\n- Publish playback by creating a streaming locator and retrieving playback paths.\n",
    "title": "MK.IO Media API",
    "version": "0.26.9"
  },
  "openapi": "3.0.2",
  "paths": {
    "/api/v1/projects/{project_name}/media/accountFilters": {
      "get": {
        "description": "## Listing, Sorting and Filtering Account Filters\n\nThis endpoint returns the list of account filters in the specified project.\n\n### Sorting\n\nThe results from this endpoint can be ordered using the `$orderby` query parameter. Specify a list of field names, separated by commas\nwhere each one can optionally specify `asc` or `desc`.\n\nSorting is valid on the following fields: `created`, `createdBy`, `id`, `name`, `updated`, `updatedBy`\n\n### Filtering\n\n\n\nThe `$filter` query parameter allows for account filters to be filtered on the basis of fields in the schema using OData query syntax.\nSee [this document](https://learn.microsoft.com/en-us/odata/concepts/queryoptions-overview#filter) for more details on the syntax used.\n\nFilters are valid on the following fields: `created`, `createdBy`, `createdByEmail`, `createdByName`, `id`, `name`, `updated`, `updatedBy`, `updatedByEmail`, `updatedByName`\n\n### Examples:\n\n`?$top=10` - Returns only the first 10 account filters from the list.\n\n`?$orderby=name desc` - Sorts account filters by name in descending order.\n\n`?$filter=name eq 'descriptive name'` - Returns account filters that match the provided name.\n\n\n`?$orderby=created desc` - Sorts account filters by creation date in descending order.\n\n`?$filter=created ge 2021-01-01T00:00:00Z` - Returns account filters created after January 1, 2021.",
        "operationId": "[get]_/api/v1/projects/{project_name}/media/accountFilters",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "Specifies the key by which the result collection should be ordered.",
            "in": "query",
            "name": "$orderby",
            "required": false,
            "schema": {
              "title": "$Orderby",
              "type": "string"
            }
          },
          {
            "description": "Restricts the set of items returned.",
            "in": "query",
            "name": "$filter",
            "required": false,
            "schema": {
              "title": "$Filter",
              "type": "string"
            }
          },
          {
            "description": "Specifies a non-negative integer `n` that limits the number of items returned from a collection.\nThe service returns the number of available items up to but not greater than the specified value `n`.",
            "in": "query",
            "name": "$top",
            "required": false,
            "schema": {
              "title": "$Top",
              "type": "string"
            }
          },
          {
            "description": "Specifies a start offset to support paginated results.\nUse `@odata.nextLink` in the result object to enumerate the collection -\nit will be present only if there's more than one page of entities.",
            "in": "query",
            "name": "$skiptoken",
            "required": false,
            "schema": {
              "title": "$Skiptoken",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountFilterListResponseSchema"
                }
              }
            },
            "description": "A list of account filters"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "List Account Filters",
        "tags": [
          "Asset Filters"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/accountFilters/{filter_name}": {
      "delete": {
        "description": "Delete Account Filter.\nAccount filters can only be removed when they are not referenced by any active streaming locators.",
        "operationId": "[delete]_/api/v1/projects/{project_name}/media/accountFilters/{filter_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "filter_name",
            "required": true,
            "schema": {
              "title": "Filter_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Account filter deleted."
          },
          "204": {
            "description": "Nothing to delete."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Delete Account Filter",
        "tags": [
          "Asset Filters"
        ]
      },
      "get": {
        "description": "Get an account filter by name.",
        "operationId": "[get]_/api/v1/projects/{project_name}/media/accountFilters/{filter_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "filter_name",
            "required": true,
            "schema": {
              "title": "Filter_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountFilterSchema"
                }
              }
            },
            "description": "A single account filter"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get Account filter",
        "tags": [
          "Asset Filters"
        ]
      },
      "put": {
        "description": "Create or Update Account Filter.",
        "operationId": "[put]_/api/v1/projects/{project_name}/media/accountFilters/{filter_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "filter_name",
            "required": true,
            "schema": {
              "title": "Filter_Name",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AccountFilterPutSchema"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountFilterSchema"
                }
              }
            },
            "description": "Account Filter was updated"
          },
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountFilterSchema"
                }
              }
            },
            "description": "Account Filter was created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Create or Update Account Filter",
        "tags": [
          "Asset Filters"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/assets": {
      "get": {
        "description": "## Listing, Sorting and Filtering Assets\n\nThis endpoint returns the list of assets in the specified project.\n\n### Sorting\n\nThe results from this endpoint can be ordered using the `$orderby` query parameter. Specify a list of field names, separated by commas\nwhere each one can optionally specify `asc` or `desc`.\n\nSorting is valid on the following fields: `created`, `createdBy`, `id`, `labels`, `name`, `properties/alternateId`, `properties/assetId`, `properties/container`, `properties/containerDeletionPolicy`, `properties/created`, `properties/lastModified`, `properties/storageAccountName`, `properties/subPath`, `updated`, `updatedBy`\n\n### Filtering\n\n\nThere are two ways to filter the set of returned assets from this endpoint - the first is to use the `$filter` query parameter, the second is to use the\n`$label_key` and `$label` query parameters.\n\n\nThe `$filter` query parameter allows for assets to be filtered on the basis of fields in the schema using OData query syntax.\nSee [this document](https://learn.microsoft.com/en-us/odata/concepts/queryoptions-overview#filter) for more details on the syntax used.\n\nFilters are valid on the following fields: `created`, `createdBy`, `createdByEmail`, `createdByName`, `id`, `labels`, `name`, `properties/alternateId`, `properties/assetId`, `properties/container`, `properties/containerDeletionPolicy`, `properties/created`, `properties/lastModified`, `properties/storageAccountName`, `properties/subPath`, `updated`, `updatedBy`, `updatedByEmail`, `updatedByName`\n\n`$label_key` and `$label` are specific to querying assets based on their labels. Labels are a set of key-value pairs that can be used to identify assets with\nany arbitrary metadata you want, specifically for the purpose of retrieving relevant subsets of assets.\n\n### Examples:\n\n`?$top=10` - Returns only the first 10 assets from the list.\n\n`?$orderby=name desc` - Sorts assets by name in descending order.\n\n`?$filter=name eq 'descriptive name'` - Returns assets that match the provided name.\n\n\n`?$orderby=created desc` - Sorts assets by creation date in descending order.\n\n`?$filter=created ge 2021-01-01T00:00:00Z` - Returns assets created after January 1, 2021.\n\n\n`?$label=studio=paravalley` - Returns assets with the label `studio` set to `paravalley`.\n\n`?$label=release-date~2023` - Returns assets with the label `release-date` set to a value that contains `2023`.\n\n`?$label_key=studio&label_key=release-date` - Returns assets with any value set for the `studio` label and the `release-date` label.",
        "operationId": "[get]_/api/v1/projects/{project_name}/media/assets",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "Specifies the key by which the result collection should be ordered.",
            "in": "query",
            "name": "$orderby",
            "required": false,
            "schema": {
              "title": "$Orderby",
              "type": "string"
            }
          },
          {
            "description": "Restricts the set of items returned.",
            "in": "query",
            "name": "$filter",
            "required": false,
            "schema": {
              "title": "$Filter",
              "type": "string"
            }
          },
          {
            "description": "Specifies a non-negative integer `n` that limits the number of items returned from a collection.\nThe service returns the number of available items up to but not greater than the specified value `n`.",
            "in": "query",
            "name": "$top",
            "required": false,
            "schema": {
              "title": "$Top",
              "type": "string"
            }
          },
          {
            "description": "Specifies a start offset to support paginated results.\nUse `@odata.nextLink` in the result object to enumerate the collection -\nit will be present only if there's more than one page of entities.",
            "in": "query",
            "name": "$skiptoken",
            "required": false,
            "schema": {
              "title": "$Skiptoken",
              "type": "string"
            }
          },
          {
            "description": "Filters the set to the specified label key.\nIf multiple $label_keys are specified, matching items must have all labels.",
            "in": "query",
            "name": "$label_key",
            "required": false,
            "schema": {
              "title": "$Label_Key",
              "type": "string"
            }
          },
          {
            "description": "Filters the set to the specified label key/value pair.\nSupports equality, inequality, and inexact matching. If multiple values are provided for the same key, items matching either value will be returned.",
            "in": "query",
            "name": "$label",
            "required": false,
            "schema": {
              "title": "$Label",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetListResponseSchema"
                }
              }
            },
            "description": "A list of assets"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "List Assets",
        "tags": [
          "Assets"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/assets/{asset_name}": {
      "delete": {
        "description": "Delete Asset.\nWhen you delete an asset, the underlying storage container will be deleted too. You can control this behavior by assigning a DeletionPolicy to your asset.",
        "operationId": "[delete]_/api/v1/projects/{project_name}/media/assets/{asset_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "asset_name",
            "required": true,
            "schema": {
              "title": "Asset_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Asset deleted."
          },
          "204": {
            "description": "Nothing to delete."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Delete Asset",
        "tags": [
          "Assets"
        ]
      },
      "get": {
        "description": "Get an asset by name.",
        "operationId": "[get]_/api/v1/projects/{project_name}/media/assets/{asset_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "asset_name",
            "required": true,
            "schema": {
              "title": "Asset_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetSchema"
                }
              }
            },
            "description": "A single Asset."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get Asset",
        "tags": [
          "Assets"
        ]
      },
      "put": {
        "description": "Create or Update Asset. \nWhen creating an asset, that asset needs to have a unique container & storage account within the project. \nWhen updating an asset, only the description column can be updated.",
        "operationId": "[put]_/api/v1/projects/{project_name}/media/assets/{asset_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "asset_name",
            "required": true,
            "schema": {
              "title": "Asset_Name",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssetPutSchema"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetSchema"
                }
              }
            },
            "description": "Asset was updated"
          },
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetSchema"
                }
              }
            },
            "description": "Asset was created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Conflict"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Create or Update Asset",
        "tags": [
          "Assets"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/assets/{asset_name}/assetFilters": {
      "get": {
        "description": "## Listing, Sorting and Filtering Asset Filters\n\nThis endpoint returns the list of asset filters in the specified project.\n\n### Sorting\n\nThe results from this endpoint can be ordered using the `$orderby` query parameter. Specify a list of field names, separated by commas\nwhere each one can optionally specify `asc` or `desc`.\n\nSorting is valid on the following fields: `created`, `createdBy`, `id`, `name`, `updated`, `updatedBy`\n\n### Filtering\n\n\n\nThe `$filter` query parameter allows for asset filters to be filtered on the basis of fields in the schema using OData query syntax.\nSee [this document](https://learn.microsoft.com/en-us/odata/concepts/queryoptions-overview#filter) for more details on the syntax used.\n\nFilters are valid on the following fields: `created`, `createdBy`, `createdByEmail`, `createdByName`, `id`, `name`, `updated`, `updatedBy`, `updatedByEmail`, `updatedByName`\n\n### Examples:\n\n`?$top=10` - Returns only the first 10 asset filters from the list.\n\n`?$orderby=name desc` - Sorts asset filters by name in descending order.\n\n`?$filter=name eq 'descriptive name'` - Returns asset filters that match the provided name.\n\n\n`?$orderby=created desc` - Sorts asset filters by creation date in descending order.\n\n`?$filter=created ge 2021-01-01T00:00:00Z` - Returns asset filters created after January 1, 2021.",
        "operationId": "[get]_/api/v1/projects/{project_name}/media/assets/{asset_name}/assetFilters",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "asset_name",
            "required": true,
            "schema": {
              "title": "Asset_Name",
              "type": "string"
            }
          },
          {
            "description": "Specifies the key by which the result collection should be ordered.",
            "in": "query",
            "name": "$orderby",
            "required": false,
            "schema": {
              "title": "$Orderby",
              "type": "string"
            }
          },
          {
            "description": "Restricts the set of items returned.",
            "in": "query",
            "name": "$filter",
            "required": false,
            "schema": {
              "title": "$Filter",
              "type": "string"
            }
          },
          {
            "description": "Specifies a non-negative integer `n` that limits the number of items returned from a collection.\nThe service returns the number of available items up to but not greater than the specified value `n`.",
            "in": "query",
            "name": "$top",
            "required": false,
            "schema": {
              "title": "$Top",
              "type": "string"
            }
          },
          {
            "description": "Specifies a start offset to support paginated results.\nUse `@odata.nextLink` in the result object to enumerate the collection -\nit will be present only if there's more than one page of entities.",
            "in": "query",
            "name": "$skiptoken",
            "required": false,
            "schema": {
              "title": "$Skiptoken",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetFilterListResponseSchema"
                }
              }
            },
            "description": "A list of asset filters"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "List Asset Filters",
        "tags": [
          "Asset Filters"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/assets/{asset_name}/assetFilters/{filter_name}": {
      "delete": {
        "description": "Delete Asset Filter.\nAsset filters can only be removed when they are not referenced by any active streaming locators.",
        "operationId": "[delete]_/api/v1/projects/{project_name}/media/assets/{asset_name}/assetFilters/{filter_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "asset_name",
            "required": true,
            "schema": {
              "title": "Asset_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "filter_name",
            "required": true,
            "schema": {
              "title": "Filter_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Asset filter deleted."
          },
          "204": {
            "description": "Nothing to delete."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Delete Asset Filter",
        "tags": [
          "Asset Filters"
        ]
      },
      "get": {
        "description": "Get an asset filter by name.",
        "operationId": "[get]_/api/v1/projects/{project_name}/media/assets/{asset_name}/assetFilters/{filter_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "asset_name",
            "required": true,
            "schema": {
              "title": "Asset_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "filter_name",
            "required": true,
            "schema": {
              "title": "Filter_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetFilterSchema"
                }
              }
            },
            "description": "A single asset filter"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get Asset Filter",
        "tags": [
          "Asset Filters"
        ]
      },
      "put": {
        "description": "Create or Update Asset Filter.",
        "operationId": "[put]_/api/v1/projects/{project_name}/media/assets/{asset_name}/assetFilters/{filter_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "asset_name",
            "required": true,
            "schema": {
              "title": "Asset_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "filter_name",
            "required": true,
            "schema": {
              "title": "Filter_Name",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssetFilterPutSchema"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetFilterSchema"
                }
              }
            },
            "description": "Asset Filter was updated"
          },
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetFilterSchema"
                }
              }
            },
            "description": "Asset Filter was created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Create or Update Asset Filter",
        "tags": [
          "Asset Filters"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/assets/{asset_name}/getFileAccessInfo": {
      "post": {
        "description": "This endpoint returns the information needed to access files within your asset.\n\nThe storage account containing the asset must be configured with a valid SAS token.\n\nThe response includes\n - `storageAccountName`: the storage account name,\n - `containerName`: the name of the container within the storage account,\n - `jwt`: a token to be passed along with your request,\n - `url`: the URL to access the container.\n - `subpath`: the subpath to the location of the asset within the container.\n\nPlease see our online documentation for examples of how to use these.",
        "operationId": "[post]_/api/v1/projects/{project_name}/media/assets/{asset_name}/getFileAccessInfo",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "asset_name",
            "required": true,
            "schema": {
              "title": "Asset_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetFileAccessInfoSchema"
                }
              }
            },
            "description": "Access Information"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get file access information",
        "tags": [
          "Assets"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/assets/{asset_name}/listStreamingLocators": {
      "post": {
        "description": "List Streaming Locators for Asset. This API call is a convenience method to retrieve\nany and all playback configurations, or StreamingLocators, that are associated with this asset.",
        "operationId": "[post]_/api/v1/projects/{project_name}/media/assets/{asset_name}/listStreamingLocators",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "asset_name",
            "required": true,
            "schema": {
              "title": "Asset_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetStreamingLocatorListSchema"
                }
              }
            },
            "description": "Streaming Locators"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "List Streaming Locators",
        "tags": [
          "Assets"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/assets/{asset_name}/state": {
      "get": {
        "description": "Get the internal state of the resource. The state value depends on the resource type. For details about the potential states for each resource type, see [our resource state docs](https://docs.mediakind.com/mkio/reference/resource-states).",
        "operationId": "[get]_/api/v1/projects/{project_name}/media/assets/{asset_name}/state",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "asset_name",
            "required": true,
            "schema": {
              "title": "Asset_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceStateSchema"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get resource state",
        "tags": [
          "Assets"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/assets/{asset_name}/storage/": {
      "get": {
        "description": "The Azure Storage Data Retrieval API is designed to provide restricted information about data stored in Azure Storage containers. \nThis API allows users to interact with data in a secure and efficient manner, without directly altering the stored data.\n\nHere are key features and purposes of this API:\n\nList Container Contents: It enumerates the contents of an Azure Storage container. This operation returns both files and folders \nwithin the specified container, enabling users to navigate through the hierarchical data structure.\n\nView Track Listings: This API will generate available track listings for any media files contained within the specified container. Track listings\nare inclusive of video, audio, and text tracks. If available, the API will also return the track's language and bitrate.\n\nSecurity: This API is scoped only to the configured storage account and is only accessible to users who have access to the subscription in\nwhich the asset resides. It is a readonly API that does not allow for any mutation or creation operations, and which cannot be used to retrieve \nany data from the storage account.",
        "operationId": "[get]_/api/v1/projects/{project_name}/media/assets/{asset_name}/storage/",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "asset_name",
            "required": true,
            "schema": {
              "title": "Asset_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetStorageResponseSchema"
                }
              }
            },
            "description": "Tracks and Files Listing"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Retrieve tracks.",
        "tags": [
          "Assets"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/contentKeyPolicies": {
      "get": {
        "description": "## Listing, Sorting and Filtering Content Key Policies\n\nThis endpoint returns the list of content key policies in the specified project.\n\n### Sorting\n\nThe results from this endpoint can be ordered using the `$orderby` query parameter. Specify a list of field names, separated by commas\nwhere each one can optionally specify `asc` or `desc`.\n\nSorting is valid on the following fields: `created`, `createdBy`, `id`, `name`, `properties/created`, `properties/lastModified`, `properties/policyId`, `updated`, `updatedBy`\n\n### Filtering\n\n\n\nThe `$filter` query parameter allows for content key policies to be filtered on the basis of fields in the schema using OData query syntax.\nSee [this document](https://learn.microsoft.com/en-us/odata/concepts/queryoptions-overview#filter) for more details on the syntax used.\n\nFilters are valid on the following fields: `created`, `createdBy`, `createdByEmail`, `createdByName`, `id`, `name`, `properties/created`, `properties/lastModified`, `properties/policyId`, `updated`, `updatedBy`, `updatedByEmail`, `updatedByName`\n\n### Examples:\n\n`?$top=10` - Returns only the first 10 content key policies from the list.\n\n`?$orderby=name desc` - Sorts content key policies by name in descending order.\n\n`?$filter=name eq 'descriptive name'` - Returns content key policies that match the provided name.\n\n\n`?$orderby=created desc` - Sorts content key policies by creation date in descending order.\n\n`?$filter=created ge 2021-01-01T00:00:00Z` - Returns content key policies created after January 1, 2021.",
        "operationId": "[get]_/api/v1/projects/{project_name}/media/contentKeyPolicies",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "Specifies the key by which the result collection should be ordered.",
            "in": "query",
            "name": "$orderby",
            "required": false,
            "schema": {
              "title": "$Orderby",
              "type": "string"
            }
          },
          {
            "description": "Restricts the set of items returned.",
            "in": "query",
            "name": "$filter",
            "required": false,
            "schema": {
              "title": "$Filter",
              "type": "string"
            }
          },
          {
            "description": "Specifies a non-negative integer `n` that limits the number of items returned from a collection.\nThe service returns the number of available items up to but not greater than the specified value `n`.",
            "in": "query",
            "name": "$top",
            "required": false,
            "schema": {
              "title": "$Top",
              "type": "string"
            }
          },
          {
            "description": "Specifies a start offset to support paginated results.\nUse `@odata.nextLink` in the result object to enumerate the collection -\nit will be present only if there's more than one page of entities.",
            "in": "query",
            "name": "$skiptoken",
            "required": false,
            "schema": {
              "title": "$Skiptoken",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContentKeyPolicyListResponseSchema"
                }
              }
            },
            "description": "A list of content key policies."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "List Content Key Policies",
        "tags": [
          "Content Key Policies"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/contentKeyPolicies/{policy_name}": {
      "delete": {
        "description": "Delete a Content Key Policy. If the policy does not exist, this will return a 204.",
        "operationId": "[delete]_/api/v1/projects/{project_name}/media/contentKeyPolicies/{policy_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "policy_name",
            "required": true,
            "schema": {
              "title": "Policy_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Content Key Policy deleted."
          },
          "204": {
            "description": "Nothing to delete."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Delete",
        "tags": [
          "Content Key Policies"
        ]
      },
      "get": {
        "description": "Get one Content Key Policy",
        "operationId": "[get]_/api/v1/projects/{project_name}/media/contentKeyPolicies/{policy_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "policy_name",
            "required": true,
            "schema": {
              "title": "Policy_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContentKeyPolicySchema"
                }
              }
            },
            "description": "Returns a single Content Key Policy"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get",
        "tags": [
          "Content Key Policies"
        ]
      },
      "patch": {
        "description": "Update an existing Content Key Policy.",
        "operationId": "[patch]_/api/v1/projects/{project_name}/media/contentKeyPolicies/{policy_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "policy_name",
            "required": true,
            "schema": {
              "title": "Policy_Name",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContentKeyPolicySchema"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContentKeyPolicySchema"
                }
              }
            },
            "description": "Content Key Policy was updated"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Update",
        "tags": [
          "Content Key Policies"
        ]
      },
      "put": {
        "description": "Create a Content Key Policy",
        "operationId": "[put]_/api/v1/projects/{project_name}/media/contentKeyPolicies/{policy_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "policy_name",
            "required": true,
            "schema": {
              "title": "Policy_Name",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContentKeyPolicyPutSchema"
              }
            }
          }
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContentKeyPolicySchema"
                }
              }
            },
            "description": "Create a Content Key Policy"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Conflict"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Create",
        "tags": [
          "Content Key Policies"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/contentKeyPolicies/{policy_name}/getPolicyPropertiesWithSecrets": {
      "post": {
        "description": "Get a Content Key Policy including secret values",
        "operationId": "[post]_/api/v1/projects/{project_name}/media/contentKeyPolicies/{policy_name}/getPolicyPropertiesWithSecrets",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "policy_name",
            "required": true,
            "schema": {
              "title": "Policy_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns a single Content Key Policy with secrets"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get Secrets",
        "tags": [
          "Content Key Policies"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/contentKeyPolicies/{policy_name}/state": {
      "get": {
        "description": "Get the internal state of the resource. The state value depends on the resource type. For details about the potential states for each resource type, see [our resource state docs](https://docs.mediakind.com/mkio/reference/resource-states).",
        "operationId": "[get]_/api/v1/projects/{project_name}/media/contentKeyPolicies/{policy_name}/state",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "policy_name",
            "required": true,
            "schema": {
              "title": "Policy_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceStateSchema"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get resource state",
        "tags": [
          "Content Key Policies"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/jobs": {
      "get": {
        "description": "## Listing, Sorting and Filtering Jobs\n\nThis endpoint returns the list of jobs in the specified project.\n\n### Sorting\n\nThe results from this endpoint can be ordered using the `$orderby` query parameter. Specify a list of field names, separated by commas\nwhere each one can optionally specify `asc` or `desc`.\n\nSorting is valid on the following fields: `created`, `createdBy`, `id`, `name`, `properties/created`, `properties/lastModified`, `properties/state`, `updated`, `updatedBy`\n\n### Filtering\n\n\n\nThe `$filter` query parameter allows for jobs to be filtered on the basis of fields in the schema using OData query syntax.\nSee [this document](https://learn.microsoft.com/en-us/odata/concepts/queryoptions-overview#filter) for more details on the syntax used.\n\nFilters are valid on the following fields: `created`, `createdBy`, `createdByEmail`, `createdByName`, `id`, `name`, `properties/created`, `properties/lastModified`, `properties/state`, `transform`, `updated`, `updatedBy`, `updatedByEmail`, `updatedByName`\n\n### Examples:\n\n`?$top=10` - Returns only the first 10 jobs from the list.\n\n`?$orderby=name desc` - Sorts jobs by name in descending order.\n\n`?$filter=name eq 'descriptive name'` - Returns jobs that match the provided name.\n\n\n`?$orderby=created desc` - Sorts jobs by creation date in descending order.\n\n`?$filter=created ge 2021-01-01T00:00:00Z` - Returns jobs created after January 1, 2021.",
        "operationId": "[get]_/api/v1/projects/{project_name}/media/jobs",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "Specifies the key by which the result collection should be ordered.",
            "in": "query",
            "name": "$orderby",
            "required": false,
            "schema": {
              "title": "$Orderby",
              "type": "string"
            }
          },
          {
            "description": "Restricts the set of items returned.",
            "in": "query",
            "name": "$filter",
            "required": false,
            "schema": {
              "title": "$Filter",
              "type": "string"
            }
          },
          {
            "description": "Specifies a non-negative integer `n` that limits the number of items returned from a collection.\nThe service returns the number of available items up to but not greater than the specified value `n`.",
            "in": "query",
            "name": "$top",
            "required": false,
            "schema": {
              "title": "$Top",
              "type": "string"
            }
          },
          {
            "description": "Specifies a start offset to support paginated results.\nUse `@odata.nextLink` in the result object to enumerate the collection -\nit will be present only if there's more than one page of entities.",
            "in": "query",
            "name": "$skiptoken",
            "required": false,
            "schema": {
              "title": "$Skiptoken",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobListResponseSchema"
                }
              }
            },
            "description": "A list of all jobs"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "List Jobs",
        "tags": [
          "Jobs"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/liveEvents": {
      "get": {
        "description": "## Listing, Sorting and Filtering Live Events\n\nThis endpoint returns the list of live events in the specified project.\n\n### Sorting\n\nThe results from this endpoint can be ordered using the `$orderby` query parameter. Specify a list of field names, separated by commas\nwhere each one can optionally specify `asc` or `desc`.\n\nSorting is valid on the following fields: `created`, `createdBy`, `id`, `name`, `properties/created`, `properties/description`, `properties/encoding/encodingType`, `properties/lastModified`, `properties/resourceState`, `updated`, `updatedBy`\n\n### Filtering\n\n\nThere are two ways to filter the set of returned live events from this endpoint - the first is to use the `$filter` query parameter, the second is to use the\n`$label_key` and `$label` query parameters.\n\n\nThe `$filter` query parameter allows for live events to be filtered on the basis of fields in the schema using OData query syntax.\nSee [this document](https://learn.microsoft.com/en-us/odata/concepts/queryoptions-overview#filter) for more details on the syntax used.\n\nFilters are valid on the following fields: `created`, `createdBy`, `createdByEmail`, `createdByName`, `id`, `name`, `properties/created`, `properties/description`, `properties/encoding/encodingType`, `properties/lastModified`, `properties/resourceState`, `updated`, `updatedBy`, `updatedByEmail`, `updatedByName`\n\n`$label_key` and `$label` are specific to querying live events based on their labels. Labels are a set of key-value pairs that can be used to identify live events with\nany arbitrary metadata you want, specifically for the purpose of retrieving relevant subsets of live events.\n\n### Examples:\n\n`?$top=10` - Returns only the first 10 live events from the list.\n\n`?$orderby=name desc` - Sorts live events by name in descending order.\n\n`?$filter=name eq 'descriptive name'` - Returns live events that match the provided name.\n\n\n`?$orderby=created desc` - Sorts live events by creation date in descending order.\n\n`?$filter=created ge 2021-01-01T00:00:00Z` - Returns live events created after January 1, 2021.\n\n`?$filter=properties/resourceState eq 'Running'` - Returns live events in the Running state.\n\n`?$label=studio=paravalley` - Returns live events with the label `studio` set to `paravalley`.\n\n`?$label=release-date~2023` - Returns live events with the label `release-date` set to a value that contains `2023`.\n\n`?$label_key=studio&label_key=release-date` - Returns live events with any value set for the `studio` label and the `release-date` label.",
        "operationId": "[get]_/api/v1/projects/{project_name}/media/liveEvents",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "Filters the set to the specified label key.\nIf multiple $label_keys are specified, matching items must have all labels.",
            "in": "query",
            "name": "$label_key",
            "required": false,
            "schema": {
              "title": "$Label_Key",
              "type": "string"
            }
          },
          {
            "description": "Filters the set to the specified label key/value pair.\nSupports equality, inequality, and inexact matching. If multiple values are provided for the same key, items matching either value will be returned.",
            "in": "query",
            "name": "$label",
            "required": false,
            "schema": {
              "title": "$Label",
              "type": "string"
            }
          },
          {
            "description": "Specifies the key by which the result collection should be ordered.",
            "in": "query",
            "name": "$orderby",
            "required": false,
            "schema": {
              "title": "$Orderby",
              "type": "string"
            }
          },
          {
            "description": "Restricts the set of items returned.",
            "in": "query",
            "name": "$filter",
            "required": false,
            "schema": {
              "title": "$Filter",
              "type": "string"
            }
          },
          {
            "description": "Specifies a non-negative integer `n` that limits the number of items returned from a collection.\nThe service returns the number of available items up to but not greater than the specified value `n`.",
            "in": "query",
            "name": "$top",
            "required": false,
            "schema": {
              "title": "$Top",
              "type": "string"
            }
          },
          {
            "description": "Specifies a start offset to support paginated results.\nUse `@odata.nextLink` in the result object to enumerate the collection -\nit will be present only if there's more than one page of entities.",
            "in": "query",
            "name": "$skiptoken",
            "required": false,
            "schema": {
              "title": "$Skiptoken",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LiveEventListResponseSchema"
                }
              }
            },
            "description": "A list of live events"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "List Live Events",
        "tags": [
          "Live Events"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/liveEvents/{event_name}": {
      "delete": {
        "description": "Delete a live event.",
        "operationId": "[delete]_/api/v1/projects/{project_name}/media/liveEvents/{event_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "event_name",
            "required": true,
            "schema": {
              "title": "Event_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Live Event deleted."
          },
          "204": {
            "description": "Nothing to delete."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Delete a Live Event",
        "tags": [
          "Live Events"
        ]
      },
      "get": {
        "description": "Returns a live event.",
        "operationId": "[get]_/api/v1/projects/{project_name}/media/liveEvents/{event_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "event_name",
            "required": true,
            "schema": {
              "title": "Event_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LiveEventSchema"
                }
              }
            },
            "description": "A single live event"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Retrieve a live event",
        "tags": [
          "Live Events"
        ]
      },
      "patch": {
        "description": "Update a live event.  Currently only `properties.pipeline` is patchable.",
        "operationId": "[patch]_/api/v1/projects/{project_name}/media/liveEvents/{event_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "event_name",
            "required": true,
            "schema": {
              "title": "Event_Name",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LiveEventPatchSchema"
              }
            },
            "application/json-patch+json": {
              "examples": {
                "add arg": {
                  "summary": "Add a new argument to an operation",
                  "value": [
                    {
                      "op": "add",
                      "path": "/properties/pipeline/arguments/VodTranscription/0",
                      "value": {
                        "name": "language",
                        "value": "en-GB"
                      }
                    }
                  ]
                },
                "add pipeline": {
                  "summary": "Add or replace pipeline with arguments",
                  "value": [
                    {
                      "op": "add",
                      "path": "/properties/pipeline",
                      "value": {
                        "arguments": {
                          "VodTranscription": [
                            {
                              "name": "language",
                              "value": "en-GB"
                            }
                          ]
                        },
                        "name": "{pipeline_name}"
                      }
                    }
                  ]
                },
                "change pipeline name": {
                  "summary": "Change to a different pipeline by name",
                  "value": [
                    {
                      "op": "replace",
                      "path": "/properties/pipeline/name",
                      "value": "{pipeline_name}"
                    }
                  ]
                },
                "modify arg name": {
                  "summary": "Change argument name of an operation",
                  "value": [
                    {
                      "op": "replace",
                      "path": "/properties/pipeline/arguments/VodTranscription/0/name",
                      "value": "language-code"
                    }
                  ]
                }
              },
              "schema": {
                "items": {
                  "$ref": "#/components/schemas/JsonPatchEntry"
                },
                "type": "array"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LiveEventSchema"
                }
              }
            },
            "description": "Updated"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Update a Live Event",
        "tags": [
          "Live Events"
        ]
      },
      "put": {
        "description": "Create a live event",
        "operationId": "[put]_/api/v1/projects/{project_name}/media/liveEvents/{event_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "event_name",
            "required": true,
            "schema": {
              "title": "Event_Name",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LiveEventPutSchema"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LiveEventSchema"
                }
              }
            },
            "description": "A live event has been created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Conflict"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Create a live event",
        "tags": [
          "Live Events"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/liveEvents/{event_name}/allocate": {
      "post": {
        "description": "NOT IMPLEMENTED. Allocates resources for a Live Event. A live event is in StandBy state after allocation completes, and is ready to start.",
        "operationId": "[post]_/api/v1/projects/{project_name}/media/liveEvents/{event_name}/allocate",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "event_name",
            "required": true,
            "schema": {
              "title": "Event_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Not implemented"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Allocate a Live Event",
        "tags": [
          "Live Events"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/liveEvents/{event_name}/liveOutputs": {
      "get": {
        "description": "## Listing, Sorting and Filtering Live Outputs\n\nThis endpoint returns the list of live outputs in the specified project.\n\n### Sorting\n\nThe results from this endpoint can be ordered using the `$orderby` query parameter. Specify a list of field names, separated by commas\nwhere each one can optionally specify `asc` or `desc`.\n\nSorting is valid on the following fields: `created`, `createdBy`, `id`, `name`, `properties/created`, `properties/description`, `properties/lastModified`, `updated`, `updatedBy`\n\n### Filtering\n\n\n\nThe `$filter` query parameter allows for live outputs to be filtered on the basis of fields in the schema using OData query syntax.\nSee [this document](https://learn.microsoft.com/en-us/odata/concepts/queryoptions-overview#filter) for more details on the syntax used.\n\nFilters are valid on the following fields: `created`, `createdBy`, `createdByEmail`, `createdByName`, `id`, `name`, `properties/created`, `properties/description`, `properties/lastModified`, `updated`, `updatedBy`, `updatedByEmail`, `updatedByName`\n\n### Examples:\n\n`?$top=10` - Returns only the first 10 live outputs from the list.\n\n`?$orderby=name desc` - Sorts live outputs by name in descending order.\n\n`?$filter=name eq 'descriptive name'` - Returns live outputs that match the provided name.\n\n\n`?$orderby=created desc` - Sorts live outputs by creation date in descending order.\n\n`?$filter=created ge 2021-01-01T00:00:00Z` - Returns live outputs created after January 1, 2021.",
        "operationId": "[get]_/api/v1/projects/{project_name}/media/liveEvents/{event_name}/liveOutputs",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "event_name",
            "required": true,
            "schema": {
              "title": "Event_Name",
              "type": "string"
            }
          },
          {
            "description": "Specifies the key by which the result collection should be ordered.",
            "in": "query",
            "name": "$orderby",
            "required": false,
            "schema": {
              "title": "$Orderby",
              "type": "string"
            }
          },
          {
            "description": "Restricts the set of items returned.",
            "in": "query",
            "name": "$filter",
            "required": false,
            "schema": {
              "title": "$Filter",
              "type": "string"
            }
          },
          {
            "description": "Specifies a non-negative integer `n` that limits the number of items returned from a collection.\nThe service returns the number of available items up to but not greater than the specified value `n`.",
            "in": "query",
            "name": "$top",
            "required": false,
            "schema": {
              "title": "$Top",
              "type": "string"
            }
          },
          {
            "description": "Specifies a start offset to support paginated results.\nUse `@odata.nextLink` in the result object to enumerate the collection -\nit will be present only if there's more than one page of entities.",
            "in": "query",
            "name": "$skiptoken",
            "required": false,
            "schema": {
              "title": "$Skiptoken",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LiveOutputListResponseSchema"
                }
              }
            },
            "description": "List of live outputs"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "List Live Outputs",
        "tags": [
          "Live Outputs"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/liveEvents/{event_name}/liveOutputs/{output_name}": {
      "delete": {
        "description": "Deletes a Live Output. If the Live Output is not found, a 204 is returned.",
        "operationId": "[delete]_/api/v1/projects/{project_name}/media/liveEvents/{event_name}/liveOutputs/{output_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "event_name",
            "required": true,
            "schema": {
              "title": "Event_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "output_name",
            "required": true,
            "schema": {
              "title": "Output_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Live Output deleted."
          },
          "204": {
            "description": "Nothing to delete."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Delete",
        "tags": [
          "Live Outputs"
        ]
      },
      "get": {
        "description": "Returns a single Live Output.",
        "operationId": "[get]_/api/v1/projects/{project_name}/media/liveEvents/{event_name}/liveOutputs/{output_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "event_name",
            "required": true,
            "schema": {
              "title": "Event_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "output_name",
            "required": true,
            "schema": {
              "title": "Output_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LiveOutputSchema"
                }
              }
            },
            "description": "Single Live Output"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get",
        "tags": [
          "Live Outputs"
        ]
      },
      "put": {
        "description": "Creates a Live Output",
        "operationId": "[put]_/api/v1/projects/{project_name}/media/liveEvents/{event_name}/liveOutputs/{output_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "event_name",
            "required": true,
            "schema": {
              "title": "Event_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "output_name",
            "required": true,
            "schema": {
              "title": "Output_Name",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LiveOutputPutSchema"
              }
            }
          }
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LiveOutputSchema"
                }
              }
            },
            "description": "Live Output created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Conflict"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Create",
        "tags": [
          "Live Outputs"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/liveEvents/{event_name}/liveOutputs/{output_name}/state": {
      "get": {
        "description": "Get the internal state of the resource. The state value depends on the resource type. For details about the potential states for each resource type, see [our resource state docs](https://docs.mediakind.com/mkio/reference/resource-states).",
        "operationId": "[get]_/api/v1/projects/{project_name}/media/liveEvents/{event_name}/liveOutputs/{output_name}/state",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "event_name",
            "required": true,
            "schema": {
              "title": "Event_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "output_name",
            "required": true,
            "schema": {
              "title": "Output_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceStateSchema"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get resource state",
        "tags": [
          "Live Events"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/liveEvents/{event_name}/reset": {
      "post": {
        "description": "NOT IMPLEMENTED. Resets a Live Event. All live outputs for the live event are deleted and the live event is stopped and will be started again.",
        "operationId": "[post]_/api/v1/projects/{project_name}/media/liveEvents/{event_name}/reset",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "event_name",
            "required": true,
            "schema": {
              "title": "Event_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Not implemented"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Reset a Live Event",
        "tags": [
          "Live Events"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/liveEvents/{event_name}/start": {
      "post": {
        "description": "Start a Live Event. This operation transitions your Live Event into a running state",
        "operationId": "[post]_/api/v1/projects/{project_name}/media/liveEvents/{event_name}/start",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "event_name",
            "required": true,
            "schema": {
              "title": "Event_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Start a Live Event",
        "tags": [
          "Live Events"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/liveEvents/{event_name}/state": {
      "get": {
        "description": "Get the internal state of the resource. The state value depends on the resource type. For details about the potential states for each resource type, see [our resource state docs](https://docs.mediakind.com/mkio/reference/resource-states).",
        "operationId": "[get]_/api/v1/projects/{project_name}/media/liveEvents/{event_name}/state",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "event_name",
            "required": true,
            "schema": {
              "title": "Event_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceStateSchema"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get resource state",
        "tags": [
          "Live Events"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/liveEvents/{event_name}/stop": {
      "post": {
        "description": "Stops a Live Event. Any active playback sessions will be interrupted.",
        "operationId": "[post]_/api/v1/projects/{project_name}/media/liveEvents/{event_name}/stop",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "event_name",
            "required": true,
            "schema": {
              "title": "Event_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Stop a Live Event",
        "tags": [
          "Live Events"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/storage": {
      "get": {
        "description": "## Listing, Sorting and Filtering Storage Instances\n\nThis endpoint returns the list of storage instances in the specified project.\n\n### Sorting\n\nThe results from this endpoint can be ordered using the `$orderby` query parameter. Specify a list of field names, separated by commas\nwhere each one can optionally specify `asc` or `desc`.\n\nSorting is valid on the following fields: `created`, `createdBy`, `id`, `name`, `privateLinkServiceConnectionStatus`, `type`, `updated`, `updatedBy`, `url`\n\n### Filtering\n\n\n\nThe `$filter` query parameter allows for storage instances to be filtered on the basis of fields in the schema using OData query syntax.\nSee [this document](https://learn.microsoft.com/en-us/odata/concepts/queryoptions-overview#filter) for more details on the syntax used.\n\nFilters are valid on the following fields: `cloud/name`, `cloud/region/name`, `created`, `createdBy`, `createdByEmail`, `createdByName`, `id`, `name`, `privateLinkServiceConnectionStatus`, `region`, `type`, `updated`, `updatedBy`, `updatedByEmail`, `updatedByName`, `url`\n\n### Examples:\n\n`?$top=10` - Returns only the first 10 storage instances from the list.\n\n`?$orderby=name desc` - Sorts storage instances by name in descending order.\n\n`?$filter=name eq 'descriptive name'` - Returns storage instances that match the provided name.\n\n\n`?$orderby=created desc` - Sorts storage instances by creation date in descending order.\n\n`?$filter=created ge 2021-01-01T00:00:00Z` - Returns storage instances created after January 1, 2021.",
        "operationId": "[get]_/api/v1/projects/{project_name}/media/storage",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "Specifies the key by which the result collection should be ordered.",
            "in": "query",
            "name": "$orderby",
            "required": false,
            "schema": {
              "title": "$Orderby",
              "type": "string"
            }
          },
          {
            "description": "Restricts the set of items returned.",
            "in": "query",
            "name": "$filter",
            "required": false,
            "schema": {
              "title": "$Filter",
              "type": "string"
            }
          },
          {
            "description": "Specifies a non-negative integer `n` that limits the number of items returned from a collection.\nThe service returns the number of available items up to but not greater than the specified value `n`.",
            "in": "query",
            "name": "$top",
            "required": false,
            "schema": {
              "title": "$Top",
              "type": "string"
            }
          },
          {
            "description": "Specifies a start offset to support paginated results.\nUse `@odata.nextLink` in the result object to enumerate the collection -\nit will be present only if there's more than one page of entities.",
            "in": "query",
            "name": "$skiptoken",
            "required": false,
            "schema": {
              "title": "$Skiptoken",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StorageListSchema_v1"
                }
              }
            },
            "description": "A list of Storage instances"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "List Storage instances",
        "tags": [
          "Storage"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/storage/{storage_name}": {
      "delete": {
        "description": "Deletes our record of your Storage instance.\nThis operation **does not** delete your cloud storage, just our record of it.\nThis operation will not complete successfully if any assets are associated with the Storage instance.",
        "operationId": "[delete]_/api/v1/projects/{project_name}/media/storage/{storage_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "storage_name",
            "required": true,
            "schema": {
              "title": "Storage_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Storage instance deleted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Conflict"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Delete Storage instance",
        "tags": [
          "Storage"
        ]
      },
      "get": {
        "description": "Returns the details of a single Storage instance",
        "operationId": "[get]_/api/v1/projects/{project_name}/media/storage/{storage_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "storage_name",
            "required": true,
            "schema": {
              "title": "Storage_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StorageSchemaGet"
                }
              }
            },
            "description": "A single Storage instance"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get Storage instance",
        "tags": [
          "Storage"
        ]
      },
      "patch": {
        "description": "Patch a Storage instance.\nOnly the description, and privateLinkServiceConnection details are patchable.",
        "operationId": "[patch]_/api/v1/projects/{project_name}/media/storage/{storage_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "storage_name",
            "required": true,
            "schema": {
              "title": "Storage_Name",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StorageSchemaPatch"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StorageSchemaGet"
                }
              }
            },
            "description": "Storage instance successfully updated"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Conflict"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Patch Storage instance",
        "tags": [
          "Storage"
        ]
      },
      "put": {
        "description": "Create or update a Storage instance.\n    Only the description, credentials and privateLinkServiceConnection details are updatable.",
        "operationId": "[put]_/api/v1/projects/{project_name}/media/storage/{storage_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "storage_name",
            "required": true,
            "schema": {
              "title": "Storage_Name",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "examples": {
                "Create AWS storage": {
                  "summary": "Create AWS storage",
                  "value": {
                    "spec": {
                      "bucketName": "my-aws-bucket",
                      "credential": {
                        "accessKeyId": "AKIAEXAMPLE123456789",
                        "secretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
                      },
                      "description": "Input media files for processing.",
                      "type": "AWS.S3"
                    }
                  }
                },
                "Create Azure storage": {
                  "summary": "Create Azure storage",
                  "value": {
                    "spec": {
                      "credential": {
                        "sasToken": "?sv=2022-11-02&ss=bfqt&srt=co&sp=rwdlacupiyx&se=2024-11-12T00:05:04Z&st=2024-11-11T16:05:04Z&spr=https&sig=<redacted>"
                      },
                      "description": "Input media files for processing.",
                      "type": "Microsoft.Storage",
                      "url": "https://blobsamples.blob.core.windows.net/"
                    }
                  }
                }
              },
              "schema": {
                "$ref": "#/components/schemas/StorageSchemaPut"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StorageSchemaGet"
                }
              }
            },
            "description": "Storage instance successfully updated"
          },
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StorageSchemaGet"
                }
              }
            },
            "description": "Storage instance successfully created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Create or Update Storage instance",
        "tags": [
          "Storage"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/storage/{storage_name}/credentials": {
      "get": {
        "description": "Returns the list of Storage Credentials for this Storage instance. Any secret data will be sanitized in the response.",
        "operationId": "[get]_/api/v1/projects/{project_name}/media/storage/{storage_name}/credentials",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "storage_name",
            "required": true,
            "schema": {
              "title": "Storage_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialListSchema"
                }
              }
            },
            "description": "A list of Storage Credentials"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "List Storage Credentials",
        "tags": [
          "Storage"
        ]
      },
      "post": {
        "description": "Creates a Storage Credential. You can add as many Storage Credentials as you like to a Storage instance. \nWe will choose the Storage Credential with the longest expiry time when we need to access the Storage instance.\nCredentials are immutable once created - but you can create a new Storage Credential record, then delete the old one.",
        "operationId": "[post]_/api/v1/projects/{project_name}/media/storage/{storage_name}/credentials",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "storage_name",
            "required": true,
            "schema": {
              "title": "Storage_Name",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "examples": {
                "Add AWS credential": {
                  "summary": "Add AWS credential",
                  "value": {
                    "spec": {
                      "credential": {
                        "accessKeyId": "AKIAEXAMPLE123456789",
                        "secretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
                      },
                      "type": "AWS.S3"
                    }
                  }
                },
                "Add Azure credential": {
                  "summary": "Add Azure credential",
                  "value": {
                    "spec": {
                      "credential": {
                        "sasToken": "?sv=2022-11-02&ss=bfqt&srt=co&sp=rwdlacupiyx&se=2024-11-12T00:05:04Z&st=2024-11-11T16:05:04Z&spr=https&sig=<redacted>"
                      },
                      "type": "Microsoft.Storage"
                    }
                  }
                },
                "Add Google credential": {
                  "summary": "Add Google credential",
                  "value": {
                    "spec": {
                      "credential": {
                        "gac": {
                          "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
                          "auth_uri": "https://accounts.google.com/o/oauth2/auth",
                          "client_email": "sa@mygcpproject.iam.gserviceaccount.com",
                          "client_id": "123456789012345678901",
                          "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/sa%40mygcpproject.iam.gserviceaccount.com",
                          "private_key": "-----BEGIN PRIVATE KEY-----\nVGhpcyBpcyBwcml2YXRlIGtleSBpbmZvLgo=\n-----END PRIVATE KEY-----\n",
                          "private_key_id": "4a3aeda866dc4f21b6824c882d886009",
                          "project_id": "mygcpproject",
                          "token_uri": "https://oauth2.googleapis.com/token",
                          "type": "service_account"
                        }
                      },
                      "type": "Google.Storage"
                    }
                  }
                }
              },
              "schema": {
                "$ref": "#/components/schemas/CredentialSchemaPost"
              }
            }
          }
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialSchemaGet"
                }
              }
            },
            "description": "Create a Storage instance Credential."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Create Storage Credential",
        "tags": [
          "Storage"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/storage/{storage_name}/credentials/{credential_id}": {
      "delete": {
        "description": "Removes a Storage Credential from the Storage instance.\nIf the Storage Credential is in use and no alternative Storage Credentials are available, the Storage instance will be inaccessible.",
        "operationId": "[delete]_/api/v1/projects/{project_name}/media/storage/{storage_name}/credentials/{credential_id}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "storage_name",
            "required": true,
            "schema": {
              "title": "Storage_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "credential_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Credential_Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Storage Credential deleted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Delete Storage Credential",
        "tags": [
          "Storage"
        ]
      },
      "get": {
        "description": "Returns a single Storage Credential. Any secret data will be sanitized in the response.",
        "operationId": "[get]_/api/v1/projects/{project_name}/media/storage/{storage_name}/credentials/{credential_id}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "storage_name",
            "required": true,
            "schema": {
              "title": "Storage_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "credential_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Credential_Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialSchemaGet"
                }
              }
            },
            "description": "A single Storage Credential."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get Storage Credential",
        "tags": [
          "Storage"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/streamingEndpoints": {
      "get": {
        "description": "## Listing, Sorting and Filtering Streaming Endpoints\n\nThis endpoint returns the list of streaming endpoints in the specified project.\n\n### Sorting\n\nThe results from this endpoint can be ordered using the `$orderby` query parameter. Specify a list of field names, separated by commas\nwhere each one can optionally specify `asc` or `desc`.\n\nSorting is valid on the following fields: `created`, `createdBy`, `id`, `name`, `properties/created`, `properties/description`, `properties/lastModified`, `properties/resourceState`, `properties/scaleUnits`, `updated`, `updatedBy`\n\n### Filtering\n\n\n\nThe `$filter` query parameter allows for streaming endpoints to be filtered on the basis of fields in the schema using OData query syntax.\nSee [this document](https://learn.microsoft.com/en-us/odata/concepts/queryoptions-overview#filter) for more details on the syntax used.\n\nFilters are valid on the following fields: `created`, `createdBy`, `createdByEmail`, `createdByName`, `id`, `name`, `properties/created`, `properties/description`, `properties/lastModified`, `properties/resourceState`, `properties/scaleUnits`, `updated`, `updatedBy`, `updatedByEmail`, `updatedByName`\n\n### Examples:\n\n`?$top=10` - Returns only the first 10 streaming endpoints from the list.\n\n`?$orderby=name desc` - Sorts streaming endpoints by name in descending order.\n\n`?$filter=name eq 'descriptive name'` - Returns streaming endpoints that match the provided name.\n\n\n`?$orderby=created desc` - Sorts streaming endpoints by creation date in descending order.\n\n`?$filter=created ge 2021-01-01T00:00:00Z` - Returns streaming endpoints created after January 1, 2021.\n\n`?$filter=properties/resourceState eq 'Running'` - Returns streaming endpoints in the Running state.",
        "operationId": "[get]_/api/v1/projects/{project_name}/media/streamingEndpoints",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "Specifies the key by which the result collection should be ordered.",
            "in": "query",
            "name": "$orderby",
            "required": false,
            "schema": {
              "title": "$Orderby",
              "type": "string"
            }
          },
          {
            "description": "Restricts the set of items returned.",
            "in": "query",
            "name": "$filter",
            "required": false,
            "schema": {
              "title": "$Filter",
              "type": "string"
            }
          },
          {
            "description": "Specifies a non-negative integer `n` that limits the number of items returned from a collection.\nThe service returns the number of available items up to but not greater than the specified value `n`.",
            "in": "query",
            "name": "$top",
            "required": false,
            "schema": {
              "title": "$Top",
              "type": "string"
            }
          },
          {
            "description": "Specifies a start offset to support paginated results.\nUse `@odata.nextLink` in the result object to enumerate the collection -\nit will be present only if there's more than one page of entities.",
            "in": "query",
            "name": "$skiptoken",
            "required": false,
            "schema": {
              "title": "$Skiptoken",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StreamingEndpointListResponseSchema"
                }
              }
            },
            "description": "A list of Streaming Endpoints."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "List Streaming Endpoints",
        "tags": [
          "Streaming Endpoints"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/streamingEndpoints/{endpoint_name}": {
      "delete": {
        "description": "Delete a Streaming Endpoint. If the Streaming Endpoint does not exist, this API will return a 204.",
        "operationId": "[delete]_/api/v1/projects/{project_name}/media/streamingEndpoints/{endpoint_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "endpoint_name",
            "required": true,
            "schema": {
              "title": "Endpoint_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Streaming Endpoint deleted."
          },
          "204": {
            "description": "Nothing to delete."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Delete Streaming Endpoint",
        "tags": [
          "Streaming Endpoints"
        ]
      },
      "get": {
        "description": "Retrieves a single Streaming Endpoint.",
        "operationId": "[get]_/api/v1/projects/{project_name}/media/streamingEndpoints/{endpoint_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "endpoint_name",
            "required": true,
            "schema": {
              "title": "Endpoint_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StreamingEndpointSchema"
                }
              }
            },
            "description": "A single Streaming Endpoint"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get Streaming Endpoint",
        "tags": [
          "Streaming Endpoints"
        ]
      },
      "patch": {
        "description": "Update a Streaming Endpoint. \nOnly the Name and cdnProvider fields are immutable.",
        "operationId": "[patch]_/api/v1/projects/{project_name}/media/streamingEndpoints/{endpoint_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "endpoint_name",
            "required": true,
            "schema": {
              "title": "Endpoint_Name",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StreamingEndpointSchema"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StreamingEndpointSchema"
                }
              }
            },
            "description": "The updated Streaming Endpoint"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Update Streaming Endpoint",
        "tags": [
          "Streaming Endpoints"
        ]
      },
      "put": {
        "description": "Create a Streaming Endpoint.",
        "operationId": "[put]_/api/v1/projects/{project_name}/media/streamingEndpoints/{endpoint_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "endpoint_name",
            "required": true,
            "schema": {
              "title": "Endpoint_Name",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StreamingEndpointPutSchema"
              }
            }
          }
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StreamingEndpointSchema"
                }
              }
            },
            "description": "The created Streaming Endpoint"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Conflict"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Create Streaming Endpoint",
        "tags": [
          "Streaming Endpoints"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/streamingEndpoints/{endpoint_name}/restart": {
      "post": {
        "description": "Restarts the streaming endpoint without service interruption. This operation has the effect of purging cache data in the streaming endpoint.",
        "operationId": "[post]_/api/v1/projects/{project_name}/media/streamingEndpoints/{endpoint_name}/restart",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "endpoint_name",
            "required": true,
            "schema": {
              "title": "Endpoint_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. The request has succeeded."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Restart Streaming Endpoint",
        "tags": [
          "Streaming Endpoints"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/streamingEndpoints/{endpoint_name}/scale": {
      "post": {
        "description": "Changes the scale of the Streaming Endpoint.",
        "operationId": "[post]_/api/v1/projects/{project_name}/media/streamingEndpoints/{endpoint_name}/scale",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "endpoint_name",
            "required": true,
            "schema": {
              "title": "Endpoint_Name",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StreamingEndpointScaleSchema"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK. The request has succeeded."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Scale Streaming Endpoint",
        "tags": [
          "Streaming Endpoints"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/streamingEndpoints/{endpoint_name}/skus": {
      "get": {
        "description": "This API is not implemented.",
        "operationId": "[get]_/api/v1/projects/{project_name}/media/streamingEndpoints/{endpoint_name}/skus",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "endpoint_name",
            "required": true,
            "schema": {
              "title": "Endpoint_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "List Streaming Endpoint SKUs",
        "tags": [
          "Streaming Endpoints"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/streamingEndpoints/{endpoint_name}/start": {
      "post": {
        "description": "Start a Streaming Endpoint. \nThis operation transitions your Streaming Endpoint into a running state.",
        "operationId": "[post]_/api/v1/projects/{project_name}/media/streamingEndpoints/{endpoint_name}/start",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "endpoint_name",
            "required": true,
            "schema": {
              "title": "Endpoint_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. The request has succeeded."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Start Streaming Endpoint",
        "tags": [
          "Streaming Endpoints"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/streamingEndpoints/{endpoint_name}/state": {
      "get": {
        "description": "Get the internal state of the resource. The state value depends on the resource type. For details about the potential states for each resource type, see [our resource state docs](https://docs.mediakind.com/mkio/reference/resource-states).",
        "operationId": "[get]_/api/v1/projects/{project_name}/media/streamingEndpoints/{endpoint_name}/state",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "endpoint_name",
            "required": true,
            "schema": {
              "title": "Endpoint_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceStateSchema"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get resource state",
        "tags": [
          "Streaming Endpoints"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/streamingEndpoints/{endpoint_name}/stop": {
      "post": {
        "description": "Stop a Streaming Endpoint. Any active playback sessions will be interrupted.",
        "operationId": "[post]_/api/v1/projects/{project_name}/media/streamingEndpoints/{endpoint_name}/stop",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "endpoint_name",
            "required": true,
            "schema": {
              "title": "Endpoint_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. The request has succeeded."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Stop Streaming Endpoint",
        "tags": [
          "Streaming Endpoints"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/streamingLocators": {
      "get": {
        "description": "## Listing, Sorting and Filtering Streaming Locators\n\nThis endpoint returns the list of streaming locators in the specified project.\n\n### Sorting\n\nThe results from this endpoint can be ordered using the `$orderby` query parameter. Specify a list of field names, separated by commas\nwhere each one can optionally specify `asc` or `desc`.\n\nSorting is valid on the following fields: `created`, `createdBy`, `id`, `name`, `properties/created`, `properties/endTime`, `properties/startTime`, `updated`, `updatedBy`\n\n### Filtering\n\n\n\nThe `$filter` query parameter allows for streaming locators to be filtered on the basis of fields in the schema using OData query syntax.\nSee [this document](https://learn.microsoft.com/en-us/odata/concepts/queryoptions-overview#filter) for more details on the syntax used.\n\nFilters are valid on the following fields: `created`, `createdBy`, `createdByEmail`, `createdByName`, `id`, `name`, `properties/assetName`, `properties/created`, `properties/endTime`, `properties/startTime`, `updated`, `updatedBy`, `updatedByEmail`, `updatedByName`\n\n### Examples:\n\n`?$top=10` - Returns only the first 10 streaming locators from the list.\n\n`?$orderby=name desc` - Sorts streaming locators by name in descending order.\n\n`?$filter=name eq 'descriptive name'` - Returns streaming locators that match the provided name.\n\n\n`?$orderby=created desc` - Sorts streaming locators by creation date in descending order.\n\n`?$filter=created ge 2021-01-01T00:00:00Z` - Returns streaming locators created after January 1, 2021.",
        "operationId": "[get]_/api/v1/projects/{project_name}/media/streamingLocators",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "Specifies the key by which the result collection should be ordered.",
            "in": "query",
            "name": "$orderby",
            "required": false,
            "schema": {
              "title": "$Orderby",
              "type": "string"
            }
          },
          {
            "description": "Restricts the set of items returned.",
            "in": "query",
            "name": "$filter",
            "required": false,
            "schema": {
              "title": "$Filter",
              "type": "string"
            }
          },
          {
            "description": "Specifies a non-negative integer `n` that limits the number of items returned from a collection.\nThe service returns the number of available items up to but not greater than the specified value `n`.",
            "in": "query",
            "name": "$top",
            "required": false,
            "schema": {
              "title": "$Top",
              "type": "string"
            }
          },
          {
            "description": "Specifies a start offset to support paginated results.\nUse `@odata.nextLink` in the result object to enumerate the collection -\nit will be present only if there's more than one page of entities.",
            "in": "query",
            "name": "$skiptoken",
            "required": false,
            "schema": {
              "title": "$Skiptoken",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StreamingLocatorListResponseSchema"
                }
              }
            },
            "description": "A list of storage accounts"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "List Streaming Locators",
        "tags": [
          "Streaming Locators"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/streamingLocators/{locator_name}": {
      "delete": {
        "description": "Deletes the Streaming Locator. If the Streaming Locator does not exist, a 204 is returned same as if it does.\n    Once the Streaming Locator is deleted, all future requests to the path owned by the Streaming Locator will fail. If content is \n    cached in a CDN, playback may continue to work for some time until the cached content expires.",
        "operationId": "[delete]_/api/v1/projects/{project_name}/media/streamingLocators/{locator_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "locator_name",
            "required": true,
            "schema": {
              "title": "Locator_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Streaming Locator deleted."
          },
          "204": {
            "description": "Nothing to delete."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Delete Streaming Locator",
        "tags": [
          "Streaming Locators"
        ]
      },
      "get": {
        "description": "Returns a single Streaming Locator for a given project.",
        "operationId": "[get]_/api/v1/projects/{project_name}/media/streamingLocators/{locator_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "locator_name",
            "required": true,
            "schema": {
              "title": "Locator_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StreamingLocatorSchema"
                }
              }
            },
            "description": "one Streaming Locator"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get Streaming Locator",
        "tags": [
          "Streaming Locators"
        ]
      },
      "put": {
        "description": "Create or update a Streaming Locator.\nWhen updating a streaming locator, only `start time`, `end time` and `suppressed` can be modified.",
        "operationId": "[put]_/api/v1/projects/{project_name}/media/streamingLocators/{locator_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "locator_name",
            "required": true,
            "schema": {
              "title": "Locator_Name",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StreamingLocatorPutSchema"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StreamingLocatorSchema"
                }
              }
            },
            "description": "Updated"
          },
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StreamingLocatorSchema"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Conflict"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Create or update Streaming Locator",
        "tags": [
          "Streaming Locators"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/streamingLocators/{locator_name}/listContentKeys": {
      "post": {
        "description": "List Content Keys used by this Streaming Locator",
        "operationId": "[post]_/api/v1/projects/{project_name}/media/streamingLocators/{locator_name}/listContentKeys",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "locator_name",
            "required": true,
            "schema": {
              "title": "Locator_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StreamingLocatorListContentKeysResponseSchema"
                }
              }
            },
            "description": "Content Keys used by this Streaming Locator."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "List Content Keys",
        "tags": [
          "Streaming Locators"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/streamingLocators/{locator_name}/listPaths": {
      "post": {
        "description": "ListPaths returns the set of valid streaming paths for a given Streaming Locator. A distinct set of paths\nis returned for each type of DRM configured, per the 'EnabledProtocols' property of the streaming policy.",
        "operationId": "[post]_/api/v1/projects/{project_name}/media/streamingLocators/{locator_name}/listPaths",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "locator_name",
            "required": true,
            "schema": {
              "title": "Locator_Name",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StreamingLocatorListPathsSchema"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StreamingLocatorListPathsResponseSchema"
                }
              }
            },
            "description": "Streaming locator paths returned."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "List URL paths",
        "tags": [
          "Streaming Locators"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/streamingLocators/{locator_name}/state": {
      "get": {
        "description": "Get the internal state of the resource. The state value depends on the resource type. For details about the potential states for each resource type, see [our resource state docs](https://docs.mediakind.com/mkio/reference/resource-states).",
        "operationId": "[get]_/api/v1/projects/{project_name}/media/streamingLocators/{locator_name}/state",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "locator_name",
            "required": true,
            "schema": {
              "title": "Locator_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceStateSchema"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get resource state",
        "tags": [
          "Streaming Locators"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/streamingPolicies": {
      "get": {
        "description": "## Listing, Sorting and Filtering Streaming Policies\n\nThis endpoint returns the list of streaming policies in the specified project.\n\n### Sorting\n\nThe results from this endpoint can be ordered using the `$orderby` query parameter. Specify a list of field names, separated by commas\nwhere each one can optionally specify `asc` or `desc`.\n\nSorting is valid on the following fields: `created`, `createdBy`, `id`, `name`, `properties/created`, `updated`, `updatedBy`\n\n### Filtering\n\n\n\nThe `$filter` query parameter allows for streaming policies to be filtered on the basis of fields in the schema using OData query syntax.\nSee [this document](https://learn.microsoft.com/en-us/odata/concepts/queryoptions-overview#filter) for more details on the syntax used.\n\nFilters are valid on the following fields: `created`, `createdBy`, `createdByEmail`, `createdByName`, `id`, `name`, `properties/created`, `updated`, `updatedBy`, `updatedByEmail`, `updatedByName`\n\n### Examples:\n\n`?$top=10` - Returns only the first 10 streaming policies from the list.\n\n`?$orderby=name desc` - Sorts streaming policies by name in descending order.\n\n`?$filter=name eq 'descriptive name'` - Returns streaming policies that match the provided name.\n\n\n`?$orderby=created desc` - Sorts streaming policies by creation date in descending order.\n\n`?$filter=created ge 2021-01-01T00:00:00Z` - Returns streaming policies created after January 1, 2021.\n\n\n\n## Note that the default policies will always appear in the results",
        "operationId": "[get]_/api/v1/projects/{project_name}/media/streamingPolicies",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "Specifies the key by which the result collection should be ordered.",
            "in": "query",
            "name": "$orderby",
            "required": false,
            "schema": {
              "title": "$Orderby",
              "type": "string"
            }
          },
          {
            "description": "Restricts the set of items returned.",
            "in": "query",
            "name": "$filter",
            "required": false,
            "schema": {
              "title": "$Filter",
              "type": "string"
            }
          },
          {
            "description": "Specifies a non-negative integer `n` that limits the number of items returned from a collection.\nThe service returns the number of available items up to but not greater than the specified value `n`.",
            "in": "query",
            "name": "$top",
            "required": false,
            "schema": {
              "title": "$Top",
              "type": "string"
            }
          },
          {
            "description": "Specifies a start offset to support paginated results.\nUse `@odata.nextLink` in the result object to enumerate the collection -\nit will be present only if there's more than one page of entities.",
            "in": "query",
            "name": "$skiptoken",
            "required": false,
            "schema": {
              "title": "$Skiptoken",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StreamingPolicyListResponseSchema"
                }
              }
            },
            "description": "A list of streaming policies."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "List Streaming Policies",
        "tags": [
          "Streaming Policies"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/streamingPolicies/{policy_name}": {
      "delete": {
        "description": "Delete a Streaming Policy. If the policy does not exist, this will return a 204.",
        "operationId": "[delete]_/api/v1/projects/{project_name}/media/streamingPolicies/{policy_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "policy_name",
            "required": true,
            "schema": {
              "title": "Policy_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Streaming Policy deleted"
          },
          "204": {
            "description": "Nothing to delete."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Delete",
        "tags": [
          "Streaming Policies"
        ]
      },
      "get": {
        "description": "Get one Streaming Policy",
        "operationId": "[get]_/api/v1/projects/{project_name}/media/streamingPolicies/{policy_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "policy_name",
            "required": true,
            "schema": {
              "title": "Policy_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StreamingPolicySchema"
                }
              }
            },
            "description": "Returns a single Streaming Policy"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get",
        "tags": [
          "Streaming Policies"
        ]
      },
      "put": {
        "description": "Create or update a Streaming Policy. Updating an existing policy may not be available on all accounts.",
        "operationId": "[put]_/api/v1/projects/{project_name}/media/streamingPolicies/{policy_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "policy_name",
            "required": true,
            "schema": {
              "title": "Policy_Name",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StreamingPolicyPutSchema"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StreamingPolicySchema"
                }
              }
            },
            "description": "Streaming Policy updated"
          },
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StreamingPolicySchema"
                }
              }
            },
            "description": "Streaming Policy created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Create or Update",
        "tags": [
          "Streaming Policies"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/transforms": {
      "get": {
        "description": "## Listing, Sorting and Filtering Transforms\n\nThis endpoint returns the list of transforms in the specified project.\n\n### Sorting\n\nThe results from this endpoint can be ordered using the `$orderby` query parameter. Specify a list of field names, separated by commas\nwhere each one can optionally specify `asc` or `desc`.\n\nSorting is valid on the following fields: `created`, `createdBy`, `id`, `name`, `properties/created`, `properties/lastModified`, `updated`, `updatedBy`\n\n### Filtering\n\n\n\nThe `$filter` query parameter allows for transforms to be filtered on the basis of fields in the schema using OData query syntax.\nSee [this document](https://learn.microsoft.com/en-us/odata/concepts/queryoptions-overview#filter) for more details on the syntax used.\n\nFilters are valid on the following fields: `created`, `createdBy`, `createdByEmail`, `createdByName`, `id`, `name`, `properties/created`, `properties/lastModified`, `updated`, `updatedBy`, `updatedByEmail`, `updatedByName`\n\n### Examples:\n\n`?$top=10` - Returns only the first 10 transforms from the list.\n\n`?$orderby=name desc` - Sorts transforms by name in descending order.\n\n`?$filter=name eq 'descriptive name'` - Returns transforms that match the provided name.\n\n\n`?$orderby=created desc` - Sorts transforms by creation date in descending order.\n\n`?$filter=created ge 2021-01-01T00:00:00Z` - Returns transforms created after January 1, 2021.",
        "operationId": "[get]_/api/v1/projects/{project_name}/media/transforms",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "Specifies the key by which the result collection should be ordered.",
            "in": "query",
            "name": "$orderby",
            "required": false,
            "schema": {
              "title": "$Orderby",
              "type": "string"
            }
          },
          {
            "description": "Restricts the set of items returned.",
            "in": "query",
            "name": "$filter",
            "required": false,
            "schema": {
              "title": "$Filter",
              "type": "string"
            }
          },
          {
            "description": "Specifies a non-negative integer `n` that limits the number of items returned from a collection.\nThe service returns the number of available items up to but not greater than the specified value `n`.",
            "in": "query",
            "name": "$top",
            "required": false,
            "schema": {
              "title": "$Top",
              "type": "string"
            }
          },
          {
            "description": "Specifies a start offset to support paginated results.\nUse `@odata.nextLink` in the result object to enumerate the collection -\nit will be present only if there's more than one page of entities.",
            "in": "query",
            "name": "$skiptoken",
            "required": false,
            "schema": {
              "title": "$Skiptoken",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransformListResponseSchema"
                }
              }
            },
            "description": "A list of transforms"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "List Transforms",
        "tags": [
          "Transforms"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/transforms/{transform_name}": {
      "delete": {
        "description": "Delete a Transform.",
        "operationId": "[delete]_/api/v1/projects/{project_name}/media/transforms/{transform_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "transform_name",
            "required": true,
            "schema": {
              "title": "Transform_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Transform deleted."
          },
          "204": {
            "description": "Nothing to delete."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Delete a Transform",
        "tags": [
          "Transforms"
        ]
      },
      "get": {
        "description": "Get a transform by name.",
        "operationId": "[get]_/api/v1/projects/{project_name}/media/transforms/{transform_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "transform_name",
            "required": true,
            "schema": {
              "title": "Transform_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransformSchema"
                }
              }
            },
            "description": "A single Transform."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get Transform",
        "tags": [
          "Transforms"
        ]
      },
      "put": {
        "description": "Create or Updates a new Transform.",
        "operationId": "[put]_/api/v1/projects/{project_name}/media/transforms/{transform_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "transform_name",
            "required": true,
            "schema": {
              "title": "Transform_Name",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TransformPutSchema"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransformSchema"
                }
              }
            },
            "description": "Transform was updated"
          },
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransformSchema"
                }
              }
            },
            "description": "Transform was created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Create or Update Transform",
        "tags": [
          "Transforms"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/transforms/{transform_name}/jobs": {
      "get": {
        "description": "Retrieves a list of Jobs for a Transform.",
        "operationId": "[get]_/api/v1/projects/{project_name}/media/transforms/{transform_name}/jobs",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "transform_name",
            "required": true,
            "schema": {
              "title": "Transform_Name",
              "type": "string"
            }
          },
          {
            "description": "Specifies the key by which the result collection should be ordered.",
            "in": "query",
            "name": "$orderby",
            "required": false,
            "schema": {
              "title": "$Orderby",
              "type": "string"
            }
          },
          {
            "description": "Restricts the set of items returned.",
            "in": "query",
            "name": "$filter",
            "required": false,
            "schema": {
              "title": "$Filter",
              "type": "string"
            }
          },
          {
            "description": "Specifies a non-negative integer `n` that limits the number of items returned from a collection.\nThe service returns the number of available items up to but not greater than the specified value `n`.",
            "in": "query",
            "name": "$top",
            "required": false,
            "schema": {
              "title": "$Top",
              "type": "string"
            }
          },
          {
            "description": "Specifies a start offset to support paginated results.\nUse `@odata.nextLink` in the result object to enumerate the collection -\nit will be present only if there's more than one page of entities.",
            "in": "query",
            "name": "$skiptoken",
            "required": false,
            "schema": {
              "title": "$Skiptoken",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobListResponseSchema"
                }
              }
            },
            "description": "A list of jobs"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "List Jobs",
        "tags": [
          "Jobs"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/transforms/{transform_name}/jobs/{job_name}": {
      "delete": {
        "description": "Delete a Job.",
        "operationId": "[delete]_/api/v1/projects/{project_name}/media/transforms/{transform_name}/jobs/{job_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "transform_name",
            "required": true,
            "schema": {
              "title": "Transform_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "job_name",
            "required": true,
            "schema": {
              "title": "Job_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Job deleted."
          },
          "204": {
            "description": "Nothing to delete."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Delete a Job",
        "tags": [
          "Jobs"
        ]
      },
      "get": {
        "description": "Get a Job by name.",
        "operationId": "[get]_/api/v1/projects/{project_name}/media/transforms/{transform_name}/jobs/{job_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "transform_name",
            "required": true,
            "schema": {
              "title": "Transform_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "job_name",
            "required": true,
            "schema": {
              "title": "Job_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobSchema"
                }
              }
            },
            "description": "A single Job."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get Job",
        "tags": [
          "Jobs"
        ]
      },
      "patch": {
        "description": "Update an existing Job.\nUpdate is only supported for `description`, `priority` and `correlationData`.",
        "operationId": "[patch]_/api/v1/projects/{project_name}/media/transforms/{transform_name}/jobs/{job_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "transform_name",
            "required": true,
            "schema": {
              "title": "Transform_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "job_name",
            "required": true,
            "schema": {
              "title": "Job_Name",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JobPatchSchema"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobSchema"
                }
              }
            },
            "description": "Job was updated"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Update a Job",
        "tags": [
          "Jobs"
        ]
      },
      "put": {
        "description": "Create a new Job.",
        "operationId": "[put]_/api/v1/projects/{project_name}/media/transforms/{transform_name}/jobs/{job_name}",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "transform_name",
            "required": true,
            "schema": {
              "title": "Transform_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "job_name",
            "required": true,
            "schema": {
              "title": "Job_Name",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JobPutSchema"
              }
            }
          }
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobSchema"
                }
              }
            },
            "description": "Job was created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Conflict"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Create a Job",
        "tags": [
          "Jobs"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/transforms/{transform_name}/jobs/{job_name}/cancelJob": {
      "post": {
        "description": "Cancel an already running Job.",
        "operationId": "[post]_/api/v1/projects/{project_name}/media/transforms/{transform_name}/jobs/{job_name}/cancelJob",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "transform_name",
            "required": true,
            "schema": {
              "title": "Transform_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "job_name",
            "required": true,
            "schema": {
              "title": "Job_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Cancel a Job",
        "tags": [
          "Jobs"
        ]
      }
    },
    "/api/v1/projects/{project_name}/media/transforms/{transform_name}/jobs/{job_name}/state": {
      "get": {
        "description": "Get the internal state of the resource. The state value depends on the resource type. For details about the potential states for each resource type, see [our resource state docs](https://docs.mediakind.com/mkio/reference/resource-states).",
        "operationId": "[get]_/api/v1/projects/{project_name}/media/transforms/{transform_name}/jobs/{job_name}/state",
        "parameters": [
          {
            "description": "",
            "in": "path",
            "name": "project_name",
            "required": true,
            "schema": {
              "title": "Project_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "transform_name",
            "required": true,
            "schema": {
              "title": "Transform_Name",
              "type": "string"
            }
          },
          {
            "description": "",
            "in": "path",
            "name": "job_name",
            "required": true,
            "schema": {
              "title": "Job_Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceStateSchema"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Get resource state",
        "tags": [
          "Jobs"
        ]
      }
    }
  },
  "security": [
    {
      "BearerAuth": []
    }
  ],
  "servers": [
    {
      "description": "MK.IO API Server",
      "url": "https://app.mk.io/"
    }
  ],
  "tags": [
    {
      "description": "# Asset Filters\n\nAsset filters allow for just-in-time filtering of the contents of a video manifest. This is useful, for instance, when you want to present \nspecific language tracks to a user based on their language preferences, or when you need to suppress certain tracks from being presented to\ndevices that lack support, or when you want to present a specific bitrate to users when a stream starts.\n\nAsset filters are applied to a specific asset, and are evaluated at the time of playback. They are not applied to the underlying asset itself,\nand multiple filters can be applied to a single asset. Filters are applied in the order they are created, with multiple filters being OR'd together\nto produce the final result.\n\nFilters have several important capabilities:\n\n1. Initial bitrate selection. In an HLS playlist, this feature determines the order of the tracks in the playlist, which determines where the client starts playback. \n    Adjust this value in order to tune the initial playback experience for your users.\n2. VOD time window filtering. This is a capability that permits for a time window to be applied for a VOD asset's presentation. Consider a scenario where you have a\n    24-hour asset comprised of 24 back-to-back one-hour programs. You might create 24 separate asset filters and 24 separate streaming locators in order to present 24 unique \n    programs to your users. Why you would prefer this approach over simply creating 24 separate assets is an exercise left to the reader.\n3. Live window delays (liveWindowBackoff). You can delay playback behind the \"live point\", for instance to allow for a delay in the presentation of a live event. This is useful in cases where \n    you have a global cache that you would like to preheat. Clients view the delayed presentation, while the cache is populated with the live presentation. \n4. Live Sliding Window duration. This is setting the window of time between the live point of a manifest and the last video segment in a manifest. A live manifest, especially for \n    long-duration content, can impair startup times. A common use case is to construct two live manifests, one with a short window for fast startup and playback at the live point, \n    and another with a longer window for users who want to watch the entire event.\n5. Track filtering. Actually this is track inclusion. Define predicates that describe your video content and any matching tracks will be included in the manifest. Use this feature\n    to create differentiated manifests based on client capabilities, or languages, or any other criteria you can think of.\n\nAsset filters and account filters are exactly the same. Asset filters differ from account filters in that they are only assignable to a specific asset, though the interface is identical. Prefer asset filters in cases where your content\nis unique - typically VOD content time window filtering. In cases where you want a common set of rules applied across all your content, use an account filter.",
      "name": "Asset Filters"
    },
    {
      "description": "# Assets\n\nThe Assets API is central to managing content in this system. An Asset in this API represents a direct link between the application\nand a storage container where content is stored. Ondemand Jobs and LiveEvent LiveOutputs both output encoded content into an \nAsset. And StreamingLocators reference an asset to describe and prepare it for playback.\n\nWhen you create an asset via this API, you can optionally omit the `container` field. This is standard way to consume \nthis API. The system will generate a container name and will create the container for you in the selected storage account.\nIF the container already exists in remote storage, your request will fail unless a DeletionPolicy is defined for the asset. This is \nto prevent accidental or unintentional deletion of stored content when the asset is deleted.\n\nDeleting an asset record will, by default, retain the associated container in remote storage. This behavior can be changed by defining a\nDeletionPolicy.",
      "name": "Assets"
    },
    {
      "description": "# Content Key Policies\n\nTo specify encryption options on your stream, you need to create a Streaming Policy and associate it with your\nStreaming Locator. You create the Content Key Policy to configure how the content key (that provides secure access\nto your Assets) is delivered to end clients. You need to set the requirements (restrictions) on the Content Key\nPolicy that must be met in order for keys with the specified configuration to be delivered to clients. The content\nkey policy is not needed for clear streaming or downloading.\n\nIn most cases, the content key policy is associated with a Streaming Locator. When creating a custom streaming\npolicy for advanced scenarios, you can specify the content key policy inside of a Streaming Policy.",
      "name": "Content Key Policies"
    },
    {
      "description": "",
      "name": "Jobs"
    },
    {
      "description": "# Live Events\n\nThe Live Events API allows you to create and manage live events.\n\n## Key Differences with this API\n\n- properties.encoding.keyFrameInterval bounds are 1-10s, not 0.5-20s. This has little impact in practice, but API calls may fail if the value is out of bounds.",
      "externalDocs": {
        "url": "https://docs.io.mediakind.com/docs/live-streaming"
      },
      "name": "Live Events"
    },
    {
      "description": "# Live Outputs\n\nLive Outputs are how video from a LiveEvent is written to an Asset. A Live Event on its own will encode video, but will not write that video \nto a permanent location. This is what Live Outputs achieve. A single Live Event can have multiple Live Outputs, for instance you may elect to have \none output storing a 2 minute rolling buffer of content for a traditional live stream, and a second output with a 24-hour rolling buffer for\na catchup service. If you have an event-based service with recurring events, you may elect to have a pool of Live Events that are reused for each\nevent, each time with a different set of Live Outputs. Live Outputs cannot be modified.\n\nA typical workflow will involve creating a Live Event, an asset for the content, and a Live Output to write the content to the asset. \n\n## Key Differences with this API\n\n- Rewind Window is not yet supported\n- outputSnapTime is not yet supported\n- The fragmentsPerTsSegment parameter is likely ignored",
      "name": "Live Outputs"
    },
    {
      "description": "# Storage\n\nThe Storage API is how you tell MK.IO about the cloud storage that you use for your media assets.\nYou can add multiple Storage instances, associate credentials with them, and manage those credentials.\nA Storage instance is a requirement to perform any meaningful activity within this platform.\n\nAll content is read from and written to your storage in your own cloud subscription!\n\nThis API supports Azure, AWS and GCP Storage.",
      "name": "Storage"
    },
    {
      "description": "# Streaming Endpoints\n\nStreaming Endpoints are the thing that connects your clients to your content. Streaming Endpoints are\ntied to a subscription and must reside in the same location as everything else in the subscription. \nThey do not have a direct relationship to any other API. Instead, ALL Streaming *Locators* are accessible\nvia any Streaming Endpoint in a subscription. When you create a Streaming Endpoint, you get a DNS name\nthat you can use to access your content. Combined with the *listPaths* API on the Streaming Locators API,\nyou can construct a full URL to your content.\n\n## Key Differences with this API\n\n- Automatic CDN integrations are not yet supported\n- Custom hostnames are not yet supported\n- Autoscaling definitions are not yet supported (our implementation will differ significantly)\n- Usage will be metered for both network egress and Streaming Endpoints. If you are migrating from AMS, network egress was previously accounted separately from AMS charges.\n\n## Streaming Endpoints Skus\n\nStreaming Endpoints have two SKUs: `Standard` and `Premium`. Standard SKUs offer 600Mbit/s of bandwidth \non shared infrastructure. Premium Skus offer 200Mbit/s guaranteed bandwidth per instance and can scale \nfar beyond 600Mbit/s.",
      "name": "Streaming Endpoints"
    },
    {
      "description": "# Streaming Locators\n\nStreaming Locators are used to publish content for streaming. \nIf you want to filter profiles or add security, this is the place.",
      "name": "Streaming Locators"
    },
    {
      "description": "# Streaming Policies\n\n!! **NOTE: DRM integrations can be tricky. Please contact us to work together on an integration! We want to hear from customers like you!** !!\n\nStreaming Policies are the starting point for securing content. A default set of streaming policies is provided, which should be sufficient for most use cases.\n\nThese include:\n- *Predefined_DownloadOnly* - This is a no-DRM policy that permits only download of content, with no streaming playback.\n- *Predefined_ClearStreamingOnly* - This is a no-DRM policy that permits only streaming playback of content, with no download.\n- *Predefined_DownloadAndClearStreaming* - You guessed it, this is a no-DRM policy that permits both download and streaming playback of content.\n- *Predefined_ClearKey* - Content is protected by a static key, which secures video from casual piracy, but is not a robust DRM solution.\n- *Predefined_MultiDrmCencStreaming* - DRM for PlayReady (e.g. Xbox), Widevine (e.g. Android). \n- *Predefined_MultiDrmStreaming* - DRM for PlayReady (e.g. Xbox), Widevine (e.g. Android), FairPlay (e.g. iOS).\n\nIntegrating DRM is, unfortunately, not as simple as selecting a policy and moving on. Here is a brief overview of the steps required to integrate DRM:\n\nFirst you need a content key policy. This is a separate API with facilities for defining an array of DRM configuration for each of the major \nDRM implementations (PlayReady, Widevine, FairPlay), along with any other DRM implementation you wish to support. Alongside this DRM configuration,\nyou must also define a restriction policy which determines who keys will be delivered to. We support AMS's 'token restriction' implementation, where\na signed token (like a JWT) is generated for each user and provided to the license server with each request. The signature is validated and information\ncan be extracted from the token body to determine if the user is authorized to receive the key. And on that note, you may also wish to provide a separate\nkey server, as opposed to using the one provided by our API. Once you have these pieces in place, you'll need to create a streaming policy that references\nyour content key policies and validate that it is working as expected. Your clients will need to derive and vend license server URLs to users on some devices,\nwhile on others you may be able to simply consume the in-band license server URL provided by our manifests. \n\nSo, pretty please, contact us to work together on an integration! We want to hear from customers like you!",
      "name": "Streaming Policies"
    },
    {
      "description": "",
      "name": "Transforms"
    }
  ]
}