{
  "openapi": "3.0.1",
  "info": {
    "title": "Jellyfin API",
    "version": "v1",
    "x-jellyfin-version": "10.7.0.0"
  },
  "servers": [
    {
      "url": "http://localhost"
    }
  ],
  "paths": {
    "/System/ActivityLog/Entries": {
      "get": {
        "tags": [
          "ActivityLog"
        ],
        "summary": "Gets activity log entries.",
        "operationId": "GetLogEntries",
        "parameters": [
          {
            "name": "startIndex",
            "in": "query",
            "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
            "schema": {
              "type": "integer",
              "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Optional. The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of records to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "minDate",
            "in": "query",
            "description": "Optional. The minimum date. Format = ISO.",
            "schema": {
              "type": "string",
              "description": "Optional. The minimum date. Format = ISO.",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "hasUserId",
            "in": "query",
            "description": "Optional. Filter log entries if it has user id, or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter log entries if it has user id, or not.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Activity log returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActivityLogEntryQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ActivityLogEntryQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ActivityLogEntryQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      }
    },
    "/Auth/Keys": {
      "get": {
        "tags": [
          "ApiKey"
        ],
        "summary": "Get all keys.",
        "operationId": "GetKeys",
        "responses": {
          "200": {
            "description": "Api keys retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationInfoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationInfoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationInfoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "ApiKey"
        ],
        "summary": "Create a new api key.",
        "operationId": "CreateKey",
        "parameters": [
          {
            "name": "app",
            "in": "query",
            "description": "Name of the app using the authentication key.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Name of the app using the authentication key."
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Api key created."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      }
    },
    "/Auth/Keys/{key}": {
      "delete": {
        "tags": [
          "ApiKey"
        ],
        "summary": "Remove an api key.",
        "operationId": "RevokeKey",
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "description": "The access token to delete.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The access token to delete."
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Api key deleted."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      }
    },
    "/Artists": {
      "get": {
        "tags": [
          "Artists"
        ],
        "summary": "Gets all artists from a given item, folder, or the entire library.",
        "operationId": "GetArtists",
        "parameters": [
          {
            "name": "minCommunityRating",
            "in": "query",
            "description": "Optional filter by minimum community rating.",
            "schema": {
              "type": "number",
              "description": "Optional filter by minimum community rating.",
              "format": "double",
              "nullable": true
            }
          },
          {
            "name": "startIndex",
            "in": "query",
            "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
            "schema": {
              "type": "integer",
              "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Optional. The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of records to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "searchTerm",
            "in": "query",
            "description": "Optional. Search term.",
            "schema": {
              "type": "string",
              "description": "Optional. Search term.",
              "nullable": true
            }
          },
          {
            "name": "parentId",
            "in": "query",
            "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.",
            "schema": {
              "type": "string",
              "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional. Specify additional fields of information to return in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFields"
              },
              "description": "Optional. Specify additional fields of information to return in the output.",
              "nullable": true
            }
          },
          {
            "name": "excludeItemTypes",
            "in": "query",
            "description": "Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "includeItemTypes",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "filters",
            "in": "query",
            "description": "Optional. Specify additional filters to apply.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFilter"
              },
              "description": "Optional. Specify additional filters to apply.",
              "nullable": true
            }
          },
          {
            "name": "isFavorite",
            "in": "query",
            "description": "Optional filter by items that are marked as favorite, or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that are marked as favorite, or not.",
              "nullable": true
            }
          },
          {
            "name": "mediaTypes",
            "in": "query",
            "description": "Optional filter by MediaType. Allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional filter by MediaType. Allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "genres",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited.",
              "nullable": true
            }
          },
          {
            "name": "genreIds",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited.",
              "nullable": true
            }
          },
          {
            "name": "officialRatings",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited.",
              "nullable": true
            }
          },
          {
            "name": "tags",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited.",
              "nullable": true
            }
          },
          {
            "name": "years",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              },
              "description": "Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "enableUserData",
            "in": "query",
            "description": "Optional, include user data.",
            "schema": {
              "type": "boolean",
              "description": "Optional, include user data.",
              "nullable": true
            }
          },
          {
            "name": "imageTypeLimit",
            "in": "query",
            "description": "Optional, the max number of images to return, per image type.",
            "schema": {
              "type": "integer",
              "description": "Optional, the max number of images to return, per image type.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "enableImageTypes",
            "in": "query",
            "description": "Optional. The image types to include in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ImageType"
              },
              "description": "Optional. The image types to include in the output.",
              "nullable": true
            }
          },
          {
            "name": "person",
            "in": "query",
            "description": "Optional. If specified, results will be filtered to include only those containing the specified person.",
            "schema": {
              "type": "string",
              "description": "Optional. If specified, results will be filtered to include only those containing the specified person.",
              "nullable": true
            }
          },
          {
            "name": "personIds",
            "in": "query",
            "description": "Optional. If specified, results will be filtered to include only those containing the specified person ids.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Optional. If specified, results will be filtered to include only those containing the specified person ids.",
              "nullable": true
            }
          },
          {
            "name": "personTypes",
            "in": "query",
            "description": "Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited.",
              "nullable": true
            }
          },
          {
            "name": "studios",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited.",
              "nullable": true
            }
          },
          {
            "name": "studioIds",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited.",
              "nullable": true
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "User id.",
            "schema": {
              "type": "string",
              "description": "User id.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "nameStartsWithOrGreater",
            "in": "query",
            "description": "Optional filter by items whose name is sorted equally or greater than a given input string.",
            "schema": {
              "type": "string",
              "description": "Optional filter by items whose name is sorted equally or greater than a given input string.",
              "nullable": true
            }
          },
          {
            "name": "nameStartsWith",
            "in": "query",
            "description": "Optional filter by items whose name is sorted equally than a given input string.",
            "schema": {
              "type": "string",
              "description": "Optional filter by items whose name is sorted equally than a given input string.",
              "nullable": true
            }
          },
          {
            "name": "nameLessThan",
            "in": "query",
            "description": "Optional filter by items whose name is equally or lesser than a given input string.",
            "schema": {
              "type": "string",
              "description": "Optional filter by items whose name is equally or lesser than a given input string.",
              "nullable": true
            }
          },
          {
            "name": "enableImages",
            "in": "query",
            "description": "Optional, include image information in output.",
            "schema": {
              "type": "boolean",
              "description": "Optional, include image information in output.",
              "default": true,
              "nullable": true
            }
          },
          {
            "name": "enableTotalRecordCount",
            "in": "query",
            "description": "Total record count.",
            "schema": {
              "type": "boolean",
              "description": "Total record count.",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Artists returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Artists/{name}": {
      "get": {
        "tags": [
          "Artists"
        ],
        "summary": "Gets an artist by name.",
        "operationId": "GetArtistByName",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "Studio name.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Studio name."
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. Filter by user id, and attach user data.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by user id, and attach user data.",
              "format": "uuid",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Artist returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDto"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDto"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Artists/AlbumArtists": {
      "get": {
        "tags": [
          "Artists"
        ],
        "summary": "Gets all album artists from a given item, folder, or the entire library.",
        "operationId": "GetAlbumArtists",
        "parameters": [
          {
            "name": "minCommunityRating",
            "in": "query",
            "description": "Optional filter by minimum community rating.",
            "schema": {
              "type": "number",
              "description": "Optional filter by minimum community rating.",
              "format": "double",
              "nullable": true
            }
          },
          {
            "name": "startIndex",
            "in": "query",
            "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
            "schema": {
              "type": "integer",
              "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Optional. The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of records to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "searchTerm",
            "in": "query",
            "description": "Optional. Search term.",
            "schema": {
              "type": "string",
              "description": "Optional. Search term.",
              "nullable": true
            }
          },
          {
            "name": "parentId",
            "in": "query",
            "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.",
            "schema": {
              "type": "string",
              "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional. Specify additional fields of information to return in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFields"
              },
              "description": "Optional. Specify additional fields of information to return in the output.",
              "nullable": true
            }
          },
          {
            "name": "excludeItemTypes",
            "in": "query",
            "description": "Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "includeItemTypes",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "filters",
            "in": "query",
            "description": "Optional. Specify additional filters to apply.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFilter"
              },
              "description": "Optional. Specify additional filters to apply.",
              "nullable": true
            }
          },
          {
            "name": "isFavorite",
            "in": "query",
            "description": "Optional filter by items that are marked as favorite, or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that are marked as favorite, or not.",
              "nullable": true
            }
          },
          {
            "name": "mediaTypes",
            "in": "query",
            "description": "Optional filter by MediaType. Allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional filter by MediaType. Allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "genres",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited.",
              "nullable": true
            }
          },
          {
            "name": "genreIds",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited.",
              "nullable": true
            }
          },
          {
            "name": "officialRatings",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited.",
              "nullable": true
            }
          },
          {
            "name": "tags",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited.",
              "nullable": true
            }
          },
          {
            "name": "years",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              },
              "description": "Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "enableUserData",
            "in": "query",
            "description": "Optional, include user data.",
            "schema": {
              "type": "boolean",
              "description": "Optional, include user data.",
              "nullable": true
            }
          },
          {
            "name": "imageTypeLimit",
            "in": "query",
            "description": "Optional, the max number of images to return, per image type.",
            "schema": {
              "type": "integer",
              "description": "Optional, the max number of images to return, per image type.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "enableImageTypes",
            "in": "query",
            "description": "Optional. The image types to include in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ImageType"
              },
              "description": "Optional. The image types to include in the output.",
              "nullable": true
            }
          },
          {
            "name": "person",
            "in": "query",
            "description": "Optional. If specified, results will be filtered to include only those containing the specified person.",
            "schema": {
              "type": "string",
              "description": "Optional. If specified, results will be filtered to include only those containing the specified person.",
              "nullable": true
            }
          },
          {
            "name": "personIds",
            "in": "query",
            "description": "Optional. If specified, results will be filtered to include only those containing the specified person ids.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Optional. If specified, results will be filtered to include only those containing the specified person ids.",
              "nullable": true
            }
          },
          {
            "name": "personTypes",
            "in": "query",
            "description": "Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited.",
              "nullable": true
            }
          },
          {
            "name": "studios",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited.",
              "nullable": true
            }
          },
          {
            "name": "studioIds",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited.",
              "nullable": true
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "User id.",
            "schema": {
              "type": "string",
              "description": "User id.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "nameStartsWithOrGreater",
            "in": "query",
            "description": "Optional filter by items whose name is sorted equally or greater than a given input string.",
            "schema": {
              "type": "string",
              "description": "Optional filter by items whose name is sorted equally or greater than a given input string.",
              "nullable": true
            }
          },
          {
            "name": "nameStartsWith",
            "in": "query",
            "description": "Optional filter by items whose name is sorted equally than a given input string.",
            "schema": {
              "type": "string",
              "description": "Optional filter by items whose name is sorted equally than a given input string.",
              "nullable": true
            }
          },
          {
            "name": "nameLessThan",
            "in": "query",
            "description": "Optional filter by items whose name is equally or lesser than a given input string.",
            "schema": {
              "type": "string",
              "description": "Optional filter by items whose name is equally or lesser than a given input string.",
              "nullable": true
            }
          },
          {
            "name": "enableImages",
            "in": "query",
            "description": "Optional, include image information in output.",
            "schema": {
              "type": "boolean",
              "description": "Optional, include image information in output.",
              "default": true,
              "nullable": true
            }
          },
          {
            "name": "enableTotalRecordCount",
            "in": "query",
            "description": "Total record count.",
            "schema": {
              "type": "boolean",
              "description": "Total record count.",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Album artists returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Audio/{itemId}/stream": {
      "get": {
        "tags": [
          "Audio"
        ],
        "summary": "Gets an audio stream.",
        "operationId": "GetAudioStream",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "container",
            "in": "query",
            "description": "The audio container.",
            "schema": {
              "type": "string",
              "description": "The audio container.",
              "nullable": true
            }
          },
          {
            "name": "static",
            "in": "query",
            "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
            "schema": {
              "type": "boolean",
              "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
              "nullable": true
            }
          },
          {
            "name": "params",
            "in": "query",
            "description": "The streaming parameters.",
            "schema": {
              "type": "string",
              "description": "The streaming parameters.",
              "nullable": true
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "The tag.",
            "schema": {
              "type": "string",
              "description": "The tag.",
              "nullable": true
            }
          },
          {
            "name": "deviceProfileId",
            "in": "query",
            "description": "Optional. The dlna device profile id to utilize.",
            "schema": {
              "type": "string",
              "description": "Optional. The dlna device profile id to utilize.",
              "nullable": true
            }
          },
          {
            "name": "playSessionId",
            "in": "query",
            "description": "The play session id.",
            "schema": {
              "type": "string",
              "description": "The play session id.",
              "nullable": true
            }
          },
          {
            "name": "segmentContainer",
            "in": "query",
            "description": "The segment container.",
            "schema": {
              "type": "string",
              "description": "The segment container.",
              "nullable": true
            }
          },
          {
            "name": "segmentLength",
            "in": "query",
            "description": "The segment length.",
            "schema": {
              "type": "integer",
              "description": "The segment length.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "minSegments",
            "in": "query",
            "description": "The minimum number of segments.",
            "schema": {
              "type": "integer",
              "description": "The minimum number of segments.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "mediaSourceId",
            "in": "query",
            "description": "The media version id, if playing an alternate version.",
            "schema": {
              "type": "string",
              "description": "The media version id, if playing an alternate version.",
              "nullable": true
            }
          },
          {
            "name": "deviceId",
            "in": "query",
            "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
            "schema": {
              "type": "string",
              "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
              "nullable": true
            }
          },
          {
            "name": "audioCodec",
            "in": "query",
            "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
              "nullable": true
            }
          },
          {
            "name": "enableAutoStreamCopy",
            "in": "query",
            "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
              "nullable": true
            }
          },
          {
            "name": "allowVideoStreamCopy",
            "in": "query",
            "description": "Whether or not to allow copying of the video stream url.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow copying of the video stream url.",
              "nullable": true
            }
          },
          {
            "name": "allowAudioStreamCopy",
            "in": "query",
            "description": "Whether or not to allow copying of the audio stream url.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow copying of the audio stream url.",
              "nullable": true
            }
          },
          {
            "name": "breakOnNonKeyFrames",
            "in": "query",
            "description": "Optional. Whether to break on non key frames.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to break on non key frames.",
              "nullable": true
            }
          },
          {
            "name": "audioSampleRate",
            "in": "query",
            "description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxAudioBitDepth",
            "in": "query",
            "description": "Optional. The maximum audio bit depth.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum audio bit depth.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "audioBitRate",
            "in": "query",
            "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "audioChannels",
            "in": "query",
            "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxAudioChannels",
            "in": "query",
            "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "profile",
            "in": "query",
            "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
              "nullable": true
            }
          },
          {
            "name": "level",
            "in": "query",
            "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
              "nullable": true
            }
          },
          {
            "name": "framerate",
            "in": "query",
            "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
            "schema": {
              "type": "number",
              "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
              "format": "float",
              "nullable": true
            }
          },
          {
            "name": "maxFramerate",
            "in": "query",
            "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
            "schema": {
              "type": "number",
              "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
              "format": "float",
              "nullable": true
            }
          },
          {
            "name": "copyTimestamps",
            "in": "query",
            "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
              "nullable": true
            }
          },
          {
            "name": "startTimeTicks",
            "in": "query",
            "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "Optional. The fixed horizontal resolution of the encoded video.",
            "schema": {
              "type": "integer",
              "description": "Optional. The fixed horizontal resolution of the encoded video.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "Optional. The fixed vertical resolution of the encoded video.",
            "schema": {
              "type": "integer",
              "description": "Optional. The fixed vertical resolution of the encoded video.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "videoBitRate",
            "in": "query",
            "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "subtitleStreamIndex",
            "in": "query",
            "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "subtitleMethod",
            "in": "query",
            "description": "Optional. Specify the subtitle delivery method.",
            "schema": {
              "$ref": "#/components/schemas/SubtitleDeliveryMethod"
            }
          },
          {
            "name": "maxRefFrames",
            "in": "query",
            "description": "Optional.",
            "schema": {
              "type": "integer",
              "description": "Optional.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxVideoBitDepth",
            "in": "query",
            "description": "Optional. The maximum video bit depth.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum video bit depth.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "requireAvc",
            "in": "query",
            "description": "Optional. Whether to require avc.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to require avc.",
              "nullable": true
            }
          },
          {
            "name": "deInterlace",
            "in": "query",
            "description": "Optional. Whether to deinterlace the video.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to deinterlace the video.",
              "nullable": true
            }
          },
          {
            "name": "requireNonAnamorphic",
            "in": "query",
            "description": "Optional. Whether to require a non anamorphic stream.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to require a non anamorphic stream.",
              "nullable": true
            }
          },
          {
            "name": "transcodingMaxAudioChannels",
            "in": "query",
            "description": "Optional. The maximum number of audio channels to transcode.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of audio channels to transcode.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cpuCoreLimit",
            "in": "query",
            "description": "Optional. The limit of how many cpu cores to use.",
            "schema": {
              "type": "integer",
              "description": "Optional. The limit of how many cpu cores to use.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "liveStreamId",
            "in": "query",
            "description": "The live stream id.",
            "schema": {
              "type": "string",
              "description": "The live stream id.",
              "nullable": true
            }
          },
          {
            "name": "enableMpegtsM2TsMode",
            "in": "query",
            "description": "Optional. Whether to enable the MpegtsM2Ts mode.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to enable the MpegtsM2Ts mode.",
              "nullable": true
            }
          },
          {
            "name": "videoCodec",
            "in": "query",
            "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.",
              "nullable": true
            }
          },
          {
            "name": "subtitleCodec",
            "in": "query",
            "description": "Optional. Specify a subtitle codec to encode to.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a subtitle codec to encode to.",
              "nullable": true
            }
          },
          {
            "name": "transcodeReasons",
            "in": "query",
            "description": "Optional. The transcoding reason.",
            "schema": {
              "type": "string",
              "description": "Optional. The transcoding reason.",
              "nullable": true
            }
          },
          {
            "name": "audioStreamIndex",
            "in": "query",
            "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "videoStreamIndex",
            "in": "query",
            "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "context",
            "in": "query",
            "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.",
            "schema": {
              "$ref": "#/components/schemas/EncodingContext"
            }
          },
          {
            "name": "streamOptions",
            "in": "query",
            "description": "Optional. The streaming options.",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              },
              "description": "Optional. The streaming options.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Audio stream returned.",
            "content": {
              "audio/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        }
      },
      "head": {
        "tags": [
          "Audio"
        ],
        "summary": "Gets an audio stream.",
        "operationId": "HeadAudioStream",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "container",
            "in": "query",
            "description": "The audio container.",
            "schema": {
              "type": "string",
              "description": "The audio container.",
              "nullable": true
            }
          },
          {
            "name": "static",
            "in": "query",
            "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
            "schema": {
              "type": "boolean",
              "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
              "nullable": true
            }
          },
          {
            "name": "params",
            "in": "query",
            "description": "The streaming parameters.",
            "schema": {
              "type": "string",
              "description": "The streaming parameters.",
              "nullable": true
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "The tag.",
            "schema": {
              "type": "string",
              "description": "The tag.",
              "nullable": true
            }
          },
          {
            "name": "deviceProfileId",
            "in": "query",
            "description": "Optional. The dlna device profile id to utilize.",
            "schema": {
              "type": "string",
              "description": "Optional. The dlna device profile id to utilize.",
              "nullable": true
            }
          },
          {
            "name": "playSessionId",
            "in": "query",
            "description": "The play session id.",
            "schema": {
              "type": "string",
              "description": "The play session id.",
              "nullable": true
            }
          },
          {
            "name": "segmentContainer",
            "in": "query",
            "description": "The segment container.",
            "schema": {
              "type": "string",
              "description": "The segment container.",
              "nullable": true
            }
          },
          {
            "name": "segmentLength",
            "in": "query",
            "description": "The segment length.",
            "schema": {
              "type": "integer",
              "description": "The segment length.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "minSegments",
            "in": "query",
            "description": "The minimum number of segments.",
            "schema": {
              "type": "integer",
              "description": "The minimum number of segments.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "mediaSourceId",
            "in": "query",
            "description": "The media version id, if playing an alternate version.",
            "schema": {
              "type": "string",
              "description": "The media version id, if playing an alternate version.",
              "nullable": true
            }
          },
          {
            "name": "deviceId",
            "in": "query",
            "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
            "schema": {
              "type": "string",
              "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
              "nullable": true
            }
          },
          {
            "name": "audioCodec",
            "in": "query",
            "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
              "nullable": true
            }
          },
          {
            "name": "enableAutoStreamCopy",
            "in": "query",
            "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
              "nullable": true
            }
          },
          {
            "name": "allowVideoStreamCopy",
            "in": "query",
            "description": "Whether or not to allow copying of the video stream url.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow copying of the video stream url.",
              "nullable": true
            }
          },
          {
            "name": "allowAudioStreamCopy",
            "in": "query",
            "description": "Whether or not to allow copying of the audio stream url.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow copying of the audio stream url.",
              "nullable": true
            }
          },
          {
            "name": "breakOnNonKeyFrames",
            "in": "query",
            "description": "Optional. Whether to break on non key frames.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to break on non key frames.",
              "nullable": true
            }
          },
          {
            "name": "audioSampleRate",
            "in": "query",
            "description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxAudioBitDepth",
            "in": "query",
            "description": "Optional. The maximum audio bit depth.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum audio bit depth.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "audioBitRate",
            "in": "query",
            "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "audioChannels",
            "in": "query",
            "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxAudioChannels",
            "in": "query",
            "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "profile",
            "in": "query",
            "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
              "nullable": true
            }
          },
          {
            "name": "level",
            "in": "query",
            "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
              "nullable": true
            }
          },
          {
            "name": "framerate",
            "in": "query",
            "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
            "schema": {
              "type": "number",
              "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
              "format": "float",
              "nullable": true
            }
          },
          {
            "name": "maxFramerate",
            "in": "query",
            "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
            "schema": {
              "type": "number",
              "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
              "format": "float",
              "nullable": true
            }
          },
          {
            "name": "copyTimestamps",
            "in": "query",
            "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
              "nullable": true
            }
          },
          {
            "name": "startTimeTicks",
            "in": "query",
            "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "Optional. The fixed horizontal resolution of the encoded video.",
            "schema": {
              "type": "integer",
              "description": "Optional. The fixed horizontal resolution of the encoded video.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "Optional. The fixed vertical resolution of the encoded video.",
            "schema": {
              "type": "integer",
              "description": "Optional. The fixed vertical resolution of the encoded video.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "videoBitRate",
            "in": "query",
            "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "subtitleStreamIndex",
            "in": "query",
            "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "subtitleMethod",
            "in": "query",
            "description": "Optional. Specify the subtitle delivery method.",
            "schema": {
              "$ref": "#/components/schemas/SubtitleDeliveryMethod"
            }
          },
          {
            "name": "maxRefFrames",
            "in": "query",
            "description": "Optional.",
            "schema": {
              "type": "integer",
              "description": "Optional.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxVideoBitDepth",
            "in": "query",
            "description": "Optional. The maximum video bit depth.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum video bit depth.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "requireAvc",
            "in": "query",
            "description": "Optional. Whether to require avc.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to require avc.",
              "nullable": true
            }
          },
          {
            "name": "deInterlace",
            "in": "query",
            "description": "Optional. Whether to deinterlace the video.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to deinterlace the video.",
              "nullable": true
            }
          },
          {
            "name": "requireNonAnamorphic",
            "in": "query",
            "description": "Optional. Whether to require a non anamorphic stream.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to require a non anamorphic stream.",
              "nullable": true
            }
          },
          {
            "name": "transcodingMaxAudioChannels",
            "in": "query",
            "description": "Optional. The maximum number of audio channels to transcode.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of audio channels to transcode.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cpuCoreLimit",
            "in": "query",
            "description": "Optional. The limit of how many cpu cores to use.",
            "schema": {
              "type": "integer",
              "description": "Optional. The limit of how many cpu cores to use.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "liveStreamId",
            "in": "query",
            "description": "The live stream id.",
            "schema": {
              "type": "string",
              "description": "The live stream id.",
              "nullable": true
            }
          },
          {
            "name": "enableMpegtsM2TsMode",
            "in": "query",
            "description": "Optional. Whether to enable the MpegtsM2Ts mode.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to enable the MpegtsM2Ts mode.",
              "nullable": true
            }
          },
          {
            "name": "videoCodec",
            "in": "query",
            "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.",
              "nullable": true
            }
          },
          {
            "name": "subtitleCodec",
            "in": "query",
            "description": "Optional. Specify a subtitle codec to encode to.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a subtitle codec to encode to.",
              "nullable": true
            }
          },
          {
            "name": "transcodeReasons",
            "in": "query",
            "description": "Optional. The transcoding reason.",
            "schema": {
              "type": "string",
              "description": "Optional. The transcoding reason.",
              "nullable": true
            }
          },
          {
            "name": "audioStreamIndex",
            "in": "query",
            "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "videoStreamIndex",
            "in": "query",
            "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "context",
            "in": "query",
            "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.",
            "schema": {
              "$ref": "#/components/schemas/EncodingContext"
            }
          },
          {
            "name": "streamOptions",
            "in": "query",
            "description": "Optional. The streaming options.",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              },
              "description": "Optional. The streaming options.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Audio stream returned.",
            "content": {
              "audio/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        }
      }
    },
    "/Audio/{itemId}/stream.{container}": {
      "get": {
        "tags": [
          "Audio"
        ],
        "summary": "Gets an audio stream.",
        "operationId": "GetAudioStreamByContainer",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "container",
            "in": "path",
            "description": "The audio container.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The audio container."
            }
          },
          {
            "name": "static",
            "in": "query",
            "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
            "schema": {
              "type": "boolean",
              "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
              "nullable": true
            }
          },
          {
            "name": "params",
            "in": "query",
            "description": "The streaming parameters.",
            "schema": {
              "type": "string",
              "description": "The streaming parameters.",
              "nullable": true
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "The tag.",
            "schema": {
              "type": "string",
              "description": "The tag.",
              "nullable": true
            }
          },
          {
            "name": "deviceProfileId",
            "in": "query",
            "description": "Optional. The dlna device profile id to utilize.",
            "schema": {
              "type": "string",
              "description": "Optional. The dlna device profile id to utilize.",
              "nullable": true
            }
          },
          {
            "name": "playSessionId",
            "in": "query",
            "description": "The play session id.",
            "schema": {
              "type": "string",
              "description": "The play session id.",
              "nullable": true
            }
          },
          {
            "name": "segmentContainer",
            "in": "query",
            "description": "The segment container.",
            "schema": {
              "type": "string",
              "description": "The segment container.",
              "nullable": true
            }
          },
          {
            "name": "segmentLength",
            "in": "query",
            "description": "The segment lenght.",
            "schema": {
              "type": "integer",
              "description": "The segment lenght.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "minSegments",
            "in": "query",
            "description": "The minimum number of segments.",
            "schema": {
              "type": "integer",
              "description": "The minimum number of segments.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "mediaSourceId",
            "in": "query",
            "description": "The media version id, if playing an alternate version.",
            "schema": {
              "type": "string",
              "description": "The media version id, if playing an alternate version.",
              "nullable": true
            }
          },
          {
            "name": "deviceId",
            "in": "query",
            "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
            "schema": {
              "type": "string",
              "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
              "nullable": true
            }
          },
          {
            "name": "audioCodec",
            "in": "query",
            "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
              "nullable": true
            }
          },
          {
            "name": "enableAutoStreamCopy",
            "in": "query",
            "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
              "nullable": true
            }
          },
          {
            "name": "allowVideoStreamCopy",
            "in": "query",
            "description": "Whether or not to allow copying of the video stream url.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow copying of the video stream url.",
              "nullable": true
            }
          },
          {
            "name": "allowAudioStreamCopy",
            "in": "query",
            "description": "Whether or not to allow copying of the audio stream url.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow copying of the audio stream url.",
              "nullable": true
            }
          },
          {
            "name": "breakOnNonKeyFrames",
            "in": "query",
            "description": "Optional. Whether to break on non key frames.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to break on non key frames.",
              "nullable": true
            }
          },
          {
            "name": "audioSampleRate",
            "in": "query",
            "description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxAudioBitDepth",
            "in": "query",
            "description": "Optional. The maximum audio bit depth.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum audio bit depth.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "audioBitRate",
            "in": "query",
            "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "audioChannels",
            "in": "query",
            "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxAudioChannels",
            "in": "query",
            "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "profile",
            "in": "query",
            "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
              "nullable": true
            }
          },
          {
            "name": "level",
            "in": "query",
            "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
              "nullable": true
            }
          },
          {
            "name": "framerate",
            "in": "query",
            "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
            "schema": {
              "type": "number",
              "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
              "format": "float",
              "nullable": true
            }
          },
          {
            "name": "maxFramerate",
            "in": "query",
            "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
            "schema": {
              "type": "number",
              "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
              "format": "float",
              "nullable": true
            }
          },
          {
            "name": "copyTimestamps",
            "in": "query",
            "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
              "nullable": true
            }
          },
          {
            "name": "startTimeTicks",
            "in": "query",
            "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "Optional. The fixed horizontal resolution of the encoded video.",
            "schema": {
              "type": "integer",
              "description": "Optional. The fixed horizontal resolution of the encoded video.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "Optional. The fixed vertical resolution of the encoded video.",
            "schema": {
              "type": "integer",
              "description": "Optional. The fixed vertical resolution of the encoded video.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "videoBitRate",
            "in": "query",
            "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "subtitleStreamIndex",
            "in": "query",
            "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "subtitleMethod",
            "in": "query",
            "description": "Optional. Specify the subtitle delivery method.",
            "schema": {
              "$ref": "#/components/schemas/SubtitleDeliveryMethod"
            }
          },
          {
            "name": "maxRefFrames",
            "in": "query",
            "description": "Optional.",
            "schema": {
              "type": "integer",
              "description": "Optional.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxVideoBitDepth",
            "in": "query",
            "description": "Optional. The maximum video bit depth.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum video bit depth.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "requireAvc",
            "in": "query",
            "description": "Optional. Whether to require avc.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to require avc.",
              "nullable": true
            }
          },
          {
            "name": "deInterlace",
            "in": "query",
            "description": "Optional. Whether to deinterlace the video.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to deinterlace the video.",
              "nullable": true
            }
          },
          {
            "name": "requireNonAnamorphic",
            "in": "query",
            "description": "Optional. Whether to require a non anamporphic stream.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to require a non anamporphic stream.",
              "nullable": true
            }
          },
          {
            "name": "transcodingMaxAudioChannels",
            "in": "query",
            "description": "Optional. The maximum number of audio channels to transcode.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of audio channels to transcode.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cpuCoreLimit",
            "in": "query",
            "description": "Optional. The limit of how many cpu cores to use.",
            "schema": {
              "type": "integer",
              "description": "Optional. The limit of how many cpu cores to use.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "liveStreamId",
            "in": "query",
            "description": "The live stream id.",
            "schema": {
              "type": "string",
              "description": "The live stream id.",
              "nullable": true
            }
          },
          {
            "name": "enableMpegtsM2TsMode",
            "in": "query",
            "description": "Optional. Whether to enable the MpegtsM2Ts mode.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to enable the MpegtsM2Ts mode.",
              "nullable": true
            }
          },
          {
            "name": "videoCodec",
            "in": "query",
            "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.",
              "nullable": true
            }
          },
          {
            "name": "subtitleCodec",
            "in": "query",
            "description": "Optional. Specify a subtitle codec to encode to.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a subtitle codec to encode to.",
              "nullable": true
            }
          },
          {
            "name": "transcodeReasons",
            "in": "query",
            "description": "Optional. The transcoding reason.",
            "schema": {
              "type": "string",
              "description": "Optional. The transcoding reason.",
              "nullable": true
            }
          },
          {
            "name": "audioStreamIndex",
            "in": "query",
            "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "videoStreamIndex",
            "in": "query",
            "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "context",
            "in": "query",
            "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.",
            "schema": {
              "$ref": "#/components/schemas/EncodingContext"
            }
          },
          {
            "name": "streamOptions",
            "in": "query",
            "description": "Optional. The streaming options.",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              },
              "description": "Optional. The streaming options.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Audio stream returned.",
            "content": {
              "audio/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        }
      },
      "head": {
        "tags": [
          "Audio"
        ],
        "summary": "Gets an audio stream.",
        "operationId": "HeadAudioStreamByContainer",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "container",
            "in": "path",
            "description": "The audio container.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The audio container."
            }
          },
          {
            "name": "static",
            "in": "query",
            "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
            "schema": {
              "type": "boolean",
              "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
              "nullable": true
            }
          },
          {
            "name": "params",
            "in": "query",
            "description": "The streaming parameters.",
            "schema": {
              "type": "string",
              "description": "The streaming parameters.",
              "nullable": true
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "The tag.",
            "schema": {
              "type": "string",
              "description": "The tag.",
              "nullable": true
            }
          },
          {
            "name": "deviceProfileId",
            "in": "query",
            "description": "Optional. The dlna device profile id to utilize.",
            "schema": {
              "type": "string",
              "description": "Optional. The dlna device profile id to utilize.",
              "nullable": true
            }
          },
          {
            "name": "playSessionId",
            "in": "query",
            "description": "The play session id.",
            "schema": {
              "type": "string",
              "description": "The play session id.",
              "nullable": true
            }
          },
          {
            "name": "segmentContainer",
            "in": "query",
            "description": "The segment container.",
            "schema": {
              "type": "string",
              "description": "The segment container.",
              "nullable": true
            }
          },
          {
            "name": "segmentLength",
            "in": "query",
            "description": "The segment lenght.",
            "schema": {
              "type": "integer",
              "description": "The segment lenght.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "minSegments",
            "in": "query",
            "description": "The minimum number of segments.",
            "schema": {
              "type": "integer",
              "description": "The minimum number of segments.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "mediaSourceId",
            "in": "query",
            "description": "The media version id, if playing an alternate version.",
            "schema": {
              "type": "string",
              "description": "The media version id, if playing an alternate version.",
              "nullable": true
            }
          },
          {
            "name": "deviceId",
            "in": "query",
            "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
            "schema": {
              "type": "string",
              "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
              "nullable": true
            }
          },
          {
            "name": "audioCodec",
            "in": "query",
            "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
              "nullable": true
            }
          },
          {
            "name": "enableAutoStreamCopy",
            "in": "query",
            "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
              "nullable": true
            }
          },
          {
            "name": "allowVideoStreamCopy",
            "in": "query",
            "description": "Whether or not to allow copying of the video stream url.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow copying of the video stream url.",
              "nullable": true
            }
          },
          {
            "name": "allowAudioStreamCopy",
            "in": "query",
            "description": "Whether or not to allow copying of the audio stream url.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow copying of the audio stream url.",
              "nullable": true
            }
          },
          {
            "name": "breakOnNonKeyFrames",
            "in": "query",
            "description": "Optional. Whether to break on non key frames.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to break on non key frames.",
              "nullable": true
            }
          },
          {
            "name": "audioSampleRate",
            "in": "query",
            "description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxAudioBitDepth",
            "in": "query",
            "description": "Optional. The maximum audio bit depth.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum audio bit depth.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "audioBitRate",
            "in": "query",
            "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "audioChannels",
            "in": "query",
            "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxAudioChannels",
            "in": "query",
            "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "profile",
            "in": "query",
            "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
              "nullable": true
            }
          },
          {
            "name": "level",
            "in": "query",
            "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
              "nullable": true
            }
          },
          {
            "name": "framerate",
            "in": "query",
            "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
            "schema": {
              "type": "number",
              "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
              "format": "float",
              "nullable": true
            }
          },
          {
            "name": "maxFramerate",
            "in": "query",
            "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
            "schema": {
              "type": "number",
              "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
              "format": "float",
              "nullable": true
            }
          },
          {
            "name": "copyTimestamps",
            "in": "query",
            "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
              "nullable": true
            }
          },
          {
            "name": "startTimeTicks",
            "in": "query",
            "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "Optional. The fixed horizontal resolution of the encoded video.",
            "schema": {
              "type": "integer",
              "description": "Optional. The fixed horizontal resolution of the encoded video.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "Optional. The fixed vertical resolution of the encoded video.",
            "schema": {
              "type": "integer",
              "description": "Optional. The fixed vertical resolution of the encoded video.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "videoBitRate",
            "in": "query",
            "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "subtitleStreamIndex",
            "in": "query",
            "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "subtitleMethod",
            "in": "query",
            "description": "Optional. Specify the subtitle delivery method.",
            "schema": {
              "$ref": "#/components/schemas/SubtitleDeliveryMethod"
            }
          },
          {
            "name": "maxRefFrames",
            "in": "query",
            "description": "Optional.",
            "schema": {
              "type": "integer",
              "description": "Optional.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxVideoBitDepth",
            "in": "query",
            "description": "Optional. The maximum video bit depth.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum video bit depth.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "requireAvc",
            "in": "query",
            "description": "Optional. Whether to require avc.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to require avc.",
              "nullable": true
            }
          },
          {
            "name": "deInterlace",
            "in": "query",
            "description": "Optional. Whether to deinterlace the video.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to deinterlace the video.",
              "nullable": true
            }
          },
          {
            "name": "requireNonAnamorphic",
            "in": "query",
            "description": "Optional. Whether to require a non anamporphic stream.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to require a non anamporphic stream.",
              "nullable": true
            }
          },
          {
            "name": "transcodingMaxAudioChannels",
            "in": "query",
            "description": "Optional. The maximum number of audio channels to transcode.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of audio channels to transcode.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cpuCoreLimit",
            "in": "query",
            "description": "Optional. The limit of how many cpu cores to use.",
            "schema": {
              "type": "integer",
              "description": "Optional. The limit of how many cpu cores to use.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "liveStreamId",
            "in": "query",
            "description": "The live stream id.",
            "schema": {
              "type": "string",
              "description": "The live stream id.",
              "nullable": true
            }
          },
          {
            "name": "enableMpegtsM2TsMode",
            "in": "query",
            "description": "Optional. Whether to enable the MpegtsM2Ts mode.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to enable the MpegtsM2Ts mode.",
              "nullable": true
            }
          },
          {
            "name": "videoCodec",
            "in": "query",
            "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.",
              "nullable": true
            }
          },
          {
            "name": "subtitleCodec",
            "in": "query",
            "description": "Optional. Specify a subtitle codec to encode to.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a subtitle codec to encode to.",
              "nullable": true
            }
          },
          {
            "name": "transcodeReasons",
            "in": "query",
            "description": "Optional. The transcoding reason.",
            "schema": {
              "type": "string",
              "description": "Optional. The transcoding reason.",
              "nullable": true
            }
          },
          {
            "name": "audioStreamIndex",
            "in": "query",
            "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "videoStreamIndex",
            "in": "query",
            "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "context",
            "in": "query",
            "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.",
            "schema": {
              "$ref": "#/components/schemas/EncodingContext"
            }
          },
          {
            "name": "streamOptions",
            "in": "query",
            "description": "Optional. The streaming options.",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              },
              "description": "Optional. The streaming options.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Audio stream returned.",
            "content": {
              "audio/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        }
      }
    },
    "/Branding/Configuration": {
      "get": {
        "tags": [
          "Branding"
        ],
        "summary": "Gets branding configuration.",
        "operationId": "GetBrandingOptions",
        "responses": {
          "200": {
            "description": "Branding configuration returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BrandingOptions"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BrandingOptions"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BrandingOptions"
                }
              }
            }
          }
        }
      }
    },
    "/Branding/Css": {
      "get": {
        "tags": [
          "Branding"
        ],
        "summary": "Gets branding css.",
        "operationId": "GetBrandingCss",
        "responses": {
          "200": {
            "description": "Branding css returned.",
            "content": {
              "text/css": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "204": {
            "description": "No branding css configured."
          }
        }
      }
    },
    "/Branding/Css.css": {
      "get": {
        "tags": [
          "Branding"
        ],
        "summary": "Gets branding css.",
        "operationId": "GetBrandingCss_2",
        "responses": {
          "200": {
            "description": "Branding css returned.",
            "content": {
              "text/css": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "204": {
            "description": "No branding css configured."
          }
        }
      }
    },
    "/Channels": {
      "get": {
        "tags": [
          "Channels"
        ],
        "summary": "Gets available channels.",
        "operationId": "GetChannels",
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "description": "User Id to filter by. Use System.Guid.Empty to not filter by user.",
            "schema": {
              "type": "string",
              "description": "User Id to filter by. Use System.Guid.Empty to not filter by user.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "startIndex",
            "in": "query",
            "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
            "schema": {
              "type": "integer",
              "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Optional. The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of records to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "supportsLatestItems",
            "in": "query",
            "description": "Optional. Filter by channels that support getting latest items.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter by channels that support getting latest items.",
              "nullable": true
            }
          },
          {
            "name": "supportsMediaDeletion",
            "in": "query",
            "description": "Optional. Filter by channels that support media deletion.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter by channels that support media deletion.",
              "nullable": true
            }
          },
          {
            "name": "isFavorite",
            "in": "query",
            "description": "Optional. Filter by channels that are favorite.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter by channels that are favorite.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Channels returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Channels/{channelId}/Features": {
      "get": {
        "tags": [
          "Channels"
        ],
        "summary": "Get channel features.",
        "operationId": "GetChannelFeatures",
        "parameters": [
          {
            "name": "channelId",
            "in": "path",
            "description": "Channel id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Channel id.",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Channel features returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChannelFeatures"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ChannelFeatures"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ChannelFeatures"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Channels/{channelId}/Items": {
      "get": {
        "tags": [
          "Channels"
        ],
        "summary": "Get channel items.",
        "operationId": "GetChannelItems",
        "parameters": [
          {
            "name": "channelId",
            "in": "path",
            "description": "Channel Id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Channel Id.",
              "format": "uuid"
            }
          },
          {
            "name": "folderId",
            "in": "query",
            "description": "Optional. Folder Id.",
            "schema": {
              "type": "string",
              "description": "Optional. Folder Id.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. User Id.",
            "schema": {
              "type": "string",
              "description": "Optional. User Id.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "startIndex",
            "in": "query",
            "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
            "schema": {
              "type": "integer",
              "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Optional. The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of records to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "sortOrder",
            "in": "query",
            "description": "Optional. Sort Order - Ascending,Descending.",
            "schema": {
              "type": "string",
              "description": "Optional. Sort Order - Ascending,Descending.",
              "nullable": true
            }
          },
          {
            "name": "filters",
            "in": "query",
            "description": "Optional. Specify additional filters to apply.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFilter"
              },
              "description": "Optional. Specify additional filters to apply.",
              "nullable": true
            }
          },
          {
            "name": "sortBy",
            "in": "query",
            "description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.",
              "nullable": true
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional. Specify additional fields of information to return in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFields"
              },
              "description": "Optional. Specify additional fields of information to return in the output.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Channel items returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Channels/Features": {
      "get": {
        "tags": [
          "Channels"
        ],
        "summary": "Get all channel features.",
        "operationId": "GetAllChannelFeatures",
        "responses": {
          "200": {
            "description": "All channel features returned.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ChannelFeatures"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ChannelFeatures"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ChannelFeatures"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Channels/Items/Latest": {
      "get": {
        "tags": [
          "Channels"
        ],
        "summary": "Gets latest channel items.",
        "operationId": "GetLatestChannelItems",
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. User Id.",
            "schema": {
              "type": "string",
              "description": "Optional. User Id.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "startIndex",
            "in": "query",
            "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
            "schema": {
              "type": "integer",
              "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Optional. The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of records to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "filters",
            "in": "query",
            "description": "Optional. Specify additional filters to apply.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFilter"
              },
              "description": "Optional. Specify additional filters to apply.",
              "nullable": true
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional. Specify additional fields of information to return in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFields"
              },
              "description": "Optional. Specify additional fields of information to return in the output.",
              "nullable": true
            }
          },
          {
            "name": "channelIds",
            "in": "query",
            "description": "Optional. Specify one or more channel id's, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Optional. Specify one or more channel id's, comma delimited.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Latest channel items returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Collections": {
      "post": {
        "tags": [
          "Collection"
        ],
        "summary": "Creates a new collection.",
        "operationId": "CreateCollection",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "description": "The name of the collection.",
            "schema": {
              "type": "string",
              "description": "The name of the collection.",
              "nullable": true
            }
          },
          {
            "name": "ids",
            "in": "query",
            "description": "Item Ids to add to the collection.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Item Ids to add to the collection.",
              "nullable": true
            }
          },
          {
            "name": "parentId",
            "in": "query",
            "description": "Optional. Create the collection within a specific folder.",
            "schema": {
              "type": "string",
              "description": "Optional. Create the collection within a specific folder.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "isLocked",
            "in": "query",
            "description": "Whether or not to lock the new collection.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to lock the new collection.",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Collection created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CollectionCreationResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/CollectionCreationResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/CollectionCreationResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Collections/{collectionId}/Items": {
      "post": {
        "tags": [
          "Collection"
        ],
        "summary": "Adds items to a collection.",
        "operationId": "AddToCollection",
        "parameters": [
          {
            "name": "collectionId",
            "in": "path",
            "description": "The collection id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The collection id.",
              "format": "uuid"
            }
          },
          {
            "name": "ids",
            "in": "query",
            "description": "Item ids, comma delimited.",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Item ids, comma delimited."
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Items added to collection."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Collection"
        ],
        "summary": "Removes items from a collection.",
        "operationId": "RemoveFromCollection",
        "parameters": [
          {
            "name": "collectionId",
            "in": "path",
            "description": "The collection id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The collection id.",
              "format": "uuid"
            }
          },
          {
            "name": "ids",
            "in": "query",
            "description": "Item ids, comma delimited.",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Item ids, comma delimited."
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Items removed from collection."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/System/Configuration": {
      "get": {
        "tags": [
          "Configuration"
        ],
        "summary": "Gets application configuration.",
        "operationId": "GetConfiguration",
        "responses": {
          "200": {
            "description": "Application configuration returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerConfiguration"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ServerConfiguration"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ServerConfiguration"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "Configuration"
        ],
        "summary": "Updates application configuration.",
        "operationId": "UpdateConfiguration",
        "requestBody": {
          "description": "Configuration.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ServerConfiguration"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ServerConfiguration"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ServerConfiguration"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Configuration updated."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation",
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/System/Configuration/{key}": {
      "get": {
        "tags": [
          "Configuration"
        ],
        "summary": "Gets a named configuration.",
        "operationId": "GetNamedConfiguration",
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "description": "Configuration key.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Configuration key."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Configuration returned.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "Configuration"
        ],
        "summary": "Updates named configuration.",
        "operationId": "UpdateNamedConfiguration",
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "description": "Configuration key.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Configuration key."
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Named configuration updated."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation",
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/System/Configuration/MetadataOptions/Default": {
      "get": {
        "tags": [
          "Configuration"
        ],
        "summary": "Gets a default MetadataOptions object.",
        "operationId": "GetDefaultMetadataOptions",
        "responses": {
          "200": {
            "description": "Metadata options returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetadataOptions"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/MetadataOptions"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/MetadataOptions"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation",
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/System/MediaEncoder/Path": {
      "post": {
        "tags": [
          "Configuration"
        ],
        "summary": "Updates the path to the media encoder.",
        "operationId": "UpdateMediaEncoderPath",
        "requestBody": {
          "description": "Media encoder path form body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MediaEncoderPathDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MediaEncoderPathDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MediaEncoderPathDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Media encoder path updated."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "FirstTimeSetupOrElevated",
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/web/ConfigurationPage": {
      "get": {
        "tags": [
          "Dashboard"
        ],
        "summary": "Gets a dashboard configuration page.",
        "operationId": "GetDashboardConfigurationPage",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "description": "The name of the page.",
            "schema": {
              "type": "string",
              "description": "The name of the page.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "ConfigurationPage returned.",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              },
              "application/x-javascript": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Plugin configuration page not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/web/ConfigurationPages": {
      "get": {
        "tags": [
          "Dashboard"
        ],
        "summary": "Gets the configuration pages.",
        "operationId": "GetConfigurationPages",
        "parameters": [
          {
            "name": "enableInMainMenu",
            "in": "query",
            "description": "Whether to enable in the main menu.",
            "schema": {
              "type": "boolean",
              "description": "Whether to enable in the main menu.",
              "nullable": true
            }
          },
          {
            "name": "pageType",
            "in": "query",
            "description": "The Jellyfin.Api.Models.ConfigurationPageInfo.",
            "schema": {
              "$ref": "#/components/schemas/ConfigurationPageType"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "ConfigurationPages returned.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConfigurationPageInfo"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConfigurationPageInfo"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConfigurationPageInfo"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Server still loading.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/Devices": {
      "get": {
        "tags": [
          "Devices"
        ],
        "summary": "Get Devices.",
        "operationId": "GetDevices",
        "parameters": [
          {
            "name": "supportsSync",
            "in": "query",
            "description": "Gets or sets a value indicating whether [supports synchronize].",
            "schema": {
              "type": "boolean",
              "description": "Gets or sets a value indicating whether [supports synchronize].",
              "nullable": true
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "Gets or sets the user identifier.",
            "schema": {
              "type": "string",
              "description": "Gets or sets the user identifier.",
              "format": "uuid",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Devices retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceInfoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceInfoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceInfoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Devices"
        ],
        "summary": "Deletes a device.",
        "operationId": "DeleteDevice",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "Device Id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Device Id."
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Device deleted."
          },
          "404": {
            "description": "Device not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      }
    },
    "/Devices/Info": {
      "get": {
        "tags": [
          "Devices"
        ],
        "summary": "Get info for a device.",
        "operationId": "GetDeviceInfo",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "Device Id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Device Id."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Device info retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceInfo"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceInfo"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceInfo"
                }
              }
            }
          },
          "404": {
            "description": "Device not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      }
    },
    "/Devices/Options": {
      "get": {
        "tags": [
          "Devices"
        ],
        "summary": "Get options for a device.",
        "operationId": "GetDeviceOptions",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "Device Id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Device Id."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Device options retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceOptions"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceOptions"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceOptions"
                }
              }
            }
          },
          "404": {
            "description": "Device not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "Devices"
        ],
        "summary": "Update device options.",
        "operationId": "UpdateDeviceOptions",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "Device Id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Device Id."
            }
          }
        ],
        "requestBody": {
          "description": "Device Options.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceOptions"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceOptions"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceOptions"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Device options updated."
          },
          "404": {
            "description": "Device not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      }
    },
    "/DisplayPreferences/{displayPreferencesId}": {
      "get": {
        "tags": [
          "DisplayPreferences"
        ],
        "summary": "Get Display Preferences.",
        "operationId": "GetDisplayPreferences",
        "parameters": [
          {
            "name": "displayPreferencesId",
            "in": "path",
            "description": "Display preferences id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Display preferences id."
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "User id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "User id.",
              "format": "uuid"
            }
          },
          {
            "name": "client",
            "in": "query",
            "description": "Client.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Client."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Display preferences retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisplayPreferencesDto"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/DisplayPreferencesDto"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/DisplayPreferencesDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "DisplayPreferences"
        ],
        "summary": "Update Display Preferences.",
        "operationId": "UpdateDisplayPreferences",
        "parameters": [
          {
            "name": "displayPreferencesId",
            "in": "path",
            "description": "Display preferences id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Display preferences id."
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "User Id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "User Id.",
              "format": "uuid"
            }
          },
          {
            "name": "client",
            "in": "query",
            "description": "Client.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Client."
            }
          }
        ],
        "requestBody": {
          "description": "New Display Preferences object.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DisplayPreferencesDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DisplayPreferencesDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DisplayPreferencesDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Display preferences updated."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Dlna/ProfileInfos": {
      "get": {
        "tags": [
          "Dlna"
        ],
        "summary": "Get profile infos.",
        "operationId": "GetProfileInfos",
        "responses": {
          "200": {
            "description": "Device profile infos returned.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DeviceProfileInfo"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DeviceProfileInfo"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DeviceProfileInfo"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      }
    },
    "/Dlna/Profiles": {
      "post": {
        "tags": [
          "Dlna"
        ],
        "summary": "Creates a profile.",
        "operationId": "CreateProfile",
        "requestBody": {
          "description": "Device profile.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceProfile"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceProfile"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceProfile"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Device profile created."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      }
    },
    "/Dlna/Profiles/{profileId}": {
      "get": {
        "tags": [
          "Dlna"
        ],
        "summary": "Gets a single profile.",
        "operationId": "GetProfile",
        "parameters": [
          {
            "name": "profileId",
            "in": "path",
            "description": "Profile Id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Profile Id."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Device profile returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceProfile"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceProfile"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceProfile"
                }
              }
            }
          },
          "404": {
            "description": "Device profile not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Dlna"
        ],
        "summary": "Deletes a profile.",
        "operationId": "DeleteProfile",
        "parameters": [
          {
            "name": "profileId",
            "in": "path",
            "description": "Profile id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Profile id."
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Device profile deleted."
          },
          "404": {
            "description": "Device profile not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "Dlna"
        ],
        "summary": "Updates a profile.",
        "operationId": "UpdateProfile",
        "parameters": [
          {
            "name": "profileId",
            "in": "path",
            "description": "Profile id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Profile id."
            }
          }
        ],
        "requestBody": {
          "description": "Device profile.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceProfile"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceProfile"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceProfile"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Device profile updated."
          },
          "404": {
            "description": "Device profile not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      }
    },
    "/Dlna/Profiles/Default": {
      "get": {
        "tags": [
          "Dlna"
        ],
        "summary": "Gets the default profile.",
        "operationId": "GetDefaultProfile",
        "responses": {
          "200": {
            "description": "Default device profile returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceProfile"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceProfile"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceProfile"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      }
    },
    "/Dlna/{serverId}/ConnectionManager": {
      "get": {
        "tags": [
          "DlnaServer"
        ],
        "summary": "Gets Dlna media receiver registrar xml.",
        "operationId": "GetConnectionManager",
        "parameters": [
          {
            "name": "serverId",
            "in": "path",
            "description": "Server UUID.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Server UUID."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dlna media receiver registrar xml returned.",
            "content": {
              "text/xml": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "503": {
            "description": "DLNA is disabled."
          }
        }
      }
    },
    "/Dlna/{serverId}/ConnectionManager/ConnectionManager": {
      "get": {
        "tags": [
          "DlnaServer"
        ],
        "summary": "Gets Dlna media receiver registrar xml.",
        "operationId": "GetConnectionManager_2",
        "parameters": [
          {
            "name": "serverId",
            "in": "path",
            "description": "Server UUID.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Server UUID."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dlna media receiver registrar xml returned.",
            "content": {
              "text/xml": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "503": {
            "description": "DLNA is disabled."
          }
        }
      }
    },
    "/Dlna/{serverId}/ConnectionManager/ConnectionManager.xml": {
      "get": {
        "tags": [
          "DlnaServer"
        ],
        "summary": "Gets Dlna media receiver registrar xml.",
        "operationId": "GetConnectionManager_3",
        "parameters": [
          {
            "name": "serverId",
            "in": "path",
            "description": "Server UUID.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Server UUID."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dlna media receiver registrar xml returned.",
            "content": {
              "text/xml": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "503": {
            "description": "DLNA is disabled."
          }
        }
      }
    },
    "/Dlna/{serverId}/ConnectionManager/Control": {
      "post": {
        "tags": [
          "DlnaServer"
        ],
        "summary": "Process a connection manager control request.",
        "operationId": "ProcessConnectionManagerControlRequest",
        "parameters": [
          {
            "name": "serverId",
            "in": "path",
            "description": "Server UUID.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Server UUID."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Request processed.",
            "content": {
              "text/xml": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "503": {
            "description": "DLNA is disabled."
          }
        }
      }
    },
    "/Dlna/{serverId}/ContentDirectory": {
      "get": {
        "tags": [
          "DlnaServer"
        ],
        "summary": "Gets Dlna content directory xml.",
        "operationId": "GetContentDirectory",
        "parameters": [
          {
            "name": "serverId",
            "in": "path",
            "description": "Server UUID.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Server UUID."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dlna content directory returned.",
            "content": {
              "text/xml": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "503": {
            "description": "DLNA is disabled."
          }
        }
      }
    },
    "/Dlna/{serverId}/ContentDirectory/ContentDirectory": {
      "get": {
        "tags": [
          "DlnaServer"
        ],
        "summary": "Gets Dlna content directory xml.",
        "operationId": "GetContentDirectory_2",
        "parameters": [
          {
            "name": "serverId",
            "in": "path",
            "description": "Server UUID.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Server UUID."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dlna content directory returned.",
            "content": {
              "text/xml": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "503": {
            "description": "DLNA is disabled."
          }
        }
      }
    },
    "/Dlna/{serverId}/ContentDirectory/ContentDirectory.xml": {
      "get": {
        "tags": [
          "DlnaServer"
        ],
        "summary": "Gets Dlna content directory xml.",
        "operationId": "GetContentDirectory_3",
        "parameters": [
          {
            "name": "serverId",
            "in": "path",
            "description": "Server UUID.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Server UUID."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dlna content directory returned.",
            "content": {
              "text/xml": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "503": {
            "description": "DLNA is disabled."
          }
        }
      }
    },
    "/Dlna/{serverId}/ContentDirectory/Control": {
      "post": {
        "tags": [
          "DlnaServer"
        ],
        "summary": "Process a content directory control request.",
        "operationId": "ProcessContentDirectoryControlRequest",
        "parameters": [
          {
            "name": "serverId",
            "in": "path",
            "description": "Server UUID.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Server UUID."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Request processed.",
            "content": {
              "text/xml": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "503": {
            "description": "DLNA is disabled."
          }
        }
      }
    },
    "/Dlna/{serverId}/description": {
      "get": {
        "tags": [
          "DlnaServer"
        ],
        "summary": "Get Description Xml.",
        "operationId": "GetDescriptionXml",
        "parameters": [
          {
            "name": "serverId",
            "in": "path",
            "description": "Server UUID.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Server UUID."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Description xml returned.",
            "content": {
              "text/xml": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "503": {
            "description": "DLNA is disabled."
          }
        }
      }
    },
    "/Dlna/{serverId}/description.xml": {
      "get": {
        "tags": [
          "DlnaServer"
        ],
        "summary": "Get Description Xml.",
        "operationId": "GetDescriptionXml_2",
        "parameters": [
          {
            "name": "serverId",
            "in": "path",
            "description": "Server UUID.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Server UUID."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Description xml returned.",
            "content": {
              "text/xml": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "503": {
            "description": "DLNA is disabled."
          }
        }
      }
    },
    "/Dlna/{serverId}/icons/{fileName}": {
      "get": {
        "tags": [
          "DlnaServer"
        ],
        "summary": "Gets a server icon.",
        "operationId": "GetIconId",
        "parameters": [
          {
            "name": "serverId",
            "in": "path",
            "description": "Server UUID.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Server UUID."
            }
          },
          {
            "name": "fileName",
            "in": "path",
            "description": "The icon filename.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The icon filename."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Request processed.",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "DLNA is disabled."
          }
        }
      }
    },
    "/Dlna/{serverId}/MediaReceiverRegistrar": {
      "get": {
        "tags": [
          "DlnaServer"
        ],
        "summary": "Gets Dlna media receiver registrar xml.",
        "operationId": "GetMediaReceiverRegistrar",
        "parameters": [
          {
            "name": "serverId",
            "in": "path",
            "description": "Server UUID.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Server UUID."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dlna media receiver registrar xml returned.",
            "content": {
              "text/xml": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "503": {
            "description": "DLNA is disabled."
          }
        }
      }
    },
    "/Dlna/{serverId}/MediaReceiverRegistrar/Control": {
      "post": {
        "tags": [
          "DlnaServer"
        ],
        "summary": "Process a media receiver registrar control request.",
        "operationId": "ProcessMediaReceiverRegistrarControlRequest",
        "parameters": [
          {
            "name": "serverId",
            "in": "path",
            "description": "Server UUID.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Server UUID."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Request processed.",
            "content": {
              "text/xml": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "503": {
            "description": "DLNA is disabled."
          }
        }
      }
    },
    "/Dlna/{serverId}/MediaReceiverRegistrar/MediaReceiverRegistrar": {
      "get": {
        "tags": [
          "DlnaServer"
        ],
        "summary": "Gets Dlna media receiver registrar xml.",
        "operationId": "GetMediaReceiverRegistrar_2",
        "parameters": [
          {
            "name": "serverId",
            "in": "path",
            "description": "Server UUID.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Server UUID."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dlna media receiver registrar xml returned.",
            "content": {
              "text/xml": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "503": {
            "description": "DLNA is disabled."
          }
        }
      }
    },
    "/Dlna/{serverId}/MediaReceiverRegistrar/MediaReceiverRegistrar.xml": {
      "get": {
        "tags": [
          "DlnaServer"
        ],
        "summary": "Gets Dlna media receiver registrar xml.",
        "operationId": "GetMediaReceiverRegistrar_3",
        "parameters": [
          {
            "name": "serverId",
            "in": "path",
            "description": "Server UUID.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Server UUID."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dlna media receiver registrar xml returned.",
            "content": {
              "text/xml": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "503": {
            "description": "DLNA is disabled."
          }
        }
      }
    },
    "/Dlna/icons/{fileName}": {
      "get": {
        "tags": [
          "DlnaServer"
        ],
        "summary": "Gets a server icon.",
        "operationId": "GetIcon",
        "parameters": [
          {
            "name": "fileName",
            "in": "path",
            "description": "The icon filename.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The icon filename."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Request processed.",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "DLNA is disabled."
          }
        }
      }
    },
    "/Audio/{itemId}/hls1/{playlistId}/{segmentId}.{container}": {
      "get": {
        "tags": [
          "DynamicHls"
        ],
        "summary": "Gets a video stream using HTTP live streaming.",
        "operationId": "GetHlsAudioSegment",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "playlistId",
            "in": "path",
            "description": "The playlist id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The playlist id."
            }
          },
          {
            "name": "segmentId",
            "in": "path",
            "description": "The segment id.",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "The segment id.",
              "format": "int32"
            }
          },
          {
            "name": "container",
            "in": "path",
            "description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv."
            }
          },
          {
            "name": "static",
            "in": "query",
            "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
            "schema": {
              "type": "boolean",
              "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
              "nullable": true
            }
          },
          {
            "name": "params",
            "in": "query",
            "description": "The streaming parameters.",
            "schema": {
              "type": "string",
              "description": "The streaming parameters.",
              "nullable": true
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "The tag.",
            "schema": {
              "type": "string",
              "description": "The tag.",
              "nullable": true
            }
          },
          {
            "name": "deviceProfileId",
            "in": "query",
            "description": "Optional. The dlna device profile id to utilize.",
            "schema": {
              "type": "string",
              "description": "Optional. The dlna device profile id to utilize.",
              "nullable": true
            }
          },
          {
            "name": "playSessionId",
            "in": "query",
            "description": "The play session id.",
            "schema": {
              "type": "string",
              "description": "The play session id.",
              "nullable": true
            }
          },
          {
            "name": "segmentContainer",
            "in": "query",
            "description": "The segment container.",
            "schema": {
              "type": "string",
              "description": "The segment container.",
              "nullable": true
            }
          },
          {
            "name": "segmentLength",
            "in": "query",
            "description": "The segment length.",
            "schema": {
              "type": "integer",
              "description": "The segment length.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "minSegments",
            "in": "query",
            "description": "The minimum number of segments.",
            "schema": {
              "type": "integer",
              "description": "The minimum number of segments.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "mediaSourceId",
            "in": "query",
            "description": "The media version id, if playing an alternate version.",
            "schema": {
              "type": "string",
              "description": "The media version id, if playing an alternate version.",
              "nullable": true
            }
          },
          {
            "name": "deviceId",
            "in": "query",
            "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
            "schema": {
              "type": "string",
              "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
              "nullable": true
            }
          },
          {
            "name": "audioCodec",
            "in": "query",
            "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
              "nullable": true
            }
          },
          {
            "name": "enableAutoStreamCopy",
            "in": "query",
            "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
              "nullable": true
            }
          },
          {
            "name": "allowVideoStreamCopy",
            "in": "query",
            "description": "Whether or not to allow copying of the video stream url.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow copying of the video stream url.",
              "nullable": true
            }
          },
          {
            "name": "allowAudioStreamCopy",
            "in": "query",
            "description": "Whether or not to allow copying of the audio stream url.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow copying of the audio stream url.",
              "nullable": true
            }
          },
          {
            "name": "breakOnNonKeyFrames",
            "in": "query",
            "description": "Optional. Whether to break on non key frames.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to break on non key frames.",
              "nullable": true
            }
          },
          {
            "name": "audioSampleRate",
            "in": "query",
            "description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxAudioBitDepth",
            "in": "query",
            "description": "Optional. The maximum audio bit depth.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum audio bit depth.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxStreamingBitrate",
            "in": "query",
            "description": "Optional. The maximum streaming bitrate.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum streaming bitrate.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "audioBitRate",
            "in": "query",
            "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "audioChannels",
            "in": "query",
            "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxAudioChannels",
            "in": "query",
            "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "profile",
            "in": "query",
            "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
              "nullable": true
            }
          },
          {
            "name": "level",
            "in": "query",
            "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
              "nullable": true
            }
          },
          {
            "name": "framerate",
            "in": "query",
            "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
            "schema": {
              "type": "number",
              "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
              "format": "float",
              "nullable": true
            }
          },
          {
            "name": "maxFramerate",
            "in": "query",
            "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
            "schema": {
              "type": "number",
              "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
              "format": "float",
              "nullable": true
            }
          },
          {
            "name": "copyTimestamps",
            "in": "query",
            "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
              "nullable": true
            }
          },
          {
            "name": "startTimeTicks",
            "in": "query",
            "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "Optional. The fixed horizontal resolution of the encoded video.",
            "schema": {
              "type": "integer",
              "description": "Optional. The fixed horizontal resolution of the encoded video.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "Optional. The fixed vertical resolution of the encoded video.",
            "schema": {
              "type": "integer",
              "description": "Optional. The fixed vertical resolution of the encoded video.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "videoBitRate",
            "in": "query",
            "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "subtitleStreamIndex",
            "in": "query",
            "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "subtitleMethod",
            "in": "query",
            "description": "Optional. Specify the subtitle delivery method.",
            "schema": {
              "$ref": "#/components/schemas/SubtitleDeliveryMethod"
            }
          },
          {
            "name": "maxRefFrames",
            "in": "query",
            "description": "Optional.",
            "schema": {
              "type": "integer",
              "description": "Optional.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxVideoBitDepth",
            "in": "query",
            "description": "Optional. The maximum video bit depth.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum video bit depth.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "requireAvc",
            "in": "query",
            "description": "Optional. Whether to require avc.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to require avc.",
              "nullable": true
            }
          },
          {
            "name": "deInterlace",
            "in": "query",
            "description": "Optional. Whether to deinterlace the video.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to deinterlace the video.",
              "nullable": true
            }
          },
          {
            "name": "requireNonAnamorphic",
            "in": "query",
            "description": "Optional. Whether to require a non anamorphic stream.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to require a non anamorphic stream.",
              "nullable": true
            }
          },
          {
            "name": "transcodingMaxAudioChannels",
            "in": "query",
            "description": "Optional. The maximum number of audio channels to transcode.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of audio channels to transcode.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cpuCoreLimit",
            "in": "query",
            "description": "Optional. The limit of how many cpu cores to use.",
            "schema": {
              "type": "integer",
              "description": "Optional. The limit of how many cpu cores to use.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "liveStreamId",
            "in": "query",
            "description": "The live stream id.",
            "schema": {
              "type": "string",
              "description": "The live stream id.",
              "nullable": true
            }
          },
          {
            "name": "enableMpegtsM2TsMode",
            "in": "query",
            "description": "Optional. Whether to enable the MpegtsM2Ts mode.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to enable the MpegtsM2Ts mode.",
              "nullable": true
            }
          },
          {
            "name": "videoCodec",
            "in": "query",
            "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.",
              "nullable": true
            }
          },
          {
            "name": "subtitleCodec",
            "in": "query",
            "description": "Optional. Specify a subtitle codec to encode to.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a subtitle codec to encode to.",
              "nullable": true
            }
          },
          {
            "name": "transcodeReasons",
            "in": "query",
            "description": "Optional. The transcoding reason.",
            "schema": {
              "type": "string",
              "description": "Optional. The transcoding reason.",
              "nullable": true
            }
          },
          {
            "name": "audioStreamIndex",
            "in": "query",
            "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "videoStreamIndex",
            "in": "query",
            "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "context",
            "in": "query",
            "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.",
            "schema": {
              "$ref": "#/components/schemas/EncodingContext"
            }
          },
          {
            "name": "streamOptions",
            "in": "query",
            "description": "Optional. The streaming options.",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              },
              "description": "Optional. The streaming options.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Video stream returned.",
            "content": {
              "audio/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Audio/{itemId}/main.m3u8": {
      "get": {
        "tags": [
          "DynamicHls"
        ],
        "summary": "Gets an audio stream using HTTP live streaming.",
        "operationId": "GetVariantHlsAudioPlaylist",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "static",
            "in": "query",
            "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
            "schema": {
              "type": "boolean",
              "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
              "nullable": true
            }
          },
          {
            "name": "params",
            "in": "query",
            "description": "The streaming parameters.",
            "schema": {
              "type": "string",
              "description": "The streaming parameters.",
              "nullable": true
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "The tag.",
            "schema": {
              "type": "string",
              "description": "The tag.",
              "nullable": true
            }
          },
          {
            "name": "deviceProfileId",
            "in": "query",
            "description": "Optional. The dlna device profile id to utilize.",
            "schema": {
              "type": "string",
              "description": "Optional. The dlna device profile id to utilize.",
              "nullable": true
            }
          },
          {
            "name": "playSessionId",
            "in": "query",
            "description": "The play session id.",
            "schema": {
              "type": "string",
              "description": "The play session id.",
              "nullable": true
            }
          },
          {
            "name": "segmentContainer",
            "in": "query",
            "description": "The segment container.",
            "schema": {
              "type": "string",
              "description": "The segment container.",
              "nullable": true
            }
          },
          {
            "name": "segmentLength",
            "in": "query",
            "description": "The segment length.",
            "schema": {
              "type": "integer",
              "description": "The segment length.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "minSegments",
            "in": "query",
            "description": "The minimum number of segments.",
            "schema": {
              "type": "integer",
              "description": "The minimum number of segments.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "mediaSourceId",
            "in": "query",
            "description": "The media version id, if playing an alternate version.",
            "schema": {
              "type": "string",
              "description": "The media version id, if playing an alternate version.",
              "nullable": true
            }
          },
          {
            "name": "deviceId",
            "in": "query",
            "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
            "schema": {
              "type": "string",
              "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
              "nullable": true
            }
          },
          {
            "name": "audioCodec",
            "in": "query",
            "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
              "nullable": true
            }
          },
          {
            "name": "enableAutoStreamCopy",
            "in": "query",
            "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
              "nullable": true
            }
          },
          {
            "name": "allowVideoStreamCopy",
            "in": "query",
            "description": "Whether or not to allow copying of the video stream url.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow copying of the video stream url.",
              "nullable": true
            }
          },
          {
            "name": "allowAudioStreamCopy",
            "in": "query",
            "description": "Whether or not to allow copying of the audio stream url.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow copying of the audio stream url.",
              "nullable": true
            }
          },
          {
            "name": "breakOnNonKeyFrames",
            "in": "query",
            "description": "Optional. Whether to break on non key frames.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to break on non key frames.",
              "nullable": true
            }
          },
          {
            "name": "audioSampleRate",
            "in": "query",
            "description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxAudioBitDepth",
            "in": "query",
            "description": "Optional. The maximum audio bit depth.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum audio bit depth.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxStreamingBitrate",
            "in": "query",
            "description": "Optional. The maximum streaming bitrate.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum streaming bitrate.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "audioBitRate",
            "in": "query",
            "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "audioChannels",
            "in": "query",
            "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxAudioChannels",
            "in": "query",
            "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "profile",
            "in": "query",
            "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
              "nullable": true
            }
          },
          {
            "name": "level",
            "in": "query",
            "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
              "nullable": true
            }
          },
          {
            "name": "framerate",
            "in": "query",
            "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
            "schema": {
              "type": "number",
              "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
              "format": "float",
              "nullable": true
            }
          },
          {
            "name": "maxFramerate",
            "in": "query",
            "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
            "schema": {
              "type": "number",
              "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
              "format": "float",
              "nullable": true
            }
          },
          {
            "name": "copyTimestamps",
            "in": "query",
            "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
              "nullable": true
            }
          },
          {
            "name": "startTimeTicks",
            "in": "query",
            "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "Optional. The fixed horizontal resolution of the encoded video.",
            "schema": {
              "type": "integer",
              "description": "Optional. The fixed horizontal resolution of the encoded video.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "Optional. The fixed vertical resolution of the encoded video.",
            "schema": {
              "type": "integer",
              "description": "Optional. The fixed vertical resolution of the encoded video.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "videoBitRate",
            "in": "query",
            "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "subtitleStreamIndex",
            "in": "query",
            "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "subtitleMethod",
            "in": "query",
            "description": "Optional. Specify the subtitle delivery method.",
            "schema": {
              "$ref": "#/components/schemas/SubtitleDeliveryMethod"
            }
          },
          {
            "name": "maxRefFrames",
            "in": "query",
            "description": "Optional.",
            "schema": {
              "type": "integer",
              "description": "Optional.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxVideoBitDepth",
            "in": "query",
            "description": "Optional. The maximum video bit depth.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum video bit depth.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "requireAvc",
            "in": "query",
            "description": "Optional. Whether to require avc.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to require avc.",
              "nullable": true
            }
          },
          {
            "name": "deInterlace",
            "in": "query",
            "description": "Optional. Whether to deinterlace the video.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to deinterlace the video.",
              "nullable": true
            }
          },
          {
            "name": "requireNonAnamorphic",
            "in": "query",
            "description": "Optional. Whether to require a non anamorphic stream.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to require a non anamorphic stream.",
              "nullable": true
            }
          },
          {
            "name": "transcodingMaxAudioChannels",
            "in": "query",
            "description": "Optional. The maximum number of audio channels to transcode.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of audio channels to transcode.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cpuCoreLimit",
            "in": "query",
            "description": "Optional. The limit of how many cpu cores to use.",
            "schema": {
              "type": "integer",
              "description": "Optional. The limit of how many cpu cores to use.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "liveStreamId",
            "in": "query",
            "description": "The live stream id.",
            "schema": {
              "type": "string",
              "description": "The live stream id.",
              "nullable": true
            }
          },
          {
            "name": "enableMpegtsM2TsMode",
            "in": "query",
            "description": "Optional. Whether to enable the MpegtsM2Ts mode.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to enable the MpegtsM2Ts mode.",
              "nullable": true
            }
          },
          {
            "name": "videoCodec",
            "in": "query",
            "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.",
              "nullable": true
            }
          },
          {
            "name": "subtitleCodec",
            "in": "query",
            "description": "Optional. Specify a subtitle codec to encode to.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a subtitle codec to encode to.",
              "nullable": true
            }
          },
          {
            "name": "transcodeReasons",
            "in": "query",
            "description": "Optional. The transcoding reason.",
            "schema": {
              "type": "string",
              "description": "Optional. The transcoding reason.",
              "nullable": true
            }
          },
          {
            "name": "audioStreamIndex",
            "in": "query",
            "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "videoStreamIndex",
            "in": "query",
            "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "context",
            "in": "query",
            "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.",
            "schema": {
              "$ref": "#/components/schemas/EncodingContext"
            }
          },
          {
            "name": "streamOptions",
            "in": "query",
            "description": "Optional. The streaming options.",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              },
              "description": "Optional. The streaming options.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Audio stream returned.",
            "content": {
              "application/x-mpegURL": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Audio/{itemId}/master.m3u8": {
      "get": {
        "tags": [
          "DynamicHls"
        ],
        "summary": "Gets an audio hls playlist stream.",
        "operationId": "GetMasterHlsAudioPlaylist",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "static",
            "in": "query",
            "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
            "schema": {
              "type": "boolean",
              "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
              "nullable": true
            }
          },
          {
            "name": "params",
            "in": "query",
            "description": "The streaming parameters.",
            "schema": {
              "type": "string",
              "description": "The streaming parameters.",
              "nullable": true
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "The tag.",
            "schema": {
              "type": "string",
              "description": "The tag.",
              "nullable": true
            }
          },
          {
            "name": "deviceProfileId",
            "in": "query",
            "description": "Optional. The dlna device profile id to utilize.",
            "schema": {
              "type": "string",
              "description": "Optional. The dlna device profile id to utilize.",
              "nullable": true
            }
          },
          {
            "name": "playSessionId",
            "in": "query",
            "description": "The play session id.",
            "schema": {
              "type": "string",
              "description": "The play session id.",
              "nullable": true
            }
          },
          {
            "name": "segmentContainer",
            "in": "query",
            "description": "The segment container.",
            "schema": {
              "type": "string",
              "description": "The segment container.",
              "nullable": true
            }
          },
          {
            "name": "segmentLength",
            "in": "query",
            "description": "The segment length.",
            "schema": {
              "type": "integer",
              "description": "The segment length.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "minSegments",
            "in": "query",
            "description": "The minimum number of segments.",
            "schema": {
              "type": "integer",
              "description": "The minimum number of segments.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "mediaSourceId",
            "in": "query",
            "description": "The media version id, if playing an alternate version.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The media version id, if playing an alternate version."
            }
          },
          {
            "name": "deviceId",
            "in": "query",
            "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
            "schema": {
              "type": "string",
              "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
              "nullable": true
            }
          },
          {
            "name": "audioCodec",
            "in": "query",
            "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
              "nullable": true
            }
          },
          {
            "name": "enableAutoStreamCopy",
            "in": "query",
            "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
              "nullable": true
            }
          },
          {
            "name": "allowVideoStreamCopy",
            "in": "query",
            "description": "Whether or not to allow copying of the video stream url.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow copying of the video stream url.",
              "nullable": true
            }
          },
          {
            "name": "allowAudioStreamCopy",
            "in": "query",
            "description": "Whether or not to allow copying of the audio stream url.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow copying of the audio stream url.",
              "nullable": true
            }
          },
          {
            "name": "breakOnNonKeyFrames",
            "in": "query",
            "description": "Optional. Whether to break on non key frames.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to break on non key frames.",
              "nullable": true
            }
          },
          {
            "name": "audioSampleRate",
            "in": "query",
            "description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxAudioBitDepth",
            "in": "query",
            "description": "Optional. The maximum audio bit depth.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum audio bit depth.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxStreamingBitrate",
            "in": "query",
            "description": "Optional. The maximum streaming bitrate.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum streaming bitrate.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "audioBitRate",
            "in": "query",
            "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "audioChannels",
            "in": "query",
            "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxAudioChannels",
            "in": "query",
            "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "profile",
            "in": "query",
            "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
              "nullable": true
            }
          },
          {
            "name": "level",
            "in": "query",
            "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
              "nullable": true
            }
          },
          {
            "name": "framerate",
            "in": "query",
            "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
            "schema": {
              "type": "number",
              "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
              "format": "float",
              "nullable": true
            }
          },
          {
            "name": "maxFramerate",
            "in": "query",
            "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
            "schema": {
              "type": "number",
              "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
              "format": "float",
              "nullable": true
            }
          },
          {
            "name": "copyTimestamps",
            "in": "query",
            "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
              "nullable": true
            }
          },
          {
            "name": "startTimeTicks",
            "in": "query",
            "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "Optional. The fixed horizontal resolution of the encoded video.",
            "schema": {
              "type": "integer",
              "description": "Optional. The fixed horizontal resolution of the encoded video.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "Optional. The fixed vertical resolution of the encoded video.",
            "schema": {
              "type": "integer",
              "description": "Optional. The fixed vertical resolution of the encoded video.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "videoBitRate",
            "in": "query",
            "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "subtitleStreamIndex",
            "in": "query",
            "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "subtitleMethod",
            "in": "query",
            "description": "Optional. Specify the subtitle delivery method.",
            "schema": {
              "$ref": "#/components/schemas/SubtitleDeliveryMethod"
            }
          },
          {
            "name": "maxRefFrames",
            "in": "query",
            "description": "Optional.",
            "schema": {
              "type": "integer",
              "description": "Optional.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxVideoBitDepth",
            "in": "query",
            "description": "Optional. The maximum video bit depth.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum video bit depth.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "requireAvc",
            "in": "query",
            "description": "Optional. Whether to require avc.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to require avc.",
              "nullable": true
            }
          },
          {
            "name": "deInterlace",
            "in": "query",
            "description": "Optional. Whether to deinterlace the video.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to deinterlace the video.",
              "nullable": true
            }
          },
          {
            "name": "requireNonAnamorphic",
            "in": "query",
            "description": "Optional. Whether to require a non anamorphic stream.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to require a non anamorphic stream.",
              "nullable": true
            }
          },
          {
            "name": "transcodingMaxAudioChannels",
            "in": "query",
            "description": "Optional. The maximum number of audio channels to transcode.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of audio channels to transcode.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cpuCoreLimit",
            "in": "query",
            "description": "Optional. The limit of how many cpu cores to use.",
            "schema": {
              "type": "integer",
              "description": "Optional. The limit of how many cpu cores to use.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "liveStreamId",
            "in": "query",
            "description": "The live stream id.",
            "schema": {
              "type": "string",
              "description": "The live stream id.",
              "nullable": true
            }
          },
          {
            "name": "enableMpegtsM2TsMode",
            "in": "query",
            "description": "Optional. Whether to enable the MpegtsM2Ts mode.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to enable the MpegtsM2Ts mode.",
              "nullable": true
            }
          },
          {
            "name": "videoCodec",
            "in": "query",
            "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.",
              "nullable": true
            }
          },
          {
            "name": "subtitleCodec",
            "in": "query",
            "description": "Optional. Specify a subtitle codec to encode to.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a subtitle codec to encode to.",
              "nullable": true
            }
          },
          {
            "name": "transcodeReasons",
            "in": "query",
            "description": "Optional. The transcoding reason.",
            "schema": {
              "type": "string",
              "description": "Optional. The transcoding reason.",
              "nullable": true
            }
          },
          {
            "name": "audioStreamIndex",
            "in": "query",
            "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "videoStreamIndex",
            "in": "query",
            "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "context",
            "in": "query",
            "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.",
            "schema": {
              "$ref": "#/components/schemas/EncodingContext"
            }
          },
          {
            "name": "streamOptions",
            "in": "query",
            "description": "Optional. The streaming options.",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              },
              "description": "Optional. The streaming options.",
              "nullable": true
            }
          },
          {
            "name": "enableAdaptiveBitrateStreaming",
            "in": "query",
            "description": "Enable adaptive bitrate streaming.",
            "schema": {
              "type": "boolean",
              "description": "Enable adaptive bitrate streaming.",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Audio stream returned.",
            "content": {
              "application/x-mpegURL": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      },
      "head": {
        "tags": [
          "DynamicHls"
        ],
        "summary": "Gets an audio hls playlist stream.",
        "operationId": "HeadMasterHlsAudioPlaylist",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "static",
            "in": "query",
            "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
            "schema": {
              "type": "boolean",
              "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
              "nullable": true
            }
          },
          {
            "name": "params",
            "in": "query",
            "description": "The streaming parameters.",
            "schema": {
              "type": "string",
              "description": "The streaming parameters.",
              "nullable": true
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "The tag.",
            "schema": {
              "type": "string",
              "description": "The tag.",
              "nullable": true
            }
          },
          {
            "name": "deviceProfileId",
            "in": "query",
            "description": "Optional. The dlna device profile id to utilize.",
            "schema": {
              "type": "string",
              "description": "Optional. The dlna device profile id to utilize.",
              "nullable": true
            }
          },
          {
            "name": "playSessionId",
            "in": "query",
            "description": "The play session id.",
            "schema": {
              "type": "string",
              "description": "The play session id.",
              "nullable": true
            }
          },
          {
            "name": "segmentContainer",
            "in": "query",
            "description": "The segment container.",
            "schema": {
              "type": "string",
              "description": "The segment container.",
              "nullable": true
            }
          },
          {
            "name": "segmentLength",
            "in": "query",
            "description": "The segment length.",
            "schema": {
              "type": "integer",
              "description": "The segment length.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "minSegments",
            "in": "query",
            "description": "The minimum number of segments.",
            "schema": {
              "type": "integer",
              "description": "The minimum number of segments.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "mediaSourceId",
            "in": "query",
            "description": "The media version id, if playing an alternate version.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The media version id, if playing an alternate version."
            }
          },
          {
            "name": "deviceId",
            "in": "query",
            "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
            "schema": {
              "type": "string",
              "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
              "nullable": true
            }
          },
          {
            "name": "audioCodec",
            "in": "query",
            "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
              "nullable": true
            }
          },
          {
            "name": "enableAutoStreamCopy",
            "in": "query",
            "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
              "nullable": true
            }
          },
          {
            "name": "allowVideoStreamCopy",
            "in": "query",
            "description": "Whether or not to allow copying of the video stream url.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow copying of the video stream url.",
              "nullable": true
            }
          },
          {
            "name": "allowAudioStreamCopy",
            "in": "query",
            "description": "Whether or not to allow copying of the audio stream url.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow copying of the audio stream url.",
              "nullable": true
            }
          },
          {
            "name": "breakOnNonKeyFrames",
            "in": "query",
            "description": "Optional. Whether to break on non key frames.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to break on non key frames.",
              "nullable": true
            }
          },
          {
            "name": "audioSampleRate",
            "in": "query",
            "description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxAudioBitDepth",
            "in": "query",
            "description": "Optional. The maximum audio bit depth.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum audio bit depth.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxStreamingBitrate",
            "in": "query",
            "description": "Optional. The maximum streaming bitrate.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum streaming bitrate.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "audioBitRate",
            "in": "query",
            "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "audioChannels",
            "in": "query",
            "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxAudioChannels",
            "in": "query",
            "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "profile",
            "in": "query",
            "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
              "nullable": true
            }
          },
          {
            "name": "level",
            "in": "query",
            "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
              "nullable": true
            }
          },
          {
            "name": "framerate",
            "in": "query",
            "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
            "schema": {
              "type": "number",
              "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
              "format": "float",
              "nullable": true
            }
          },
          {
            "name": "maxFramerate",
            "in": "query",
            "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
            "schema": {
              "type": "number",
              "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
              "format": "float",
              "nullable": true
            }
          },
          {
            "name": "copyTimestamps",
            "in": "query",
            "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
              "nullable": true
            }
          },
          {
            "name": "startTimeTicks",
            "in": "query",
            "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "Optional. The fixed horizontal resolution of the encoded video.",
            "schema": {
              "type": "integer",
              "description": "Optional. The fixed horizontal resolution of the encoded video.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "Optional. The fixed vertical resolution of the encoded video.",
            "schema": {
              "type": "integer",
              "description": "Optional. The fixed vertical resolution of the encoded video.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "videoBitRate",
            "in": "query",
            "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "subtitleStreamIndex",
            "in": "query",
            "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "subtitleMethod",
            "in": "query",
            "description": "Optional. Specify the subtitle delivery method.",
            "schema": {
              "$ref": "#/components/schemas/SubtitleDeliveryMethod"
            }
          },
          {
            "name": "maxRefFrames",
            "in": "query",
            "description": "Optional.",
            "schema": {
              "type": "integer",
              "description": "Optional.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxVideoBitDepth",
            "in": "query",
            "description": "Optional. The maximum video bit depth.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum video bit depth.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "requireAvc",
            "in": "query",
            "description": "Optional. Whether to require avc.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to require avc.",
              "nullable": true
            }
          },
          {
            "name": "deInterlace",
            "in": "query",
            "description": "Optional. Whether to deinterlace the video.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to deinterlace the video.",
              "nullable": true
            }
          },
          {
            "name": "requireNonAnamorphic",
            "in": "query",
            "description": "Optional. Whether to require a non anamorphic stream.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to require a non anamorphic stream.",
              "nullable": true
            }
          },
          {
            "name": "transcodingMaxAudioChannels",
            "in": "query",
            "description": "Optional. The maximum number of audio channels to transcode.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of audio channels to transcode.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cpuCoreLimit",
            "in": "query",
            "description": "Optional. The limit of how many cpu cores to use.",
            "schema": {
              "type": "integer",
              "description": "Optional. The limit of how many cpu cores to use.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "liveStreamId",
            "in": "query",
            "description": "The live stream id.",
            "schema": {
              "type": "string",
              "description": "The live stream id.",
              "nullable": true
            }
          },
          {
            "name": "enableMpegtsM2TsMode",
            "in": "query",
            "description": "Optional. Whether to enable the MpegtsM2Ts mode.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to enable the MpegtsM2Ts mode.",
              "nullable": true
            }
          },
          {
            "name": "videoCodec",
            "in": "query",
            "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.",
              "nullable": true
            }
          },
          {
            "name": "subtitleCodec",
            "in": "query",
            "description": "Optional. Specify a subtitle codec to encode to.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a subtitle codec to encode to.",
              "nullable": true
            }
          },
          {
            "name": "transcodeReasons",
            "in": "query",
            "description": "Optional. The transcoding reason.",
            "schema": {
              "type": "string",
              "description": "Optional. The transcoding reason.",
              "nullable": true
            }
          },
          {
            "name": "audioStreamIndex",
            "in": "query",
            "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "videoStreamIndex",
            "in": "query",
            "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "context",
            "in": "query",
            "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.",
            "schema": {
              "$ref": "#/components/schemas/EncodingContext"
            }
          },
          {
            "name": "streamOptions",
            "in": "query",
            "description": "Optional. The streaming options.",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              },
              "description": "Optional. The streaming options.",
              "nullable": true
            }
          },
          {
            "name": "enableAdaptiveBitrateStreaming",
            "in": "query",
            "description": "Enable adaptive bitrate streaming.",
            "schema": {
              "type": "boolean",
              "description": "Enable adaptive bitrate streaming.",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Audio stream returned.",
            "content": {
              "application/x-mpegURL": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Videos/{itemId}/hls1/{playlistId}/{segmentId}.{container}": {
      "get": {
        "tags": [
          "DynamicHls"
        ],
        "summary": "Gets a video stream using HTTP live streaming.",
        "operationId": "GetHlsVideoSegment",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "playlistId",
            "in": "path",
            "description": "The playlist id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The playlist id."
            }
          },
          {
            "name": "segmentId",
            "in": "path",
            "description": "The segment id.",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "The segment id.",
              "format": "int32"
            }
          },
          {
            "name": "container",
            "in": "path",
            "description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv."
            }
          },
          {
            "name": "static",
            "in": "query",
            "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
            "schema": {
              "type": "boolean",
              "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
              "nullable": true
            }
          },
          {
            "name": "params",
            "in": "query",
            "description": "The streaming parameters.",
            "schema": {
              "type": "string",
              "description": "The streaming parameters.",
              "nullable": true
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "The tag.",
            "schema": {
              "type": "string",
              "description": "The tag.",
              "nullable": true
            }
          },
          {
            "name": "deviceProfileId",
            "in": "query",
            "description": "Optional. The dlna device profile id to utilize.",
            "schema": {
              "type": "string",
              "description": "Optional. The dlna device profile id to utilize.",
              "nullable": true
            }
          },
          {
            "name": "playSessionId",
            "in": "query",
            "description": "The play session id.",
            "schema": {
              "type": "string",
              "description": "The play session id.",
              "nullable": true
            }
          },
          {
            "name": "segmentContainer",
            "in": "query",
            "description": "The segment container.",
            "schema": {
              "type": "string",
              "description": "The segment container.",
              "nullable": true
            }
          },
          {
            "name": "segmentLength",
            "in": "query",
            "description": "The segment lenght.",
            "schema": {
              "type": "integer",
              "description": "The segment lenght.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "minSegments",
            "in": "query",
            "description": "The minimum number of segments.",
            "schema": {
              "type": "integer",
              "description": "The minimum number of segments.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "mediaSourceId",
            "in": "query",
            "description": "The media version id, if playing an alternate version.",
            "schema": {
              "type": "string",
              "description": "The media version id, if playing an alternate version.",
              "nullable": true
            }
          },
          {
            "name": "deviceId",
            "in": "query",
            "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
            "schema": {
              "type": "string",
              "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
              "nullable": true
            }
          },
          {
            "name": "audioCodec",
            "in": "query",
            "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
              "nullable": true
            }
          },
          {
            "name": "enableAutoStreamCopy",
            "in": "query",
            "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
              "nullable": true
            }
          },
          {
            "name": "allowVideoStreamCopy",
            "in": "query",
            "description": "Whether or not to allow copying of the video stream url.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow copying of the video stream url.",
              "nullable": true
            }
          },
          {
            "name": "allowAudioStreamCopy",
            "in": "query",
            "description": "Whether or not to allow copying of the audio stream url.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow copying of the audio stream url.",
              "nullable": true
            }
          },
          {
            "name": "breakOnNonKeyFrames",
            "in": "query",
            "description": "Optional. Whether to break on non key frames.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to break on non key frames.",
              "nullable": true
            }
          },
          {
            "name": "audioSampleRate",
            "in": "query",
            "description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxAudioBitDepth",
            "in": "query",
            "description": "Optional. The maximum audio bit depth.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum audio bit depth.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "audioBitRate",
            "in": "query",
            "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "audioChannels",
            "in": "query",
            "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxAudioChannels",
            "in": "query",
            "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "profile",
            "in": "query",
            "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
              "nullable": true
            }
          },
          {
            "name": "level",
            "in": "query",
            "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
              "nullable": true
            }
          },
          {
            "name": "framerate",
            "in": "query",
            "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
            "schema": {
              "type": "number",
              "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
              "format": "float",
              "nullable": true
            }
          },
          {
            "name": "maxFramerate",
            "in": "query",
            "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
            "schema": {
              "type": "number",
              "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
              "format": "float",
              "nullable": true
            }
          },
          {
            "name": "copyTimestamps",
            "in": "query",
            "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
              "nullable": true
            }
          },
          {
            "name": "startTimeTicks",
            "in": "query",
            "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "Optional. The fixed horizontal resolution of the encoded video.",
            "schema": {
              "type": "integer",
              "description": "Optional. The fixed horizontal resolution of the encoded video.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "Optional. The fixed vertical resolution of the encoded video.",
            "schema": {
              "type": "integer",
              "description": "Optional. The fixed vertical resolution of the encoded video.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "videoBitRate",
            "in": "query",
            "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "subtitleStreamIndex",
            "in": "query",
            "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "subtitleMethod",
            "in": "query",
            "description": "Optional. Specify the subtitle delivery method.",
            "schema": {
              "$ref": "#/components/schemas/SubtitleDeliveryMethod"
            }
          },
          {
            "name": "maxRefFrames",
            "in": "query",
            "description": "Optional.",
            "schema": {
              "type": "integer",
              "description": "Optional.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxVideoBitDepth",
            "in": "query",
            "description": "Optional. The maximum video bit depth.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum video bit depth.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "requireAvc",
            "in": "query",
            "description": "Optional. Whether to require avc.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to require avc.",
              "nullable": true
            }
          },
          {
            "name": "deInterlace",
            "in": "query",
            "description": "Optional. Whether to deinterlace the video.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to deinterlace the video.",
              "nullable": true
            }
          },
          {
            "name": "requireNonAnamorphic",
            "in": "query",
            "description": "Optional. Whether to require a non anamorphic stream.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to require a non anamorphic stream.",
              "nullable": true
            }
          },
          {
            "name": "transcodingMaxAudioChannels",
            "in": "query",
            "description": "Optional. The maximum number of audio channels to transcode.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of audio channels to transcode.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cpuCoreLimit",
            "in": "query",
            "description": "Optional. The limit of how many cpu cores to use.",
            "schema": {
              "type": "integer",
              "description": "Optional. The limit of how many cpu cores to use.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "liveStreamId",
            "in": "query",
            "description": "The live stream id.",
            "schema": {
              "type": "string",
              "description": "The live stream id.",
              "nullable": true
            }
          },
          {
            "name": "enableMpegtsM2TsMode",
            "in": "query",
            "description": "Optional. Whether to enable the MpegtsM2Ts mode.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to enable the MpegtsM2Ts mode.",
              "nullable": true
            }
          },
          {
            "name": "videoCodec",
            "in": "query",
            "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.",
              "nullable": true
            }
          },
          {
            "name": "subtitleCodec",
            "in": "query",
            "description": "Optional. Specify a subtitle codec to encode to.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a subtitle codec to encode to.",
              "nullable": true
            }
          },
          {
            "name": "transcodeReasons",
            "in": "query",
            "description": "Optional. The transcoding reason.",
            "schema": {
              "type": "string",
              "description": "Optional. The transcoding reason.",
              "nullable": true
            }
          },
          {
            "name": "audioStreamIndex",
            "in": "query",
            "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "videoStreamIndex",
            "in": "query",
            "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "context",
            "in": "query",
            "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.",
            "schema": {
              "$ref": "#/components/schemas/EncodingContext"
            }
          },
          {
            "name": "streamOptions",
            "in": "query",
            "description": "Optional. The streaming options.",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              },
              "description": "Optional. The streaming options.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Video stream returned.",
            "content": {
              "video/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Videos/{itemId}/main.m3u8": {
      "get": {
        "tags": [
          "DynamicHls"
        ],
        "summary": "Gets a video stream using HTTP live streaming.",
        "operationId": "GetVariantHlsVideoPlaylist",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "static",
            "in": "query",
            "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
            "schema": {
              "type": "boolean",
              "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
              "nullable": true
            }
          },
          {
            "name": "params",
            "in": "query",
            "description": "The streaming parameters.",
            "schema": {
              "type": "string",
              "description": "The streaming parameters.",
              "nullable": true
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "The tag.",
            "schema": {
              "type": "string",
              "description": "The tag.",
              "nullable": true
            }
          },
          {
            "name": "deviceProfileId",
            "in": "query",
            "description": "Optional. The dlna device profile id to utilize.",
            "schema": {
              "type": "string",
              "description": "Optional. The dlna device profile id to utilize.",
              "nullable": true
            }
          },
          {
            "name": "playSessionId",
            "in": "query",
            "description": "The play session id.",
            "schema": {
              "type": "string",
              "description": "The play session id.",
              "nullable": true
            }
          },
          {
            "name": "segmentContainer",
            "in": "query",
            "description": "The segment container.",
            "schema": {
              "type": "string",
              "description": "The segment container.",
              "nullable": true
            }
          },
          {
            "name": "segmentLength",
            "in": "query",
            "description": "The segment length.",
            "schema": {
              "type": "integer",
              "description": "The segment length.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "minSegments",
            "in": "query",
            "description": "The minimum number of segments.",
            "schema": {
              "type": "integer",
              "description": "The minimum number of segments.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "mediaSourceId",
            "in": "query",
            "description": "The media version id, if playing an alternate version.",
            "schema": {
              "type": "string",
              "description": "The media version id, if playing an alternate version.",
              "nullable": true
            }
          },
          {
            "name": "deviceId",
            "in": "query",
            "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
            "schema": {
              "type": "string",
              "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
              "nullable": true
            }
          },
          {
            "name": "audioCodec",
            "in": "query",
            "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
              "nullable": true
            }
          },
          {
            "name": "enableAutoStreamCopy",
            "in": "query",
            "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
              "nullable": true
            }
          },
          {
            "name": "allowVideoStreamCopy",
            "in": "query",
            "description": "Whether or not to allow copying of the video stream url.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow copying of the video stream url.",
              "nullable": true
            }
          },
          {
            "name": "allowAudioStreamCopy",
            "in": "query",
            "description": "Whether or not to allow copying of the audio stream url.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow copying of the audio stream url.",
              "nullable": true
            }
          },
          {
            "name": "breakOnNonKeyFrames",
            "in": "query",
            "description": "Optional. Whether to break on non key frames.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to break on non key frames.",
              "nullable": true
            }
          },
          {
            "name": "audioSampleRate",
            "in": "query",
            "description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxAudioBitDepth",
            "in": "query",
            "description": "Optional. The maximum audio bit depth.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum audio bit depth.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "audioBitRate",
            "in": "query",
            "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "audioChannels",
            "in": "query",
            "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxAudioChannels",
            "in": "query",
            "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "profile",
            "in": "query",
            "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
              "nullable": true
            }
          },
          {
            "name": "level",
            "in": "query",
            "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
              "nullable": true
            }
          },
          {
            "name": "framerate",
            "in": "query",
            "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
            "schema": {
              "type": "number",
              "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
              "format": "float",
              "nullable": true
            }
          },
          {
            "name": "maxFramerate",
            "in": "query",
            "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
            "schema": {
              "type": "number",
              "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
              "format": "float",
              "nullable": true
            }
          },
          {
            "name": "copyTimestamps",
            "in": "query",
            "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
              "nullable": true
            }
          },
          {
            "name": "startTimeTicks",
            "in": "query",
            "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "Optional. The fixed horizontal resolution of the encoded video.",
            "schema": {
              "type": "integer",
              "description": "Optional. The fixed horizontal resolution of the encoded video.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "Optional. The fixed vertical resolution of the encoded video.",
            "schema": {
              "type": "integer",
              "description": "Optional. The fixed vertical resolution of the encoded video.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "videoBitRate",
            "in": "query",
            "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "subtitleStreamIndex",
            "in": "query",
            "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "subtitleMethod",
            "in": "query",
            "description": "Optional. Specify the subtitle delivery method.",
            "schema": {
              "$ref": "#/components/schemas/SubtitleDeliveryMethod"
            }
          },
          {
            "name": "maxRefFrames",
            "in": "query",
            "description": "Optional.",
            "schema": {
              "type": "integer",
              "description": "Optional.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxVideoBitDepth",
            "in": "query",
            "description": "Optional. The maximum video bit depth.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum video bit depth.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "requireAvc",
            "in": "query",
            "description": "Optional. Whether to require avc.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to require avc.",
              "nullable": true
            }
          },
          {
            "name": "deInterlace",
            "in": "query",
            "description": "Optional. Whether to deinterlace the video.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to deinterlace the video.",
              "nullable": true
            }
          },
          {
            "name": "requireNonAnamorphic",
            "in": "query",
            "description": "Optional. Whether to require a non anamorphic stream.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to require a non anamorphic stream.",
              "nullable": true
            }
          },
          {
            "name": "transcodingMaxAudioChannels",
            "in": "query",
            "description": "Optional. The maximum number of audio channels to transcode.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of audio channels to transcode.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cpuCoreLimit",
            "in": "query",
            "description": "Optional. The limit of how many cpu cores to use.",
            "schema": {
              "type": "integer",
              "description": "Optional. The limit of how many cpu cores to use.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "liveStreamId",
            "in": "query",
            "description": "The live stream id.",
            "schema": {
              "type": "string",
              "description": "The live stream id.",
              "nullable": true
            }
          },
          {
            "name": "enableMpegtsM2TsMode",
            "in": "query",
            "description": "Optional. Whether to enable the MpegtsM2Ts mode.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to enable the MpegtsM2Ts mode.",
              "nullable": true
            }
          },
          {
            "name": "videoCodec",
            "in": "query",
            "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.",
              "nullable": true
            }
          },
          {
            "name": "subtitleCodec",
            "in": "query",
            "description": "Optional. Specify a subtitle codec to encode to.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a subtitle codec to encode to.",
              "nullable": true
            }
          },
          {
            "name": "transcodeReasons",
            "in": "query",
            "description": "Optional. The transcoding reason.",
            "schema": {
              "type": "string",
              "description": "Optional. The transcoding reason.",
              "nullable": true
            }
          },
          {
            "name": "audioStreamIndex",
            "in": "query",
            "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "videoStreamIndex",
            "in": "query",
            "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "context",
            "in": "query",
            "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.",
            "schema": {
              "$ref": "#/components/schemas/EncodingContext"
            }
          },
          {
            "name": "streamOptions",
            "in": "query",
            "description": "Optional. The streaming options.",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              },
              "description": "Optional. The streaming options.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Video stream returned.",
            "content": {
              "application/x-mpegURL": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Videos/{itemId}/master.m3u8": {
      "get": {
        "tags": [
          "DynamicHls"
        ],
        "summary": "Gets a video hls playlist stream.",
        "operationId": "GetMasterHlsVideoPlaylist",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "static",
            "in": "query",
            "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
            "schema": {
              "type": "boolean",
              "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
              "nullable": true
            }
          },
          {
            "name": "params",
            "in": "query",
            "description": "The streaming parameters.",
            "schema": {
              "type": "string",
              "description": "The streaming parameters.",
              "nullable": true
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "The tag.",
            "schema": {
              "type": "string",
              "description": "The tag.",
              "nullable": true
            }
          },
          {
            "name": "deviceProfileId",
            "in": "query",
            "description": "Optional. The dlna device profile id to utilize.",
            "schema": {
              "type": "string",
              "description": "Optional. The dlna device profile id to utilize.",
              "nullable": true
            }
          },
          {
            "name": "playSessionId",
            "in": "query",
            "description": "The play session id.",
            "schema": {
              "type": "string",
              "description": "The play session id.",
              "nullable": true
            }
          },
          {
            "name": "segmentContainer",
            "in": "query",
            "description": "The segment container.",
            "schema": {
              "type": "string",
              "description": "The segment container.",
              "nullable": true
            }
          },
          {
            "name": "segmentLength",
            "in": "query",
            "description": "The segment length.",
            "schema": {
              "type": "integer",
              "description": "The segment length.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "minSegments",
            "in": "query",
            "description": "The minimum number of segments.",
            "schema": {
              "type": "integer",
              "description": "The minimum number of segments.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "mediaSourceId",
            "in": "query",
            "description": "The media version id, if playing an alternate version.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The media version id, if playing an alternate version."
            }
          },
          {
            "name": "deviceId",
            "in": "query",
            "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
            "schema": {
              "type": "string",
              "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
              "nullable": true
            }
          },
          {
            "name": "audioCodec",
            "in": "query",
            "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
              "nullable": true
            }
          },
          {
            "name": "enableAutoStreamCopy",
            "in": "query",
            "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
              "nullable": true
            }
          },
          {
            "name": "allowVideoStreamCopy",
            "in": "query",
            "description": "Whether or not to allow copying of the video stream url.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow copying of the video stream url.",
              "nullable": true
            }
          },
          {
            "name": "allowAudioStreamCopy",
            "in": "query",
            "description": "Whether or not to allow copying of the audio stream url.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow copying of the audio stream url.",
              "nullable": true
            }
          },
          {
            "name": "breakOnNonKeyFrames",
            "in": "query",
            "description": "Optional. Whether to break on non key frames.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to break on non key frames.",
              "nullable": true
            }
          },
          {
            "name": "audioSampleRate",
            "in": "query",
            "description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxAudioBitDepth",
            "in": "query",
            "description": "Optional. The maximum audio bit depth.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum audio bit depth.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "audioBitRate",
            "in": "query",
            "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "audioChannels",
            "in": "query",
            "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxAudioChannels",
            "in": "query",
            "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "profile",
            "in": "query",
            "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
              "nullable": true
            }
          },
          {
            "name": "level",
            "in": "query",
            "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
              "nullable": true
            }
          },
          {
            "name": "framerate",
            "in": "query",
            "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
            "schema": {
              "type": "number",
              "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
              "format": "float",
              "nullable": true
            }
          },
          {
            "name": "maxFramerate",
            "in": "query",
            "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
            "schema": {
              "type": "number",
              "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
              "format": "float",
              "nullable": true
            }
          },
          {
            "name": "copyTimestamps",
            "in": "query",
            "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
              "nullable": true
            }
          },
          {
            "name": "startTimeTicks",
            "in": "query",
            "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "Optional. The fixed horizontal resolution of the encoded video.",
            "schema": {
              "type": "integer",
              "description": "Optional. The fixed horizontal resolution of the encoded video.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "Optional. The fixed vertical resolution of the encoded video.",
            "schema": {
              "type": "integer",
              "description": "Optional. The fixed vertical resolution of the encoded video.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "videoBitRate",
            "in": "query",
            "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "subtitleStreamIndex",
            "in": "query",
            "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "subtitleMethod",
            "in": "query",
            "description": "Optional. Specify the subtitle delivery method.",
            "schema": {
              "$ref": "#/components/schemas/SubtitleDeliveryMethod"
            }
          },
          {
            "name": "maxRefFrames",
            "in": "query",
            "description": "Optional.",
            "schema": {
              "type": "integer",
              "description": "Optional.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxVideoBitDepth",
            "in": "query",
            "description": "Optional. The maximum video bit depth.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum video bit depth.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "requireAvc",
            "in": "query",
            "description": "Optional. Whether to require avc.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to require avc.",
              "nullable": true
            }
          },
          {
            "name": "deInterlace",
            "in": "query",
            "description": "Optional. Whether to deinterlace the video.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to deinterlace the video.",
              "nullable": true
            }
          },
          {
            "name": "requireNonAnamorphic",
            "in": "query",
            "description": "Optional. Whether to require a non anamorphic stream.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to require a non anamorphic stream.",
              "nullable": true
            }
          },
          {
            "name": "transcodingMaxAudioChannels",
            "in": "query",
            "description": "Optional. The maximum number of audio channels to transcode.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of audio channels to transcode.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cpuCoreLimit",
            "in": "query",
            "description": "Optional. The limit of how many cpu cores to use.",
            "schema": {
              "type": "integer",
              "description": "Optional. The limit of how many cpu cores to use.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "liveStreamId",
            "in": "query",
            "description": "The live stream id.",
            "schema": {
              "type": "string",
              "description": "The live stream id.",
              "nullable": true
            }
          },
          {
            "name": "enableMpegtsM2TsMode",
            "in": "query",
            "description": "Optional. Whether to enable the MpegtsM2Ts mode.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to enable the MpegtsM2Ts mode.",
              "nullable": true
            }
          },
          {
            "name": "videoCodec",
            "in": "query",
            "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.",
              "nullable": true
            }
          },
          {
            "name": "subtitleCodec",
            "in": "query",
            "description": "Optional. Specify a subtitle codec to encode to.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a subtitle codec to encode to.",
              "nullable": true
            }
          },
          {
            "name": "transcodeReasons",
            "in": "query",
            "description": "Optional. The transcoding reason.",
            "schema": {
              "type": "string",
              "description": "Optional. The transcoding reason.",
              "nullable": true
            }
          },
          {
            "name": "audioStreamIndex",
            "in": "query",
            "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "videoStreamIndex",
            "in": "query",
            "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "context",
            "in": "query",
            "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.",
            "schema": {
              "$ref": "#/components/schemas/EncodingContext"
            }
          },
          {
            "name": "streamOptions",
            "in": "query",
            "description": "Optional. The streaming options.",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              },
              "description": "Optional. The streaming options.",
              "nullable": true
            }
          },
          {
            "name": "enableAdaptiveBitrateStreaming",
            "in": "query",
            "description": "Enable adaptive bitrate streaming.",
            "schema": {
              "type": "boolean",
              "description": "Enable adaptive bitrate streaming.",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Video stream returned.",
            "content": {
              "application/x-mpegURL": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      },
      "head": {
        "tags": [
          "DynamicHls"
        ],
        "summary": "Gets a video hls playlist stream.",
        "operationId": "HeadMasterHlsVideoPlaylist",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "static",
            "in": "query",
            "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
            "schema": {
              "type": "boolean",
              "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
              "nullable": true
            }
          },
          {
            "name": "params",
            "in": "query",
            "description": "The streaming parameters.",
            "schema": {
              "type": "string",
              "description": "The streaming parameters.",
              "nullable": true
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "The tag.",
            "schema": {
              "type": "string",
              "description": "The tag.",
              "nullable": true
            }
          },
          {
            "name": "deviceProfileId",
            "in": "query",
            "description": "Optional. The dlna device profile id to utilize.",
            "schema": {
              "type": "string",
              "description": "Optional. The dlna device profile id to utilize.",
              "nullable": true
            }
          },
          {
            "name": "playSessionId",
            "in": "query",
            "description": "The play session id.",
            "schema": {
              "type": "string",
              "description": "The play session id.",
              "nullable": true
            }
          },
          {
            "name": "segmentContainer",
            "in": "query",
            "description": "The segment container.",
            "schema": {
              "type": "string",
              "description": "The segment container.",
              "nullable": true
            }
          },
          {
            "name": "segmentLength",
            "in": "query",
            "description": "The segment length.",
            "schema": {
              "type": "integer",
              "description": "The segment length.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "minSegments",
            "in": "query",
            "description": "The minimum number of segments.",
            "schema": {
              "type": "integer",
              "description": "The minimum number of segments.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "mediaSourceId",
            "in": "query",
            "description": "The media version id, if playing an alternate version.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The media version id, if playing an alternate version."
            }
          },
          {
            "name": "deviceId",
            "in": "query",
            "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
            "schema": {
              "type": "string",
              "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
              "nullable": true
            }
          },
          {
            "name": "audioCodec",
            "in": "query",
            "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
              "nullable": true
            }
          },
          {
            "name": "enableAutoStreamCopy",
            "in": "query",
            "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
              "nullable": true
            }
          },
          {
            "name": "allowVideoStreamCopy",
            "in": "query",
            "description": "Whether or not to allow copying of the video stream url.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow copying of the video stream url.",
              "nullable": true
            }
          },
          {
            "name": "allowAudioStreamCopy",
            "in": "query",
            "description": "Whether or not to allow copying of the audio stream url.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow copying of the audio stream url.",
              "nullable": true
            }
          },
          {
            "name": "breakOnNonKeyFrames",
            "in": "query",
            "description": "Optional. Whether to break on non key frames.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to break on non key frames.",
              "nullable": true
            }
          },
          {
            "name": "audioSampleRate",
            "in": "query",
            "description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxAudioBitDepth",
            "in": "query",
            "description": "Optional. The maximum audio bit depth.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum audio bit depth.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "audioBitRate",
            "in": "query",
            "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "audioChannels",
            "in": "query",
            "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxAudioChannels",
            "in": "query",
            "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "profile",
            "in": "query",
            "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
              "nullable": true
            }
          },
          {
            "name": "level",
            "in": "query",
            "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
              "nullable": true
            }
          },
          {
            "name": "framerate",
            "in": "query",
            "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
            "schema": {
              "type": "number",
              "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
              "format": "float",
              "nullable": true
            }
          },
          {
            "name": "maxFramerate",
            "in": "query",
            "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
            "schema": {
              "type": "number",
              "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
              "format": "float",
              "nullable": true
            }
          },
          {
            "name": "copyTimestamps",
            "in": "query",
            "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
              "nullable": true
            }
          },
          {
            "name": "startTimeTicks",
            "in": "query",
            "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "Optional. The fixed horizontal resolution of the encoded video.",
            "schema": {
              "type": "integer",
              "description": "Optional. The fixed horizontal resolution of the encoded video.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "Optional. The fixed vertical resolution of the encoded video.",
            "schema": {
              "type": "integer",
              "description": "Optional. The fixed vertical resolution of the encoded video.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "videoBitRate",
            "in": "query",
            "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "subtitleStreamIndex",
            "in": "query",
            "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "subtitleMethod",
            "in": "query",
            "description": "Optional. Specify the subtitle delivery method.",
            "schema": {
              "$ref": "#/components/schemas/SubtitleDeliveryMethod"
            }
          },
          {
            "name": "maxRefFrames",
            "in": "query",
            "description": "Optional.",
            "schema": {
              "type": "integer",
              "description": "Optional.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxVideoBitDepth",
            "in": "query",
            "description": "Optional. The maximum video bit depth.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum video bit depth.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "requireAvc",
            "in": "query",
            "description": "Optional. Whether to require avc.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to require avc.",
              "nullable": true
            }
          },
          {
            "name": "deInterlace",
            "in": "query",
            "description": "Optional. Whether to deinterlace the video.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to deinterlace the video.",
              "nullable": true
            }
          },
          {
            "name": "requireNonAnamorphic",
            "in": "query",
            "description": "Optional. Whether to require a non anamorphic stream.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to require a non anamorphic stream.",
              "nullable": true
            }
          },
          {
            "name": "transcodingMaxAudioChannels",
            "in": "query",
            "description": "Optional. The maximum number of audio channels to transcode.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of audio channels to transcode.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cpuCoreLimit",
            "in": "query",
            "description": "Optional. The limit of how many cpu cores to use.",
            "schema": {
              "type": "integer",
              "description": "Optional. The limit of how many cpu cores to use.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "liveStreamId",
            "in": "query",
            "description": "The live stream id.",
            "schema": {
              "type": "string",
              "description": "The live stream id.",
              "nullable": true
            }
          },
          {
            "name": "enableMpegtsM2TsMode",
            "in": "query",
            "description": "Optional. Whether to enable the MpegtsM2Ts mode.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to enable the MpegtsM2Ts mode.",
              "nullable": true
            }
          },
          {
            "name": "videoCodec",
            "in": "query",
            "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.",
              "nullable": true
            }
          },
          {
            "name": "subtitleCodec",
            "in": "query",
            "description": "Optional. Specify a subtitle codec to encode to.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a subtitle codec to encode to.",
              "nullable": true
            }
          },
          {
            "name": "transcodeReasons",
            "in": "query",
            "description": "Optional. The transcoding reason.",
            "schema": {
              "type": "string",
              "description": "Optional. The transcoding reason.",
              "nullable": true
            }
          },
          {
            "name": "audioStreamIndex",
            "in": "query",
            "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "videoStreamIndex",
            "in": "query",
            "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "context",
            "in": "query",
            "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.",
            "schema": {
              "$ref": "#/components/schemas/EncodingContext"
            }
          },
          {
            "name": "streamOptions",
            "in": "query",
            "description": "Optional. The streaming options.",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              },
              "description": "Optional. The streaming options.",
              "nullable": true
            }
          },
          {
            "name": "enableAdaptiveBitrateStreaming",
            "in": "query",
            "description": "Enable adaptive bitrate streaming.",
            "schema": {
              "type": "boolean",
              "description": "Enable adaptive bitrate streaming.",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Video stream returned.",
            "content": {
              "application/x-mpegURL": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Environment/DefaultDirectoryBrowser": {
      "get": {
        "tags": [
          "Environment"
        ],
        "summary": "Get Default directory browser.",
        "operationId": "GetDefaultDirectoryBrowser",
        "responses": {
          "200": {
            "description": "Default directory browser returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DefaultDirectoryBrowserInfoDto"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/DefaultDirectoryBrowserInfoDto"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/DefaultDirectoryBrowserInfoDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "FirstTimeSetupOrElevated"
            ]
          }
        ]
      }
    },
    "/Environment/DirectoryContents": {
      "get": {
        "tags": [
          "Environment"
        ],
        "summary": "Gets the contents of a given directory in the file system.",
        "operationId": "GetDirectoryContents",
        "parameters": [
          {
            "name": "path",
            "in": "query",
            "description": "The path.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The path."
            }
          },
          {
            "name": "includeFiles",
            "in": "query",
            "description": "An optional filter to include or exclude files from the results. true/false.",
            "schema": {
              "type": "boolean",
              "description": "An optional filter to include or exclude files from the results. true/false.",
              "default": false
            }
          },
          {
            "name": "includeDirectories",
            "in": "query",
            "description": "An optional filter to include or exclude folders from the results. true/false.",
            "schema": {
              "type": "boolean",
              "description": "An optional filter to include or exclude folders from the results. true/false.",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Directory contents returned.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FileSystemEntryInfo"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FileSystemEntryInfo"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FileSystemEntryInfo"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "FirstTimeSetupOrElevated"
            ]
          }
        ]
      }
    },
    "/Environment/Drives": {
      "get": {
        "tags": [
          "Environment"
        ],
        "summary": "Gets available drives from the server's file system.",
        "operationId": "GetDrives",
        "responses": {
          "200": {
            "description": "List of entries returned.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FileSystemEntryInfo"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FileSystemEntryInfo"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FileSystemEntryInfo"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "FirstTimeSetupOrElevated"
            ]
          }
        ]
      }
    },
    "/Environment/NetworkShares": {
      "get": {
        "tags": [
          "Environment"
        ],
        "summary": "Gets network paths.",
        "operationId": "GetNetworkShares",
        "responses": {
          "200": {
            "description": "Empty array returned.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FileSystemEntryInfo"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FileSystemEntryInfo"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FileSystemEntryInfo"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "deprecated": true,
        "security": [
          {
            "CustomAuthentication": [
              "FirstTimeSetupOrElevated"
            ]
          }
        ]
      }
    },
    "/Environment/ParentPath": {
      "get": {
        "tags": [
          "Environment"
        ],
        "summary": "Gets the parent path of a given path.",
        "operationId": "GetParentPath",
        "parameters": [
          {
            "name": "path",
            "in": "query",
            "description": "The path.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The path."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "FirstTimeSetupOrElevated"
            ]
          }
        ]
      }
    },
    "/Environment/ValidatePath": {
      "post": {
        "tags": [
          "Environment"
        ],
        "summary": "Validates path.",
        "operationId": "ValidatePath",
        "requestBody": {
          "description": "Validate request object.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ValidatePathDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ValidatePathDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ValidatePathDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Path validated."
          },
          "404": {
            "description": "Path not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "FirstTimeSetupOrElevated"
            ]
          }
        ]
      }
    },
    "/Items/Filters": {
      "get": {
        "tags": [
          "Filter"
        ],
        "summary": "Gets legacy query filters.",
        "operationId": "GetQueryFiltersLegacy",
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. User id.",
            "schema": {
              "type": "string",
              "description": "Optional. User id.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "parentId",
            "in": "query",
            "description": "Optional. Parent id.",
            "schema": {
              "type": "string",
              "description": "Optional. Parent id.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "includeItemTypes",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "mediaTypes",
            "in": "query",
            "description": "Optional. Filter by MediaType. Allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. Filter by MediaType. Allows multiple, comma delimited.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Legacy filters retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueryFiltersLegacy"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/QueryFiltersLegacy"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/QueryFiltersLegacy"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Items/Filters2": {
      "get": {
        "tags": [
          "Filter"
        ],
        "summary": "Gets query filters.",
        "operationId": "GetQueryFilters",
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. User id.",
            "schema": {
              "type": "string",
              "description": "Optional. User id.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "parentId",
            "in": "query",
            "description": "Optional. Specify this to localize the search to a specific item or folder. Omit to use the root.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify this to localize the search to a specific item or folder. Omit to use the root.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "includeItemTypes",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "isAiring",
            "in": "query",
            "description": "Optional. Is item airing.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Is item airing.",
              "nullable": true
            }
          },
          {
            "name": "isMovie",
            "in": "query",
            "description": "Optional. Is item movie.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Is item movie.",
              "nullable": true
            }
          },
          {
            "name": "isSports",
            "in": "query",
            "description": "Optional. Is item sports.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Is item sports.",
              "nullable": true
            }
          },
          {
            "name": "isKids",
            "in": "query",
            "description": "Optional. Is item kids.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Is item kids.",
              "nullable": true
            }
          },
          {
            "name": "isNews",
            "in": "query",
            "description": "Optional. Is item news.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Is item news.",
              "nullable": true
            }
          },
          {
            "name": "isSeries",
            "in": "query",
            "description": "Optional. Is item series.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Is item series.",
              "nullable": true
            }
          },
          {
            "name": "recursive",
            "in": "query",
            "description": "Optional. Search recursive.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Search recursive.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Filters retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueryFilters"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/QueryFilters"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/QueryFilters"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Genres": {
      "get": {
        "tags": [
          "Genres"
        ],
        "summary": "Gets all genres from a given item, folder, or the entire library.",
        "operationId": "GetGenres",
        "parameters": [
          {
            "name": "startIndex",
            "in": "query",
            "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
            "schema": {
              "type": "integer",
              "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Optional. The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of records to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "searchTerm",
            "in": "query",
            "description": "The search term.",
            "schema": {
              "type": "string",
              "description": "The search term.",
              "nullable": true
            }
          },
          {
            "name": "parentId",
            "in": "query",
            "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.",
            "schema": {
              "type": "string",
              "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional. Specify additional fields of information to return in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFields"
              },
              "description": "Optional. Specify additional fields of information to return in the output.",
              "nullable": true
            }
          },
          {
            "name": "excludeItemTypes",
            "in": "query",
            "description": "Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "includeItemTypes",
            "in": "query",
            "description": "Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "isFavorite",
            "in": "query",
            "description": "Optional filter by items that are marked as favorite, or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that are marked as favorite, or not.",
              "nullable": true
            }
          },
          {
            "name": "imageTypeLimit",
            "in": "query",
            "description": "Optional, the max number of images to return, per image type.",
            "schema": {
              "type": "integer",
              "description": "Optional, the max number of images to return, per image type.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "enableImageTypes",
            "in": "query",
            "description": "Optional. The image types to include in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ImageType"
              },
              "description": "Optional. The image types to include in the output.",
              "nullable": true
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "User id.",
            "schema": {
              "type": "string",
              "description": "User id.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "nameStartsWithOrGreater",
            "in": "query",
            "description": "Optional filter by items whose name is sorted equally or greater than a given input string.",
            "schema": {
              "type": "string",
              "description": "Optional filter by items whose name is sorted equally or greater than a given input string.",
              "nullable": true
            }
          },
          {
            "name": "nameStartsWith",
            "in": "query",
            "description": "Optional filter by items whose name is sorted equally than a given input string.",
            "schema": {
              "type": "string",
              "description": "Optional filter by items whose name is sorted equally than a given input string.",
              "nullable": true
            }
          },
          {
            "name": "nameLessThan",
            "in": "query",
            "description": "Optional filter by items whose name is equally or lesser than a given input string.",
            "schema": {
              "type": "string",
              "description": "Optional filter by items whose name is equally or lesser than a given input string.",
              "nullable": true
            }
          },
          {
            "name": "enableImages",
            "in": "query",
            "description": "Optional, include image information in output.",
            "schema": {
              "type": "boolean",
              "description": "Optional, include image information in output.",
              "default": true,
              "nullable": true
            }
          },
          {
            "name": "enableTotalRecordCount",
            "in": "query",
            "description": "Optional. Include total record count.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Include total record count.",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Genres returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Genres/{genreName}": {
      "get": {
        "tags": [
          "Genres"
        ],
        "summary": "Gets a genre, by name.",
        "operationId": "GetGenre",
        "parameters": [
          {
            "name": "genreName",
            "in": "path",
            "description": "The genre name.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The genre name."
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "The user id.",
            "schema": {
              "type": "string",
              "description": "The user id.",
              "format": "uuid",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Genres returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDto"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDto"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Audio/{itemId}/hls/{segmentId}/stream.aac": {
      "get": {
        "tags": [
          "HlsSegment"
        ],
        "summary": "Gets the specified audio segment for an audio item.",
        "operationId": "GetHlsAudioSegmentLegacyAac",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id."
            }
          },
          {
            "name": "segmentId",
            "in": "path",
            "description": "The segment id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The segment id."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Hls audio segment returned.",
            "content": {
              "audio/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        }
      }
    },
    "/Audio/{itemId}/hls/{segmentId}/stream.mp3": {
      "get": {
        "tags": [
          "HlsSegment"
        ],
        "summary": "Gets the specified audio segment for an audio item.",
        "operationId": "GetHlsAudioSegmentLegacyMp3",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id."
            }
          },
          {
            "name": "segmentId",
            "in": "path",
            "description": "The segment id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The segment id."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Hls audio segment returned.",
            "content": {
              "audio/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        }
      }
    },
    "/Videos/{itemId}/hls/{playlistId}/{segmentId}.{segmentContainer}": {
      "get": {
        "tags": [
          "HlsSegment"
        ],
        "summary": "Gets a hls video segment.",
        "operationId": "GetHlsVideoSegmentLegacy",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id."
            }
          },
          {
            "name": "playlistId",
            "in": "path",
            "description": "The playlist id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The playlist id."
            }
          },
          {
            "name": "segmentId",
            "in": "path",
            "description": "The segment id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The segment id."
            }
          },
          {
            "name": "segmentContainer",
            "in": "path",
            "description": "The segment container.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The segment container."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Hls video segment returned.",
            "content": {
              "video/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Hls segment not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/Videos/{itemId}/hls/{playlistId}/stream.m3u8": {
      "get": {
        "tags": [
          "HlsSegment"
        ],
        "summary": "Gets a hls video playlist.",
        "operationId": "GetHlsPlaylistLegacy",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The video id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The video id."
            }
          },
          {
            "name": "playlistId",
            "in": "path",
            "description": "The playlist id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The playlist id."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Hls video playlist returned.",
            "content": {
              "application/x-mpegURL": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Videos/ActiveEncodings": {
      "delete": {
        "tags": [
          "HlsSegment"
        ],
        "summary": "Stops an active encoding.",
        "operationId": "StopEncodingProcess",
        "parameters": [
          {
            "name": "deviceId",
            "in": "query",
            "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
            "schema": {
              "type": "string",
              "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
              "nullable": true
            }
          },
          {
            "name": "playSessionId",
            "in": "query",
            "description": "The play session id.",
            "schema": {
              "type": "string",
              "description": "The play session id.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Encoding stopped successfully."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Artists/{name}/Images/{imageType}/{imageIndex}": {
      "get": {
        "tags": [
          "Image"
        ],
        "summary": "Get artist image by name.",
        "operationId": "GetArtistImage",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "Artist name.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Artist name."
            }
          },
          {
            "name": "imageType",
            "in": "path",
            "description": "Image type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageType"
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
            "schema": {
              "type": "string",
              "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
              "nullable": true
            }
          },
          {
            "name": "format",
            "in": "query",
            "description": "Determines the output format of the image - original,gif,jpg,png.",
            "schema": {
              "$ref": "#/components/schemas/ImageFormat"
            }
          },
          {
            "name": "maxWidth",
            "in": "query",
            "description": "The maximum image width to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxHeight",
            "in": "query",
            "description": "The maximum image height to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "percentPlayed",
            "in": "query",
            "description": "Optional. Percent to render for the percent played overlay.",
            "schema": {
              "type": "number",
              "description": "Optional. Percent to render for the percent played overlay.",
              "format": "double",
              "nullable": true
            }
          },
          {
            "name": "unplayedCount",
            "in": "query",
            "description": "Optional. Unplayed count overlay to render.",
            "schema": {
              "type": "integer",
              "description": "Optional. Unplayed count overlay to render.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "The fixed image width to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "The fixed image height to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "quality",
            "in": "query",
            "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
            "schema": {
              "type": "integer",
              "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cropWhitespace",
            "in": "query",
            "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
              "nullable": true
            }
          },
          {
            "name": "addPlayedIndicator",
            "in": "query",
            "description": "Optional. Add a played indicator.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Add a played indicator.",
              "nullable": true
            }
          },
          {
            "name": "blur",
            "in": "query",
            "description": "Optional. Blur image.",
            "schema": {
              "type": "integer",
              "description": "Optional. Blur image.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "backgroundColor",
            "in": "query",
            "description": "Optional. Apply a background color for transparent images.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a background color for transparent images.",
              "nullable": true
            }
          },
          {
            "name": "foregroundLayer",
            "in": "query",
            "description": "Optional. Apply a foreground layer on top of the image.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a foreground layer on top of the image.",
              "nullable": true
            }
          },
          {
            "name": "imageIndex",
            "in": "path",
            "description": "Image index.",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Image index.",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Image stream returned.",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "head": {
        "tags": [
          "Image"
        ],
        "summary": "Get artist image by name.",
        "operationId": "HeadArtistImage",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "Artist name.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Artist name."
            }
          },
          {
            "name": "imageType",
            "in": "path",
            "description": "Image type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageType"
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
            "schema": {
              "type": "string",
              "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
              "nullable": true
            }
          },
          {
            "name": "format",
            "in": "query",
            "description": "Determines the output format of the image - original,gif,jpg,png.",
            "schema": {
              "$ref": "#/components/schemas/ImageFormat"
            }
          },
          {
            "name": "maxWidth",
            "in": "query",
            "description": "The maximum image width to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxHeight",
            "in": "query",
            "description": "The maximum image height to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "percentPlayed",
            "in": "query",
            "description": "Optional. Percent to render for the percent played overlay.",
            "schema": {
              "type": "number",
              "description": "Optional. Percent to render for the percent played overlay.",
              "format": "double",
              "nullable": true
            }
          },
          {
            "name": "unplayedCount",
            "in": "query",
            "description": "Optional. Unplayed count overlay to render.",
            "schema": {
              "type": "integer",
              "description": "Optional. Unplayed count overlay to render.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "The fixed image width to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "The fixed image height to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "quality",
            "in": "query",
            "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
            "schema": {
              "type": "integer",
              "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cropWhitespace",
            "in": "query",
            "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
              "nullable": true
            }
          },
          {
            "name": "addPlayedIndicator",
            "in": "query",
            "description": "Optional. Add a played indicator.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Add a played indicator.",
              "nullable": true
            }
          },
          {
            "name": "blur",
            "in": "query",
            "description": "Optional. Blur image.",
            "schema": {
              "type": "integer",
              "description": "Optional. Blur image.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "backgroundColor",
            "in": "query",
            "description": "Optional. Apply a background color for transparent images.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a background color for transparent images.",
              "nullable": true
            }
          },
          {
            "name": "foregroundLayer",
            "in": "query",
            "description": "Optional. Apply a foreground layer on top of the image.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a foreground layer on top of the image.",
              "nullable": true
            }
          },
          {
            "name": "imageIndex",
            "in": "path",
            "description": "Image index.",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Image index.",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Image stream returned.",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/Genres/{name}/Images/{imageType}": {
      "get": {
        "tags": [
          "Image"
        ],
        "summary": "Get genre image by name.",
        "operationId": "GetGenreImage",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "Genre name.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Genre name."
            }
          },
          {
            "name": "imageType",
            "in": "path",
            "description": "Image type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageType"
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
            "schema": {
              "type": "string",
              "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
              "nullable": true
            }
          },
          {
            "name": "format",
            "in": "query",
            "description": "Determines the output format of the image - original,gif,jpg,png.",
            "schema": {
              "$ref": "#/components/schemas/ImageFormat"
            }
          },
          {
            "name": "maxWidth",
            "in": "query",
            "description": "The maximum image width to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxHeight",
            "in": "query",
            "description": "The maximum image height to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "percentPlayed",
            "in": "query",
            "description": "Optional. Percent to render for the percent played overlay.",
            "schema": {
              "type": "number",
              "description": "Optional. Percent to render for the percent played overlay.",
              "format": "double",
              "nullable": true
            }
          },
          {
            "name": "unplayedCount",
            "in": "query",
            "description": "Optional. Unplayed count overlay to render.",
            "schema": {
              "type": "integer",
              "description": "Optional. Unplayed count overlay to render.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "The fixed image width to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "The fixed image height to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "quality",
            "in": "query",
            "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
            "schema": {
              "type": "integer",
              "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cropWhitespace",
            "in": "query",
            "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
              "nullable": true
            }
          },
          {
            "name": "addPlayedIndicator",
            "in": "query",
            "description": "Optional. Add a played indicator.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Add a played indicator.",
              "nullable": true
            }
          },
          {
            "name": "blur",
            "in": "query",
            "description": "Optional. Blur image.",
            "schema": {
              "type": "integer",
              "description": "Optional. Blur image.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "backgroundColor",
            "in": "query",
            "description": "Optional. Apply a background color for transparent images.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a background color for transparent images.",
              "nullable": true
            }
          },
          {
            "name": "foregroundLayer",
            "in": "query",
            "description": "Optional. Apply a foreground layer on top of the image.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a foreground layer on top of the image.",
              "nullable": true
            }
          },
          {
            "name": "imageIndex",
            "in": "query",
            "description": "Image index.",
            "schema": {
              "type": "integer",
              "description": "Image index.",
              "format": "int32",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Image stream returned.",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "head": {
        "tags": [
          "Image"
        ],
        "summary": "Get genre image by name.",
        "operationId": "HeadGenreImage",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "Genre name.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Genre name."
            }
          },
          {
            "name": "imageType",
            "in": "path",
            "description": "Image type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageType"
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
            "schema": {
              "type": "string",
              "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
              "nullable": true
            }
          },
          {
            "name": "format",
            "in": "query",
            "description": "Determines the output format of the image - original,gif,jpg,png.",
            "schema": {
              "$ref": "#/components/schemas/ImageFormat"
            }
          },
          {
            "name": "maxWidth",
            "in": "query",
            "description": "The maximum image width to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxHeight",
            "in": "query",
            "description": "The maximum image height to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "percentPlayed",
            "in": "query",
            "description": "Optional. Percent to render for the percent played overlay.",
            "schema": {
              "type": "number",
              "description": "Optional. Percent to render for the percent played overlay.",
              "format": "double",
              "nullable": true
            }
          },
          {
            "name": "unplayedCount",
            "in": "query",
            "description": "Optional. Unplayed count overlay to render.",
            "schema": {
              "type": "integer",
              "description": "Optional. Unplayed count overlay to render.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "The fixed image width to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "The fixed image height to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "quality",
            "in": "query",
            "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
            "schema": {
              "type": "integer",
              "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cropWhitespace",
            "in": "query",
            "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
              "nullable": true
            }
          },
          {
            "name": "addPlayedIndicator",
            "in": "query",
            "description": "Optional. Add a played indicator.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Add a played indicator.",
              "nullable": true
            }
          },
          {
            "name": "blur",
            "in": "query",
            "description": "Optional. Blur image.",
            "schema": {
              "type": "integer",
              "description": "Optional. Blur image.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "backgroundColor",
            "in": "query",
            "description": "Optional. Apply a background color for transparent images.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a background color for transparent images.",
              "nullable": true
            }
          },
          {
            "name": "foregroundLayer",
            "in": "query",
            "description": "Optional. Apply a foreground layer on top of the image.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a foreground layer on top of the image.",
              "nullable": true
            }
          },
          {
            "name": "imageIndex",
            "in": "query",
            "description": "Image index.",
            "schema": {
              "type": "integer",
              "description": "Image index.",
              "format": "int32",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Image stream returned.",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/Genres/{name}/Images/{imageType}/{imageIndex}": {
      "get": {
        "tags": [
          "Image"
        ],
        "summary": "Get genre image by name.",
        "operationId": "GetGenreImageByIndex",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "Genre name.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Genre name."
            }
          },
          {
            "name": "imageType",
            "in": "path",
            "description": "Image type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageType"
            }
          },
          {
            "name": "imageIndex",
            "in": "path",
            "description": "Image index.",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Image index.",
              "format": "int32"
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
            "schema": {
              "type": "string",
              "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
              "nullable": true
            }
          },
          {
            "name": "format",
            "in": "query",
            "description": "Determines the output format of the image - original,gif,jpg,png.",
            "schema": {
              "$ref": "#/components/schemas/ImageFormat"
            }
          },
          {
            "name": "maxWidth",
            "in": "query",
            "description": "The maximum image width to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxHeight",
            "in": "query",
            "description": "The maximum image height to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "percentPlayed",
            "in": "query",
            "description": "Optional. Percent to render for the percent played overlay.",
            "schema": {
              "type": "number",
              "description": "Optional. Percent to render for the percent played overlay.",
              "format": "double",
              "nullable": true
            }
          },
          {
            "name": "unplayedCount",
            "in": "query",
            "description": "Optional. Unplayed count overlay to render.",
            "schema": {
              "type": "integer",
              "description": "Optional. Unplayed count overlay to render.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "The fixed image width to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "The fixed image height to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "quality",
            "in": "query",
            "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
            "schema": {
              "type": "integer",
              "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cropWhitespace",
            "in": "query",
            "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
              "nullable": true
            }
          },
          {
            "name": "addPlayedIndicator",
            "in": "query",
            "description": "Optional. Add a played indicator.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Add a played indicator.",
              "nullable": true
            }
          },
          {
            "name": "blur",
            "in": "query",
            "description": "Optional. Blur image.",
            "schema": {
              "type": "integer",
              "description": "Optional. Blur image.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "backgroundColor",
            "in": "query",
            "description": "Optional. Apply a background color for transparent images.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a background color for transparent images.",
              "nullable": true
            }
          },
          {
            "name": "foregroundLayer",
            "in": "query",
            "description": "Optional. Apply a foreground layer on top of the image.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a foreground layer on top of the image.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Image stream returned.",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "head": {
        "tags": [
          "Image"
        ],
        "summary": "Get genre image by name.",
        "operationId": "HeadGenreImageByIndex",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "Genre name.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Genre name."
            }
          },
          {
            "name": "imageType",
            "in": "path",
            "description": "Image type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageType"
            }
          },
          {
            "name": "imageIndex",
            "in": "path",
            "description": "Image index.",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Image index.",
              "format": "int32"
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
            "schema": {
              "type": "string",
              "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
              "nullable": true
            }
          },
          {
            "name": "format",
            "in": "query",
            "description": "Determines the output format of the image - original,gif,jpg,png.",
            "schema": {
              "$ref": "#/components/schemas/ImageFormat"
            }
          },
          {
            "name": "maxWidth",
            "in": "query",
            "description": "The maximum image width to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxHeight",
            "in": "query",
            "description": "The maximum image height to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "percentPlayed",
            "in": "query",
            "description": "Optional. Percent to render for the percent played overlay.",
            "schema": {
              "type": "number",
              "description": "Optional. Percent to render for the percent played overlay.",
              "format": "double",
              "nullable": true
            }
          },
          {
            "name": "unplayedCount",
            "in": "query",
            "description": "Optional. Unplayed count overlay to render.",
            "schema": {
              "type": "integer",
              "description": "Optional. Unplayed count overlay to render.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "The fixed image width to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "The fixed image height to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "quality",
            "in": "query",
            "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
            "schema": {
              "type": "integer",
              "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cropWhitespace",
            "in": "query",
            "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
              "nullable": true
            }
          },
          {
            "name": "addPlayedIndicator",
            "in": "query",
            "description": "Optional. Add a played indicator.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Add a played indicator.",
              "nullable": true
            }
          },
          {
            "name": "blur",
            "in": "query",
            "description": "Optional. Blur image.",
            "schema": {
              "type": "integer",
              "description": "Optional. Blur image.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "backgroundColor",
            "in": "query",
            "description": "Optional. Apply a background color for transparent images.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a background color for transparent images.",
              "nullable": true
            }
          },
          {
            "name": "foregroundLayer",
            "in": "query",
            "description": "Optional. Apply a foreground layer on top of the image.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a foreground layer on top of the image.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Image stream returned.",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/Items/{itemId}/Images": {
      "get": {
        "tags": [
          "Image"
        ],
        "summary": "Get item image infos.",
        "operationId": "GetItemImageInfos",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "Item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Item id.",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Item images returned.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ImageInfo"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ImageInfo"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ImageInfo"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Items/{itemId}/Images/{imageType}": {
      "delete": {
        "tags": [
          "Image"
        ],
        "summary": "Delete an item's image.",
        "operationId": "DeleteItemImage",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "Item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Item id.",
              "format": "uuid"
            }
          },
          {
            "name": "imageType",
            "in": "path",
            "description": "Image type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageType"
            }
          },
          {
            "name": "imageIndex",
            "in": "query",
            "description": "The image index.",
            "schema": {
              "type": "integer",
              "description": "The image index.",
              "format": "int32",
              "nullable": true
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Image deleted."
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "Image"
        ],
        "summary": "Set item image.",
        "operationId": "SetItemImage",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "Item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Item id.",
              "format": "uuid"
            }
          },
          {
            "name": "imageType",
            "in": "path",
            "description": "Image type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageType"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Image saved."
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      },
      "get": {
        "tags": [
          "Image"
        ],
        "summary": "Gets the item's image.",
        "operationId": "GetItemImage",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "Item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Item id.",
              "format": "uuid"
            }
          },
          {
            "name": "imageType",
            "in": "path",
            "description": "Image type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageType"
            }
          },
          {
            "name": "maxWidth",
            "in": "query",
            "description": "The maximum image width to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxHeight",
            "in": "query",
            "description": "The maximum image height to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "The fixed image width to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "The fixed image height to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "quality",
            "in": "query",
            "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
            "schema": {
              "type": "integer",
              "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
            "schema": {
              "type": "string",
              "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
              "nullable": true
            }
          },
          {
            "name": "cropWhitespace",
            "in": "query",
            "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
              "nullable": true
            }
          },
          {
            "name": "format",
            "in": "query",
            "description": "Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image.",
            "schema": {
              "$ref": "#/components/schemas/ImageFormat"
            }
          },
          {
            "name": "addPlayedIndicator",
            "in": "query",
            "description": "Optional. Add a played indicator.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Add a played indicator.",
              "nullable": true
            }
          },
          {
            "name": "percentPlayed",
            "in": "query",
            "description": "Optional. Percent to render for the percent played overlay.",
            "schema": {
              "type": "number",
              "description": "Optional. Percent to render for the percent played overlay.",
              "format": "double",
              "nullable": true
            }
          },
          {
            "name": "unplayedCount",
            "in": "query",
            "description": "Optional. Unplayed count overlay to render.",
            "schema": {
              "type": "integer",
              "description": "Optional. Unplayed count overlay to render.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "blur",
            "in": "query",
            "description": "Optional. Blur image.",
            "schema": {
              "type": "integer",
              "description": "Optional. Blur image.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "backgroundColor",
            "in": "query",
            "description": "Optional. Apply a background color for transparent images.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a background color for transparent images.",
              "nullable": true
            }
          },
          {
            "name": "foregroundLayer",
            "in": "query",
            "description": "Optional. Apply a foreground layer on top of the image.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a foreground layer on top of the image.",
              "nullable": true
            }
          },
          {
            "name": "imageIndex",
            "in": "query",
            "description": "Image index.",
            "schema": {
              "type": "integer",
              "description": "Image index.",
              "format": "int32",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Image stream returned.",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "head": {
        "tags": [
          "Image"
        ],
        "summary": "Gets the item's image.",
        "operationId": "HeadItemImage",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "Item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Item id.",
              "format": "uuid"
            }
          },
          {
            "name": "imageType",
            "in": "path",
            "description": "Image type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageType"
            }
          },
          {
            "name": "maxWidth",
            "in": "query",
            "description": "The maximum image width to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxHeight",
            "in": "query",
            "description": "The maximum image height to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "The fixed image width to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "The fixed image height to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "quality",
            "in": "query",
            "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
            "schema": {
              "type": "integer",
              "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
            "schema": {
              "type": "string",
              "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
              "nullable": true
            }
          },
          {
            "name": "cropWhitespace",
            "in": "query",
            "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
              "nullable": true
            }
          },
          {
            "name": "format",
            "in": "query",
            "description": "Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image.",
            "schema": {
              "$ref": "#/components/schemas/ImageFormat"
            }
          },
          {
            "name": "addPlayedIndicator",
            "in": "query",
            "description": "Optional. Add a played indicator.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Add a played indicator.",
              "nullable": true
            }
          },
          {
            "name": "percentPlayed",
            "in": "query",
            "description": "Optional. Percent to render for the percent played overlay.",
            "schema": {
              "type": "number",
              "description": "Optional. Percent to render for the percent played overlay.",
              "format": "double",
              "nullable": true
            }
          },
          {
            "name": "unplayedCount",
            "in": "query",
            "description": "Optional. Unplayed count overlay to render.",
            "schema": {
              "type": "integer",
              "description": "Optional. Unplayed count overlay to render.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "blur",
            "in": "query",
            "description": "Optional. Blur image.",
            "schema": {
              "type": "integer",
              "description": "Optional. Blur image.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "backgroundColor",
            "in": "query",
            "description": "Optional. Apply a background color for transparent images.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a background color for transparent images.",
              "nullable": true
            }
          },
          {
            "name": "foregroundLayer",
            "in": "query",
            "description": "Optional. Apply a foreground layer on top of the image.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a foreground layer on top of the image.",
              "nullable": true
            }
          },
          {
            "name": "imageIndex",
            "in": "query",
            "description": "Image index.",
            "schema": {
              "type": "integer",
              "description": "Image index.",
              "format": "int32",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Image stream returned.",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/Items/{itemId}/Images/{imageType}/{imageIndex}": {
      "delete": {
        "tags": [
          "Image"
        ],
        "summary": "Delete an item's image.",
        "operationId": "DeleteItemImageByIndex",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "Item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Item id.",
              "format": "uuid"
            }
          },
          {
            "name": "imageType",
            "in": "path",
            "description": "Image type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageType"
            }
          },
          {
            "name": "imageIndex",
            "in": "path",
            "description": "The image index.",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "The image index.",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Image deleted."
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "Image"
        ],
        "summary": "Set item image.",
        "operationId": "SetItemImageByIndex",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "Item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Item id.",
              "format": "uuid"
            }
          },
          {
            "name": "imageType",
            "in": "path",
            "description": "Image type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageType"
            }
          },
          {
            "name": "imageIndex",
            "in": "path",
            "description": "(Unused) Image index.",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "(Unused) Image index.",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Image saved."
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      },
      "get": {
        "tags": [
          "Image"
        ],
        "summary": "Gets the item's image.",
        "operationId": "GetItemImageByIndex",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "Item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Item id.",
              "format": "uuid"
            }
          },
          {
            "name": "imageType",
            "in": "path",
            "description": "Image type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageType"
            }
          },
          {
            "name": "imageIndex",
            "in": "path",
            "description": "Image index.",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Image index.",
              "format": "int32"
            }
          },
          {
            "name": "maxWidth",
            "in": "query",
            "description": "The maximum image width to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxHeight",
            "in": "query",
            "description": "The maximum image height to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "The fixed image width to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "The fixed image height to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "quality",
            "in": "query",
            "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
            "schema": {
              "type": "integer",
              "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
            "schema": {
              "type": "string",
              "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
              "nullable": true
            }
          },
          {
            "name": "cropWhitespace",
            "in": "query",
            "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
              "nullable": true
            }
          },
          {
            "name": "format",
            "in": "query",
            "description": "Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image.",
            "schema": {
              "$ref": "#/components/schemas/ImageFormat"
            }
          },
          {
            "name": "addPlayedIndicator",
            "in": "query",
            "description": "Optional. Add a played indicator.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Add a played indicator.",
              "nullable": true
            }
          },
          {
            "name": "percentPlayed",
            "in": "query",
            "description": "Optional. Percent to render for the percent played overlay.",
            "schema": {
              "type": "number",
              "description": "Optional. Percent to render for the percent played overlay.",
              "format": "double",
              "nullable": true
            }
          },
          {
            "name": "unplayedCount",
            "in": "query",
            "description": "Optional. Unplayed count overlay to render.",
            "schema": {
              "type": "integer",
              "description": "Optional. Unplayed count overlay to render.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "blur",
            "in": "query",
            "description": "Optional. Blur image.",
            "schema": {
              "type": "integer",
              "description": "Optional. Blur image.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "backgroundColor",
            "in": "query",
            "description": "Optional. Apply a background color for transparent images.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a background color for transparent images.",
              "nullable": true
            }
          },
          {
            "name": "foregroundLayer",
            "in": "query",
            "description": "Optional. Apply a foreground layer on top of the image.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a foreground layer on top of the image.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Image stream returned.",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "head": {
        "tags": [
          "Image"
        ],
        "summary": "Gets the item's image.",
        "operationId": "HeadItemImageByIndex",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "Item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Item id.",
              "format": "uuid"
            }
          },
          {
            "name": "imageType",
            "in": "path",
            "description": "Image type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageType"
            }
          },
          {
            "name": "imageIndex",
            "in": "path",
            "description": "Image index.",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Image index.",
              "format": "int32"
            }
          },
          {
            "name": "maxWidth",
            "in": "query",
            "description": "The maximum image width to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxHeight",
            "in": "query",
            "description": "The maximum image height to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "The fixed image width to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "The fixed image height to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "quality",
            "in": "query",
            "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
            "schema": {
              "type": "integer",
              "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
            "schema": {
              "type": "string",
              "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
              "nullable": true
            }
          },
          {
            "name": "cropWhitespace",
            "in": "query",
            "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
              "nullable": true
            }
          },
          {
            "name": "format",
            "in": "query",
            "description": "Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image.",
            "schema": {
              "$ref": "#/components/schemas/ImageFormat"
            }
          },
          {
            "name": "addPlayedIndicator",
            "in": "query",
            "description": "Optional. Add a played indicator.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Add a played indicator.",
              "nullable": true
            }
          },
          {
            "name": "percentPlayed",
            "in": "query",
            "description": "Optional. Percent to render for the percent played overlay.",
            "schema": {
              "type": "number",
              "description": "Optional. Percent to render for the percent played overlay.",
              "format": "double",
              "nullable": true
            }
          },
          {
            "name": "unplayedCount",
            "in": "query",
            "description": "Optional. Unplayed count overlay to render.",
            "schema": {
              "type": "integer",
              "description": "Optional. Unplayed count overlay to render.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "blur",
            "in": "query",
            "description": "Optional. Blur image.",
            "schema": {
              "type": "integer",
              "description": "Optional. Blur image.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "backgroundColor",
            "in": "query",
            "description": "Optional. Apply a background color for transparent images.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a background color for transparent images.",
              "nullable": true
            }
          },
          {
            "name": "foregroundLayer",
            "in": "query",
            "description": "Optional. Apply a foreground layer on top of the image.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a foreground layer on top of the image.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Image stream returned.",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/Items/{itemId}/Images/{imageType}/{imageIndex}/{tag}/{format}/{maxWidth}/{maxHeight}/{percentPlayed}/{unplayedCount}": {
      "get": {
        "tags": [
          "Image"
        ],
        "summary": "Gets the item's image.",
        "operationId": "GetItemImage2",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "Item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Item id.",
              "format": "uuid"
            }
          },
          {
            "name": "imageType",
            "in": "path",
            "description": "Image type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageType"
            }
          },
          {
            "name": "maxWidth",
            "in": "path",
            "description": "The maximum image width to return.",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "The maximum image width to return.",
              "format": "int32"
            }
          },
          {
            "name": "maxHeight",
            "in": "path",
            "description": "The maximum image height to return.",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "The maximum image height to return.",
              "format": "int32"
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "The fixed image width to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "The fixed image height to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "quality",
            "in": "query",
            "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
            "schema": {
              "type": "integer",
              "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "tag",
            "in": "path",
            "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Optional. Supply the cache tag from the item object to receive strong caching headers."
            }
          },
          {
            "name": "cropWhitespace",
            "in": "query",
            "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
              "nullable": true
            }
          },
          {
            "name": "format",
            "in": "path",
            "description": "Determines the output format of the image - original,gif,jpg,png.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageFormat"
            }
          },
          {
            "name": "addPlayedIndicator",
            "in": "query",
            "description": "Optional. Add a played indicator.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Add a played indicator.",
              "nullable": true
            }
          },
          {
            "name": "percentPlayed",
            "in": "path",
            "description": "Optional. Percent to render for the percent played overlay.",
            "required": true,
            "schema": {
              "type": "number",
              "description": "Optional. Percent to render for the percent played overlay.",
              "format": "double"
            }
          },
          {
            "name": "unplayedCount",
            "in": "path",
            "description": "Optional. Unplayed count overlay to render.",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Optional. Unplayed count overlay to render.",
              "format": "int32"
            }
          },
          {
            "name": "blur",
            "in": "query",
            "description": "Optional. Blur image.",
            "schema": {
              "type": "integer",
              "description": "Optional. Blur image.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "backgroundColor",
            "in": "query",
            "description": "Optional. Apply a background color for transparent images.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a background color for transparent images.",
              "nullable": true
            }
          },
          {
            "name": "foregroundLayer",
            "in": "query",
            "description": "Optional. Apply a foreground layer on top of the image.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a foreground layer on top of the image.",
              "nullable": true
            }
          },
          {
            "name": "imageIndex",
            "in": "path",
            "description": "Image index.",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Image index.",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Image stream returned.",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "head": {
        "tags": [
          "Image"
        ],
        "summary": "Gets the item's image.",
        "operationId": "HeadItemImage2",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "Item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Item id.",
              "format": "uuid"
            }
          },
          {
            "name": "imageType",
            "in": "path",
            "description": "Image type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageType"
            }
          },
          {
            "name": "maxWidth",
            "in": "path",
            "description": "The maximum image width to return.",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "The maximum image width to return.",
              "format": "int32"
            }
          },
          {
            "name": "maxHeight",
            "in": "path",
            "description": "The maximum image height to return.",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "The maximum image height to return.",
              "format": "int32"
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "The fixed image width to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "The fixed image height to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "quality",
            "in": "query",
            "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
            "schema": {
              "type": "integer",
              "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "tag",
            "in": "path",
            "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Optional. Supply the cache tag from the item object to receive strong caching headers."
            }
          },
          {
            "name": "cropWhitespace",
            "in": "query",
            "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
              "nullable": true
            }
          },
          {
            "name": "format",
            "in": "path",
            "description": "Determines the output format of the image - original,gif,jpg,png.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageFormat"
            }
          },
          {
            "name": "addPlayedIndicator",
            "in": "query",
            "description": "Optional. Add a played indicator.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Add a played indicator.",
              "nullable": true
            }
          },
          {
            "name": "percentPlayed",
            "in": "path",
            "description": "Optional. Percent to render for the percent played overlay.",
            "required": true,
            "schema": {
              "type": "number",
              "description": "Optional. Percent to render for the percent played overlay.",
              "format": "double"
            }
          },
          {
            "name": "unplayedCount",
            "in": "path",
            "description": "Optional. Unplayed count overlay to render.",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Optional. Unplayed count overlay to render.",
              "format": "int32"
            }
          },
          {
            "name": "blur",
            "in": "query",
            "description": "Optional. Blur image.",
            "schema": {
              "type": "integer",
              "description": "Optional. Blur image.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "backgroundColor",
            "in": "query",
            "description": "Optional. Apply a background color for transparent images.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a background color for transparent images.",
              "nullable": true
            }
          },
          {
            "name": "foregroundLayer",
            "in": "query",
            "description": "Optional. Apply a foreground layer on top of the image.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a foreground layer on top of the image.",
              "nullable": true
            }
          },
          {
            "name": "imageIndex",
            "in": "path",
            "description": "Image index.",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Image index.",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Image stream returned.",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/Items/{itemId}/Images/{imageType}/{imageIndex}/Index": {
      "post": {
        "tags": [
          "Image"
        ],
        "summary": "Updates the index for an item image.",
        "operationId": "UpdateItemImageIndex",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "Item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Item id.",
              "format": "uuid"
            }
          },
          {
            "name": "imageType",
            "in": "path",
            "description": "Image type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageType"
            }
          },
          {
            "name": "imageIndex",
            "in": "path",
            "description": "Old image index.",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Old image index.",
              "format": "int32"
            }
          },
          {
            "name": "newIndex",
            "in": "query",
            "description": "New image index.",
            "schema": {
              "type": "integer",
              "description": "New image index.",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Image index updated."
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      }
    },
    "/MusicGenres/{name}/Images/{imageType}": {
      "get": {
        "tags": [
          "Image"
        ],
        "summary": "Get music genre image by name.",
        "operationId": "GetMusicGenreImage",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "Music genre name.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Music genre name."
            }
          },
          {
            "name": "imageType",
            "in": "path",
            "description": "Image type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageType"
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
            "schema": {
              "type": "string",
              "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
              "nullable": true
            }
          },
          {
            "name": "format",
            "in": "query",
            "description": "Determines the output format of the image - original,gif,jpg,png.",
            "schema": {
              "$ref": "#/components/schemas/ImageFormat"
            }
          },
          {
            "name": "maxWidth",
            "in": "query",
            "description": "The maximum image width to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxHeight",
            "in": "query",
            "description": "The maximum image height to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "percentPlayed",
            "in": "query",
            "description": "Optional. Percent to render for the percent played overlay.",
            "schema": {
              "type": "number",
              "description": "Optional. Percent to render for the percent played overlay.",
              "format": "double",
              "nullable": true
            }
          },
          {
            "name": "unplayedCount",
            "in": "query",
            "description": "Optional. Unplayed count overlay to render.",
            "schema": {
              "type": "integer",
              "description": "Optional. Unplayed count overlay to render.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "The fixed image width to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "The fixed image height to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "quality",
            "in": "query",
            "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
            "schema": {
              "type": "integer",
              "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cropWhitespace",
            "in": "query",
            "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
              "nullable": true
            }
          },
          {
            "name": "addPlayedIndicator",
            "in": "query",
            "description": "Optional. Add a played indicator.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Add a played indicator.",
              "nullable": true
            }
          },
          {
            "name": "blur",
            "in": "query",
            "description": "Optional. Blur image.",
            "schema": {
              "type": "integer",
              "description": "Optional. Blur image.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "backgroundColor",
            "in": "query",
            "description": "Optional. Apply a background color for transparent images.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a background color for transparent images.",
              "nullable": true
            }
          },
          {
            "name": "foregroundLayer",
            "in": "query",
            "description": "Optional. Apply a foreground layer on top of the image.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a foreground layer on top of the image.",
              "nullable": true
            }
          },
          {
            "name": "imageIndex",
            "in": "query",
            "description": "Image index.",
            "schema": {
              "type": "integer",
              "description": "Image index.",
              "format": "int32",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Image stream returned.",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "head": {
        "tags": [
          "Image"
        ],
        "summary": "Get music genre image by name.",
        "operationId": "HeadMusicGenreImage",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "Music genre name.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Music genre name."
            }
          },
          {
            "name": "imageType",
            "in": "path",
            "description": "Image type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageType"
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
            "schema": {
              "type": "string",
              "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
              "nullable": true
            }
          },
          {
            "name": "format",
            "in": "query",
            "description": "Determines the output format of the image - original,gif,jpg,png.",
            "schema": {
              "$ref": "#/components/schemas/ImageFormat"
            }
          },
          {
            "name": "maxWidth",
            "in": "query",
            "description": "The maximum image width to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxHeight",
            "in": "query",
            "description": "The maximum image height to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "percentPlayed",
            "in": "query",
            "description": "Optional. Percent to render for the percent played overlay.",
            "schema": {
              "type": "number",
              "description": "Optional. Percent to render for the percent played overlay.",
              "format": "double",
              "nullable": true
            }
          },
          {
            "name": "unplayedCount",
            "in": "query",
            "description": "Optional. Unplayed count overlay to render.",
            "schema": {
              "type": "integer",
              "description": "Optional. Unplayed count overlay to render.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "The fixed image width to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "The fixed image height to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "quality",
            "in": "query",
            "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
            "schema": {
              "type": "integer",
              "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cropWhitespace",
            "in": "query",
            "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
              "nullable": true
            }
          },
          {
            "name": "addPlayedIndicator",
            "in": "query",
            "description": "Optional. Add a played indicator.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Add a played indicator.",
              "nullable": true
            }
          },
          {
            "name": "blur",
            "in": "query",
            "description": "Optional. Blur image.",
            "schema": {
              "type": "integer",
              "description": "Optional. Blur image.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "backgroundColor",
            "in": "query",
            "description": "Optional. Apply a background color for transparent images.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a background color for transparent images.",
              "nullable": true
            }
          },
          {
            "name": "foregroundLayer",
            "in": "query",
            "description": "Optional. Apply a foreground layer on top of the image.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a foreground layer on top of the image.",
              "nullable": true
            }
          },
          {
            "name": "imageIndex",
            "in": "query",
            "description": "Image index.",
            "schema": {
              "type": "integer",
              "description": "Image index.",
              "format": "int32",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Image stream returned.",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/MusicGenres/{name}/Images/{imageType}/{imageIndex}": {
      "get": {
        "tags": [
          "Image"
        ],
        "summary": "Get music genre image by name.",
        "operationId": "GetMusicGenreImageByIndex",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "Music genre name.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Music genre name."
            }
          },
          {
            "name": "imageType",
            "in": "path",
            "description": "Image type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageType"
            }
          },
          {
            "name": "imageIndex",
            "in": "path",
            "description": "Image index.",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Image index.",
              "format": "int32"
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
            "schema": {
              "type": "string",
              "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
              "nullable": true
            }
          },
          {
            "name": "format",
            "in": "query",
            "description": "Determines the output format of the image - original,gif,jpg,png.",
            "schema": {
              "$ref": "#/components/schemas/ImageFormat"
            }
          },
          {
            "name": "maxWidth",
            "in": "query",
            "description": "The maximum image width to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxHeight",
            "in": "query",
            "description": "The maximum image height to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "percentPlayed",
            "in": "query",
            "description": "Optional. Percent to render for the percent played overlay.",
            "schema": {
              "type": "number",
              "description": "Optional. Percent to render for the percent played overlay.",
              "format": "double",
              "nullable": true
            }
          },
          {
            "name": "unplayedCount",
            "in": "query",
            "description": "Optional. Unplayed count overlay to render.",
            "schema": {
              "type": "integer",
              "description": "Optional. Unplayed count overlay to render.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "The fixed image width to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "The fixed image height to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "quality",
            "in": "query",
            "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
            "schema": {
              "type": "integer",
              "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cropWhitespace",
            "in": "query",
            "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
              "nullable": true
            }
          },
          {
            "name": "addPlayedIndicator",
            "in": "query",
            "description": "Optional. Add a played indicator.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Add a played indicator.",
              "nullable": true
            }
          },
          {
            "name": "blur",
            "in": "query",
            "description": "Optional. Blur image.",
            "schema": {
              "type": "integer",
              "description": "Optional. Blur image.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "backgroundColor",
            "in": "query",
            "description": "Optional. Apply a background color for transparent images.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a background color for transparent images.",
              "nullable": true
            }
          },
          {
            "name": "foregroundLayer",
            "in": "query",
            "description": "Optional. Apply a foreground layer on top of the image.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a foreground layer on top of the image.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Image stream returned.",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "head": {
        "tags": [
          "Image"
        ],
        "summary": "Get music genre image by name.",
        "operationId": "HeadMusicGenreImageByIndex",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "Music genre name.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Music genre name."
            }
          },
          {
            "name": "imageType",
            "in": "path",
            "description": "Image type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageType"
            }
          },
          {
            "name": "imageIndex",
            "in": "path",
            "description": "Image index.",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Image index.",
              "format": "int32"
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
            "schema": {
              "type": "string",
              "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
              "nullable": true
            }
          },
          {
            "name": "format",
            "in": "query",
            "description": "Determines the output format of the image - original,gif,jpg,png.",
            "schema": {
              "$ref": "#/components/schemas/ImageFormat"
            }
          },
          {
            "name": "maxWidth",
            "in": "query",
            "description": "The maximum image width to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxHeight",
            "in": "query",
            "description": "The maximum image height to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "percentPlayed",
            "in": "query",
            "description": "Optional. Percent to render for the percent played overlay.",
            "schema": {
              "type": "number",
              "description": "Optional. Percent to render for the percent played overlay.",
              "format": "double",
              "nullable": true
            }
          },
          {
            "name": "unplayedCount",
            "in": "query",
            "description": "Optional. Unplayed count overlay to render.",
            "schema": {
              "type": "integer",
              "description": "Optional. Unplayed count overlay to render.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "The fixed image width to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "The fixed image height to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "quality",
            "in": "query",
            "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
            "schema": {
              "type": "integer",
              "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cropWhitespace",
            "in": "query",
            "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
              "nullable": true
            }
          },
          {
            "name": "addPlayedIndicator",
            "in": "query",
            "description": "Optional. Add a played indicator.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Add a played indicator.",
              "nullable": true
            }
          },
          {
            "name": "blur",
            "in": "query",
            "description": "Optional. Blur image.",
            "schema": {
              "type": "integer",
              "description": "Optional. Blur image.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "backgroundColor",
            "in": "query",
            "description": "Optional. Apply a background color for transparent images.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a background color for transparent images.",
              "nullable": true
            }
          },
          {
            "name": "foregroundLayer",
            "in": "query",
            "description": "Optional. Apply a foreground layer on top of the image.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a foreground layer on top of the image.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Image stream returned.",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/Persons/{name}/Images/{imageType}": {
      "get": {
        "tags": [
          "Image"
        ],
        "summary": "Get person image by name.",
        "operationId": "GetPersonImage",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "Person name.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Person name."
            }
          },
          {
            "name": "imageType",
            "in": "path",
            "description": "Image type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageType"
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
            "schema": {
              "type": "string",
              "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
              "nullable": true
            }
          },
          {
            "name": "format",
            "in": "query",
            "description": "Determines the output format of the image - original,gif,jpg,png.",
            "schema": {
              "$ref": "#/components/schemas/ImageFormat"
            }
          },
          {
            "name": "maxWidth",
            "in": "query",
            "description": "The maximum image width to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxHeight",
            "in": "query",
            "description": "The maximum image height to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "percentPlayed",
            "in": "query",
            "description": "Optional. Percent to render for the percent played overlay.",
            "schema": {
              "type": "number",
              "description": "Optional. Percent to render for the percent played overlay.",
              "format": "double",
              "nullable": true
            }
          },
          {
            "name": "unplayedCount",
            "in": "query",
            "description": "Optional. Unplayed count overlay to render.",
            "schema": {
              "type": "integer",
              "description": "Optional. Unplayed count overlay to render.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "The fixed image width to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "The fixed image height to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "quality",
            "in": "query",
            "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
            "schema": {
              "type": "integer",
              "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cropWhitespace",
            "in": "query",
            "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
              "nullable": true
            }
          },
          {
            "name": "addPlayedIndicator",
            "in": "query",
            "description": "Optional. Add a played indicator.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Add a played indicator.",
              "nullable": true
            }
          },
          {
            "name": "blur",
            "in": "query",
            "description": "Optional. Blur image.",
            "schema": {
              "type": "integer",
              "description": "Optional. Blur image.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "backgroundColor",
            "in": "query",
            "description": "Optional. Apply a background color for transparent images.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a background color for transparent images.",
              "nullable": true
            }
          },
          {
            "name": "foregroundLayer",
            "in": "query",
            "description": "Optional. Apply a foreground layer on top of the image.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a foreground layer on top of the image.",
              "nullable": true
            }
          },
          {
            "name": "imageIndex",
            "in": "query",
            "description": "Image index.",
            "schema": {
              "type": "integer",
              "description": "Image index.",
              "format": "int32",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Image stream returned.",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "head": {
        "tags": [
          "Image"
        ],
        "summary": "Get person image by name.",
        "operationId": "HeadPersonImage",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "Person name.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Person name."
            }
          },
          {
            "name": "imageType",
            "in": "path",
            "description": "Image type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageType"
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
            "schema": {
              "type": "string",
              "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
              "nullable": true
            }
          },
          {
            "name": "format",
            "in": "query",
            "description": "Determines the output format of the image - original,gif,jpg,png.",
            "schema": {
              "$ref": "#/components/schemas/ImageFormat"
            }
          },
          {
            "name": "maxWidth",
            "in": "query",
            "description": "The maximum image width to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxHeight",
            "in": "query",
            "description": "The maximum image height to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "percentPlayed",
            "in": "query",
            "description": "Optional. Percent to render for the percent played overlay.",
            "schema": {
              "type": "number",
              "description": "Optional. Percent to render for the percent played overlay.",
              "format": "double",
              "nullable": true
            }
          },
          {
            "name": "unplayedCount",
            "in": "query",
            "description": "Optional. Unplayed count overlay to render.",
            "schema": {
              "type": "integer",
              "description": "Optional. Unplayed count overlay to render.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "The fixed image width to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "The fixed image height to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "quality",
            "in": "query",
            "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
            "schema": {
              "type": "integer",
              "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cropWhitespace",
            "in": "query",
            "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
              "nullable": true
            }
          },
          {
            "name": "addPlayedIndicator",
            "in": "query",
            "description": "Optional. Add a played indicator.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Add a played indicator.",
              "nullable": true
            }
          },
          {
            "name": "blur",
            "in": "query",
            "description": "Optional. Blur image.",
            "schema": {
              "type": "integer",
              "description": "Optional. Blur image.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "backgroundColor",
            "in": "query",
            "description": "Optional. Apply a background color for transparent images.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a background color for transparent images.",
              "nullable": true
            }
          },
          {
            "name": "foregroundLayer",
            "in": "query",
            "description": "Optional. Apply a foreground layer on top of the image.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a foreground layer on top of the image.",
              "nullable": true
            }
          },
          {
            "name": "imageIndex",
            "in": "query",
            "description": "Image index.",
            "schema": {
              "type": "integer",
              "description": "Image index.",
              "format": "int32",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Image stream returned.",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/Persons/{name}/Images/{imageType}/{imageIndex}": {
      "get": {
        "tags": [
          "Image"
        ],
        "summary": "Get person image by name.",
        "operationId": "GetPersonImageByIndex",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "Person name.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Person name."
            }
          },
          {
            "name": "imageType",
            "in": "path",
            "description": "Image type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageType"
            }
          },
          {
            "name": "imageIndex",
            "in": "path",
            "description": "Image index.",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Image index.",
              "format": "int32"
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
            "schema": {
              "type": "string",
              "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
              "nullable": true
            }
          },
          {
            "name": "format",
            "in": "query",
            "description": "Determines the output format of the image - original,gif,jpg,png.",
            "schema": {
              "$ref": "#/components/schemas/ImageFormat"
            }
          },
          {
            "name": "maxWidth",
            "in": "query",
            "description": "The maximum image width to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxHeight",
            "in": "query",
            "description": "The maximum image height to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "percentPlayed",
            "in": "query",
            "description": "Optional. Percent to render for the percent played overlay.",
            "schema": {
              "type": "number",
              "description": "Optional. Percent to render for the percent played overlay.",
              "format": "double",
              "nullable": true
            }
          },
          {
            "name": "unplayedCount",
            "in": "query",
            "description": "Optional. Unplayed count overlay to render.",
            "schema": {
              "type": "integer",
              "description": "Optional. Unplayed count overlay to render.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "The fixed image width to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "The fixed image height to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "quality",
            "in": "query",
            "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
            "schema": {
              "type": "integer",
              "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cropWhitespace",
            "in": "query",
            "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
              "nullable": true
            }
          },
          {
            "name": "addPlayedIndicator",
            "in": "query",
            "description": "Optional. Add a played indicator.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Add a played indicator.",
              "nullable": true
            }
          },
          {
            "name": "blur",
            "in": "query",
            "description": "Optional. Blur image.",
            "schema": {
              "type": "integer",
              "description": "Optional. Blur image.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "backgroundColor",
            "in": "query",
            "description": "Optional. Apply a background color for transparent images.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a background color for transparent images.",
              "nullable": true
            }
          },
          {
            "name": "foregroundLayer",
            "in": "query",
            "description": "Optional. Apply a foreground layer on top of the image.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a foreground layer on top of the image.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Image stream returned.",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "head": {
        "tags": [
          "Image"
        ],
        "summary": "Get person image by name.",
        "operationId": "HeadPersonImageByIndex",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "Person name.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Person name."
            }
          },
          {
            "name": "imageType",
            "in": "path",
            "description": "Image type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageType"
            }
          },
          {
            "name": "imageIndex",
            "in": "path",
            "description": "Image index.",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Image index.",
              "format": "int32"
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
            "schema": {
              "type": "string",
              "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
              "nullable": true
            }
          },
          {
            "name": "format",
            "in": "query",
            "description": "Determines the output format of the image - original,gif,jpg,png.",
            "schema": {
              "$ref": "#/components/schemas/ImageFormat"
            }
          },
          {
            "name": "maxWidth",
            "in": "query",
            "description": "The maximum image width to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxHeight",
            "in": "query",
            "description": "The maximum image height to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "percentPlayed",
            "in": "query",
            "description": "Optional. Percent to render for the percent played overlay.",
            "schema": {
              "type": "number",
              "description": "Optional. Percent to render for the percent played overlay.",
              "format": "double",
              "nullable": true
            }
          },
          {
            "name": "unplayedCount",
            "in": "query",
            "description": "Optional. Unplayed count overlay to render.",
            "schema": {
              "type": "integer",
              "description": "Optional. Unplayed count overlay to render.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "The fixed image width to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "The fixed image height to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "quality",
            "in": "query",
            "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
            "schema": {
              "type": "integer",
              "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cropWhitespace",
            "in": "query",
            "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
              "nullable": true
            }
          },
          {
            "name": "addPlayedIndicator",
            "in": "query",
            "description": "Optional. Add a played indicator.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Add a played indicator.",
              "nullable": true
            }
          },
          {
            "name": "blur",
            "in": "query",
            "description": "Optional. Blur image.",
            "schema": {
              "type": "integer",
              "description": "Optional. Blur image.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "backgroundColor",
            "in": "query",
            "description": "Optional. Apply a background color for transparent images.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a background color for transparent images.",
              "nullable": true
            }
          },
          {
            "name": "foregroundLayer",
            "in": "query",
            "description": "Optional. Apply a foreground layer on top of the image.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a foreground layer on top of the image.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Image stream returned.",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/Studios/{name}/Images/{imageType}": {
      "get": {
        "tags": [
          "Image"
        ],
        "summary": "Get studio image by name.",
        "operationId": "GetStudioImage",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "Studio name.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Studio name."
            }
          },
          {
            "name": "imageType",
            "in": "path",
            "description": "Image type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageType"
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
            "schema": {
              "type": "string",
              "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
              "nullable": true
            }
          },
          {
            "name": "format",
            "in": "query",
            "description": "Determines the output format of the image - original,gif,jpg,png.",
            "schema": {
              "$ref": "#/components/schemas/ImageFormat"
            }
          },
          {
            "name": "maxWidth",
            "in": "query",
            "description": "The maximum image width to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxHeight",
            "in": "query",
            "description": "The maximum image height to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "percentPlayed",
            "in": "query",
            "description": "Optional. Percent to render for the percent played overlay.",
            "schema": {
              "type": "number",
              "description": "Optional. Percent to render for the percent played overlay.",
              "format": "double",
              "nullable": true
            }
          },
          {
            "name": "unplayedCount",
            "in": "query",
            "description": "Optional. Unplayed count overlay to render.",
            "schema": {
              "type": "integer",
              "description": "Optional. Unplayed count overlay to render.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "The fixed image width to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "The fixed image height to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "quality",
            "in": "query",
            "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
            "schema": {
              "type": "integer",
              "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cropWhitespace",
            "in": "query",
            "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
              "nullable": true
            }
          },
          {
            "name": "addPlayedIndicator",
            "in": "query",
            "description": "Optional. Add a played indicator.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Add a played indicator.",
              "nullable": true
            }
          },
          {
            "name": "blur",
            "in": "query",
            "description": "Optional. Blur image.",
            "schema": {
              "type": "integer",
              "description": "Optional. Blur image.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "backgroundColor",
            "in": "query",
            "description": "Optional. Apply a background color for transparent images.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a background color for transparent images.",
              "nullable": true
            }
          },
          {
            "name": "foregroundLayer",
            "in": "query",
            "description": "Optional. Apply a foreground layer on top of the image.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a foreground layer on top of the image.",
              "nullable": true
            }
          },
          {
            "name": "imageIndex",
            "in": "query",
            "description": "Image index.",
            "schema": {
              "type": "integer",
              "description": "Image index.",
              "format": "int32",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Image stream returned.",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "head": {
        "tags": [
          "Image"
        ],
        "summary": "Get studio image by name.",
        "operationId": "HeadStudioImage",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "Studio name.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Studio name."
            }
          },
          {
            "name": "imageType",
            "in": "path",
            "description": "Image type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageType"
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
            "schema": {
              "type": "string",
              "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
              "nullable": true
            }
          },
          {
            "name": "format",
            "in": "query",
            "description": "Determines the output format of the image - original,gif,jpg,png.",
            "schema": {
              "$ref": "#/components/schemas/ImageFormat"
            }
          },
          {
            "name": "maxWidth",
            "in": "query",
            "description": "The maximum image width to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxHeight",
            "in": "query",
            "description": "The maximum image height to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "percentPlayed",
            "in": "query",
            "description": "Optional. Percent to render for the percent played overlay.",
            "schema": {
              "type": "number",
              "description": "Optional. Percent to render for the percent played overlay.",
              "format": "double",
              "nullable": true
            }
          },
          {
            "name": "unplayedCount",
            "in": "query",
            "description": "Optional. Unplayed count overlay to render.",
            "schema": {
              "type": "integer",
              "description": "Optional. Unplayed count overlay to render.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "The fixed image width to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "The fixed image height to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "quality",
            "in": "query",
            "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
            "schema": {
              "type": "integer",
              "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cropWhitespace",
            "in": "query",
            "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
              "nullable": true
            }
          },
          {
            "name": "addPlayedIndicator",
            "in": "query",
            "description": "Optional. Add a played indicator.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Add a played indicator.",
              "nullable": true
            }
          },
          {
            "name": "blur",
            "in": "query",
            "description": "Optional. Blur image.",
            "schema": {
              "type": "integer",
              "description": "Optional. Blur image.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "backgroundColor",
            "in": "query",
            "description": "Optional. Apply a background color for transparent images.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a background color for transparent images.",
              "nullable": true
            }
          },
          {
            "name": "foregroundLayer",
            "in": "query",
            "description": "Optional. Apply a foreground layer on top of the image.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a foreground layer on top of the image.",
              "nullable": true
            }
          },
          {
            "name": "imageIndex",
            "in": "query",
            "description": "Image index.",
            "schema": {
              "type": "integer",
              "description": "Image index.",
              "format": "int32",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Image stream returned.",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/Studios/{name}/Images/{imageType}/{imageIndex}": {
      "get": {
        "tags": [
          "Image"
        ],
        "summary": "Get studio image by name.",
        "operationId": "GetStudioImageByIndex",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "Studio name.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Studio name."
            }
          },
          {
            "name": "imageType",
            "in": "path",
            "description": "Image type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageType"
            }
          },
          {
            "name": "imageIndex",
            "in": "path",
            "description": "Image index.",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Image index.",
              "format": "int32"
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
            "schema": {
              "type": "string",
              "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
              "nullable": true
            }
          },
          {
            "name": "format",
            "in": "query",
            "description": "Determines the output format of the image - original,gif,jpg,png.",
            "schema": {
              "$ref": "#/components/schemas/ImageFormat"
            }
          },
          {
            "name": "maxWidth",
            "in": "query",
            "description": "The maximum image width to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxHeight",
            "in": "query",
            "description": "The maximum image height to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "percentPlayed",
            "in": "query",
            "description": "Optional. Percent to render for the percent played overlay.",
            "schema": {
              "type": "number",
              "description": "Optional. Percent to render for the percent played overlay.",
              "format": "double",
              "nullable": true
            }
          },
          {
            "name": "unplayedCount",
            "in": "query",
            "description": "Optional. Unplayed count overlay to render.",
            "schema": {
              "type": "integer",
              "description": "Optional. Unplayed count overlay to render.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "The fixed image width to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "The fixed image height to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "quality",
            "in": "query",
            "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
            "schema": {
              "type": "integer",
              "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cropWhitespace",
            "in": "query",
            "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
              "nullable": true
            }
          },
          {
            "name": "addPlayedIndicator",
            "in": "query",
            "description": "Optional. Add a played indicator.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Add a played indicator.",
              "nullable": true
            }
          },
          {
            "name": "blur",
            "in": "query",
            "description": "Optional. Blur image.",
            "schema": {
              "type": "integer",
              "description": "Optional. Blur image.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "backgroundColor",
            "in": "query",
            "description": "Optional. Apply a background color for transparent images.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a background color for transparent images.",
              "nullable": true
            }
          },
          {
            "name": "foregroundLayer",
            "in": "query",
            "description": "Optional. Apply a foreground layer on top of the image.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a foreground layer on top of the image.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Image stream returned.",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "head": {
        "tags": [
          "Image"
        ],
        "summary": "Get studio image by name.",
        "operationId": "HeadStudioImageByIndex",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "Studio name.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Studio name."
            }
          },
          {
            "name": "imageType",
            "in": "path",
            "description": "Image type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageType"
            }
          },
          {
            "name": "imageIndex",
            "in": "path",
            "description": "Image index.",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Image index.",
              "format": "int32"
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
            "schema": {
              "type": "string",
              "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
              "nullable": true
            }
          },
          {
            "name": "format",
            "in": "query",
            "description": "Determines the output format of the image - original,gif,jpg,png.",
            "schema": {
              "$ref": "#/components/schemas/ImageFormat"
            }
          },
          {
            "name": "maxWidth",
            "in": "query",
            "description": "The maximum image width to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxHeight",
            "in": "query",
            "description": "The maximum image height to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "percentPlayed",
            "in": "query",
            "description": "Optional. Percent to render for the percent played overlay.",
            "schema": {
              "type": "number",
              "description": "Optional. Percent to render for the percent played overlay.",
              "format": "double",
              "nullable": true
            }
          },
          {
            "name": "unplayedCount",
            "in": "query",
            "description": "Optional. Unplayed count overlay to render.",
            "schema": {
              "type": "integer",
              "description": "Optional. Unplayed count overlay to render.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "The fixed image width to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "The fixed image height to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "quality",
            "in": "query",
            "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
            "schema": {
              "type": "integer",
              "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cropWhitespace",
            "in": "query",
            "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
              "nullable": true
            }
          },
          {
            "name": "addPlayedIndicator",
            "in": "query",
            "description": "Optional. Add a played indicator.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Add a played indicator.",
              "nullable": true
            }
          },
          {
            "name": "blur",
            "in": "query",
            "description": "Optional. Blur image.",
            "schema": {
              "type": "integer",
              "description": "Optional. Blur image.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "backgroundColor",
            "in": "query",
            "description": "Optional. Apply a background color for transparent images.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a background color for transparent images.",
              "nullable": true
            }
          },
          {
            "name": "foregroundLayer",
            "in": "query",
            "description": "Optional. Apply a foreground layer on top of the image.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a foreground layer on top of the image.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Image stream returned.",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/Users/{userId}/Images/{imageType}": {
      "post": {
        "tags": [
          "Image"
        ],
        "summary": "Sets the user image.",
        "operationId": "PostUserImage",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "User Id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "User Id.",
              "format": "uuid"
            }
          },
          {
            "name": "imageType",
            "in": "path",
            "description": "(Unused) Image type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageType"
            }
          },
          {
            "name": "index",
            "in": "query",
            "description": "(Unused) Image index.",
            "schema": {
              "type": "integer",
              "description": "(Unused) Image index.",
              "format": "int32",
              "nullable": true
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Image updated."
          },
          "403": {
            "description": "User does not have permission to delete the image.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Image"
        ],
        "summary": "Delete the user's image.",
        "operationId": "DeleteUserImage",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "User Id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "User Id.",
              "format": "uuid"
            }
          },
          {
            "name": "imageType",
            "in": "path",
            "description": "(Unused) Image type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageType"
            }
          },
          {
            "name": "index",
            "in": "query",
            "description": "(Unused) Image index.",
            "schema": {
              "type": "integer",
              "description": "(Unused) Image index.",
              "format": "int32",
              "nullable": true
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Image deleted."
          },
          "403": {
            "description": "User does not have permission to delete the image.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      },
      "get": {
        "tags": [
          "Image"
        ],
        "summary": "Get user profile image.",
        "operationId": "GetUserImage",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "User id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "User id.",
              "format": "uuid"
            }
          },
          {
            "name": "imageType",
            "in": "path",
            "description": "Image type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageType"
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
            "schema": {
              "type": "string",
              "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
              "nullable": true
            }
          },
          {
            "name": "format",
            "in": "query",
            "description": "Determines the output format of the image - original,gif,jpg,png.",
            "schema": {
              "$ref": "#/components/schemas/ImageFormat"
            }
          },
          {
            "name": "maxWidth",
            "in": "query",
            "description": "The maximum image width to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxHeight",
            "in": "query",
            "description": "The maximum image height to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "percentPlayed",
            "in": "query",
            "description": "Optional. Percent to render for the percent played overlay.",
            "schema": {
              "type": "number",
              "description": "Optional. Percent to render for the percent played overlay.",
              "format": "double",
              "nullable": true
            }
          },
          {
            "name": "unplayedCount",
            "in": "query",
            "description": "Optional. Unplayed count overlay to render.",
            "schema": {
              "type": "integer",
              "description": "Optional. Unplayed count overlay to render.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "The fixed image width to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "The fixed image height to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "quality",
            "in": "query",
            "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
            "schema": {
              "type": "integer",
              "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cropWhitespace",
            "in": "query",
            "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
              "nullable": true
            }
          },
          {
            "name": "addPlayedIndicator",
            "in": "query",
            "description": "Optional. Add a played indicator.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Add a played indicator.",
              "nullable": true
            }
          },
          {
            "name": "blur",
            "in": "query",
            "description": "Optional. Blur image.",
            "schema": {
              "type": "integer",
              "description": "Optional. Blur image.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "backgroundColor",
            "in": "query",
            "description": "Optional. Apply a background color for transparent images.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a background color for transparent images.",
              "nullable": true
            }
          },
          {
            "name": "foregroundLayer",
            "in": "query",
            "description": "Optional. Apply a foreground layer on top of the image.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a foreground layer on top of the image.",
              "nullable": true
            }
          },
          {
            "name": "imageIndex",
            "in": "query",
            "description": "Image index.",
            "schema": {
              "type": "integer",
              "description": "Image index.",
              "format": "int32",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Image stream returned.",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "head": {
        "tags": [
          "Image"
        ],
        "summary": "Get user profile image.",
        "operationId": "HeadUserImage",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "User id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "User id.",
              "format": "uuid"
            }
          },
          {
            "name": "imageType",
            "in": "path",
            "description": "Image type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageType"
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
            "schema": {
              "type": "string",
              "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
              "nullable": true
            }
          },
          {
            "name": "format",
            "in": "query",
            "description": "Determines the output format of the image - original,gif,jpg,png.",
            "schema": {
              "$ref": "#/components/schemas/ImageFormat"
            }
          },
          {
            "name": "maxWidth",
            "in": "query",
            "description": "The maximum image width to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxHeight",
            "in": "query",
            "description": "The maximum image height to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "percentPlayed",
            "in": "query",
            "description": "Optional. Percent to render for the percent played overlay.",
            "schema": {
              "type": "number",
              "description": "Optional. Percent to render for the percent played overlay.",
              "format": "double",
              "nullable": true
            }
          },
          {
            "name": "unplayedCount",
            "in": "query",
            "description": "Optional. Unplayed count overlay to render.",
            "schema": {
              "type": "integer",
              "description": "Optional. Unplayed count overlay to render.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "The fixed image width to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "The fixed image height to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "quality",
            "in": "query",
            "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
            "schema": {
              "type": "integer",
              "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cropWhitespace",
            "in": "query",
            "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
              "nullable": true
            }
          },
          {
            "name": "addPlayedIndicator",
            "in": "query",
            "description": "Optional. Add a played indicator.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Add a played indicator.",
              "nullable": true
            }
          },
          {
            "name": "blur",
            "in": "query",
            "description": "Optional. Blur image.",
            "schema": {
              "type": "integer",
              "description": "Optional. Blur image.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "backgroundColor",
            "in": "query",
            "description": "Optional. Apply a background color for transparent images.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a background color for transparent images.",
              "nullable": true
            }
          },
          {
            "name": "foregroundLayer",
            "in": "query",
            "description": "Optional. Apply a foreground layer on top of the image.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a foreground layer on top of the image.",
              "nullable": true
            }
          },
          {
            "name": "imageIndex",
            "in": "query",
            "description": "Image index.",
            "schema": {
              "type": "integer",
              "description": "Image index.",
              "format": "int32",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Image stream returned.",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/Users/{userId}/Images/{imageType}/{imageIndex}": {
      "get": {
        "tags": [
          "Image"
        ],
        "summary": "Get user profile image.",
        "operationId": "GetUserImageByIndex",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "User id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "User id.",
              "format": "uuid"
            }
          },
          {
            "name": "imageType",
            "in": "path",
            "description": "Image type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageType"
            }
          },
          {
            "name": "imageIndex",
            "in": "path",
            "description": "Image index.",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Image index.",
              "format": "int32"
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
            "schema": {
              "type": "string",
              "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
              "nullable": true
            }
          },
          {
            "name": "format",
            "in": "query",
            "description": "Determines the output format of the image - original,gif,jpg,png.",
            "schema": {
              "$ref": "#/components/schemas/ImageFormat"
            }
          },
          {
            "name": "maxWidth",
            "in": "query",
            "description": "The maximum image width to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxHeight",
            "in": "query",
            "description": "The maximum image height to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "percentPlayed",
            "in": "query",
            "description": "Optional. Percent to render for the percent played overlay.",
            "schema": {
              "type": "number",
              "description": "Optional. Percent to render for the percent played overlay.",
              "format": "double",
              "nullable": true
            }
          },
          {
            "name": "unplayedCount",
            "in": "query",
            "description": "Optional. Unplayed count overlay to render.",
            "schema": {
              "type": "integer",
              "description": "Optional. Unplayed count overlay to render.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "The fixed image width to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "The fixed image height to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "quality",
            "in": "query",
            "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
            "schema": {
              "type": "integer",
              "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cropWhitespace",
            "in": "query",
            "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
              "nullable": true
            }
          },
          {
            "name": "addPlayedIndicator",
            "in": "query",
            "description": "Optional. Add a played indicator.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Add a played indicator.",
              "nullable": true
            }
          },
          {
            "name": "blur",
            "in": "query",
            "description": "Optional. Blur image.",
            "schema": {
              "type": "integer",
              "description": "Optional. Blur image.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "backgroundColor",
            "in": "query",
            "description": "Optional. Apply a background color for transparent images.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a background color for transparent images.",
              "nullable": true
            }
          },
          {
            "name": "foregroundLayer",
            "in": "query",
            "description": "Optional. Apply a foreground layer on top of the image.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a foreground layer on top of the image.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Image stream returned.",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "head": {
        "tags": [
          "Image"
        ],
        "summary": "Get user profile image.",
        "operationId": "HeadUserImageByIndex",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "User id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "User id.",
              "format": "uuid"
            }
          },
          {
            "name": "imageType",
            "in": "path",
            "description": "Image type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageType"
            }
          },
          {
            "name": "imageIndex",
            "in": "path",
            "description": "Image index.",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Image index.",
              "format": "int32"
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
            "schema": {
              "type": "string",
              "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
              "nullable": true
            }
          },
          {
            "name": "format",
            "in": "query",
            "description": "Determines the output format of the image - original,gif,jpg,png.",
            "schema": {
              "$ref": "#/components/schemas/ImageFormat"
            }
          },
          {
            "name": "maxWidth",
            "in": "query",
            "description": "The maximum image width to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxHeight",
            "in": "query",
            "description": "The maximum image height to return.",
            "schema": {
              "type": "integer",
              "description": "The maximum image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "percentPlayed",
            "in": "query",
            "description": "Optional. Percent to render for the percent played overlay.",
            "schema": {
              "type": "number",
              "description": "Optional. Percent to render for the percent played overlay.",
              "format": "double",
              "nullable": true
            }
          },
          {
            "name": "unplayedCount",
            "in": "query",
            "description": "Optional. Unplayed count overlay to render.",
            "schema": {
              "type": "integer",
              "description": "Optional. Unplayed count overlay to render.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "The fixed image width to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image width to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "The fixed image height to return.",
            "schema": {
              "type": "integer",
              "description": "The fixed image height to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "quality",
            "in": "query",
            "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
            "schema": {
              "type": "integer",
              "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cropWhitespace",
            "in": "query",
            "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
              "nullable": true
            }
          },
          {
            "name": "addPlayedIndicator",
            "in": "query",
            "description": "Optional. Add a played indicator.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Add a played indicator.",
              "nullable": true
            }
          },
          {
            "name": "blur",
            "in": "query",
            "description": "Optional. Blur image.",
            "schema": {
              "type": "integer",
              "description": "Optional. Blur image.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "backgroundColor",
            "in": "query",
            "description": "Optional. Apply a background color for transparent images.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a background color for transparent images.",
              "nullable": true
            }
          },
          {
            "name": "foregroundLayer",
            "in": "query",
            "description": "Optional. Apply a foreground layer on top of the image.",
            "schema": {
              "type": "string",
              "description": "Optional. Apply a foreground layer on top of the image.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Image stream returned.",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/Users/{userId}/Images/{imageType}/{index}": {
      "post": {
        "tags": [
          "Image"
        ],
        "summary": "Sets the user image.",
        "operationId": "PostUserImageByIndex",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "User Id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "User Id.",
              "format": "uuid"
            }
          },
          {
            "name": "imageType",
            "in": "path",
            "description": "(Unused) Image type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageType"
            }
          },
          {
            "name": "index",
            "in": "path",
            "description": "(Unused) Image index.",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "(Unused) Image index.",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Image updated."
          },
          "403": {
            "description": "User does not have permission to delete the image.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Image"
        ],
        "summary": "Delete the user's image.",
        "operationId": "DeleteUserImageByIndex",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "User Id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "User Id.",
              "format": "uuid"
            }
          },
          {
            "name": "imageType",
            "in": "path",
            "description": "(Unused) Image type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageType"
            }
          },
          {
            "name": "index",
            "in": "path",
            "description": "(Unused) Image index.",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "(Unused) Image index.",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Image deleted."
          },
          "403": {
            "description": "User does not have permission to delete the image.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Images/General": {
      "get": {
        "tags": [
          "ImageByName"
        ],
        "summary": "Get all general images.",
        "operationId": "GetGeneralImages",
        "responses": {
          "200": {
            "description": "Retrieved list of images.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ImageByNameInfo"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ImageByNameInfo"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ImageByNameInfo"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Images/General/{name}/{type}": {
      "get": {
        "tags": [
          "ImageByName"
        ],
        "summary": "Get General Image.",
        "operationId": "GetGeneralImage",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "The name of the image.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The name of the image."
            }
          },
          {
            "name": "type",
            "in": "path",
            "description": "Image Type (primary, backdrop, logo, etc).",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Image Type (primary, backdrop, logo, etc)."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Image stream retrieved.",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Image not found.",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/Images/MediaInfo": {
      "get": {
        "tags": [
          "ImageByName"
        ],
        "summary": "Get all media info images.",
        "operationId": "GetMediaInfoImages",
        "responses": {
          "200": {
            "description": "Image list retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ImageByNameInfo"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ImageByNameInfo"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ImageByNameInfo"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Images/MediaInfo/{theme}/{name}": {
      "get": {
        "tags": [
          "ImageByName"
        ],
        "summary": "Get media info image.",
        "operationId": "GetMediaInfoImage",
        "parameters": [
          {
            "name": "theme",
            "in": "path",
            "description": "The theme to get the image from.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The theme to get the image from."
            }
          },
          {
            "name": "name",
            "in": "path",
            "description": "The name of the image.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The name of the image."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Image stream retrieved.",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Image not found.",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/Images/Ratings": {
      "get": {
        "tags": [
          "ImageByName"
        ],
        "summary": "Get all general images.",
        "operationId": "GetRatingImages",
        "responses": {
          "200": {
            "description": "Retrieved list of images.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ImageByNameInfo"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ImageByNameInfo"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ImageByNameInfo"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Images/Ratings/{theme}/{name}": {
      "get": {
        "tags": [
          "ImageByName"
        ],
        "summary": "Get rating image.",
        "operationId": "GetRatingImage",
        "parameters": [
          {
            "name": "theme",
            "in": "path",
            "description": "The theme to get the image from.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The theme to get the image from."
            }
          },
          {
            "name": "name",
            "in": "path",
            "description": "The name of the image.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The name of the image."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Image stream retrieved.",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Image not found.",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/Albums/{id}/InstantMix": {
      "get": {
        "tags": [
          "InstantMix"
        ],
        "summary": "Creates an instant playlist based on a given song.",
        "operationId": "GetInstantMixFromAlbum",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. Filter by user id, and attach user data.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by user id, and attach user data.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Optional. The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of records to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional. Specify additional fields of information to return in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFields"
              },
              "description": "Optional. Specify additional fields of information to return in the output.",
              "nullable": true
            }
          },
          {
            "name": "enableImages",
            "in": "query",
            "description": "Optional. Include image information in output.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Include image information in output.",
              "nullable": true
            }
          },
          {
            "name": "enableUserData",
            "in": "query",
            "description": "Optional. Include user data.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Include user data.",
              "nullable": true
            }
          },
          {
            "name": "imageTypeLimit",
            "in": "query",
            "description": "Optional. The max number of images to return, per image type.",
            "schema": {
              "type": "integer",
              "description": "Optional. The max number of images to return, per image type.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "enableImageTypes",
            "in": "query",
            "description": "Optional. The image types to include in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ImageType"
              },
              "description": "Optional. The image types to include in the output.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Instant playlist returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Artists/{id}/InstantMix": {
      "get": {
        "tags": [
          "InstantMix"
        ],
        "summary": "Creates an instant playlist based on a given song.",
        "operationId": "GetInstantMixFromArtists",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. Filter by user id, and attach user data.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by user id, and attach user data.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Optional. The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of records to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional. Specify additional fields of information to return in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFields"
              },
              "description": "Optional. Specify additional fields of information to return in the output.",
              "nullable": true
            }
          },
          {
            "name": "enableImages",
            "in": "query",
            "description": "Optional. Include image information in output.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Include image information in output.",
              "nullable": true
            }
          },
          {
            "name": "enableUserData",
            "in": "query",
            "description": "Optional. Include user data.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Include user data.",
              "nullable": true
            }
          },
          {
            "name": "imageTypeLimit",
            "in": "query",
            "description": "Optional. The max number of images to return, per image type.",
            "schema": {
              "type": "integer",
              "description": "Optional. The max number of images to return, per image type.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "enableImageTypes",
            "in": "query",
            "description": "Optional. The image types to include in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ImageType"
              },
              "description": "Optional. The image types to include in the output.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Instant playlist returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Items/{id}/InstantMix": {
      "get": {
        "tags": [
          "InstantMix"
        ],
        "summary": "Creates an instant playlist based on a given song.",
        "operationId": "GetInstantMixFromItem",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. Filter by user id, and attach user data.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by user id, and attach user data.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Optional. The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of records to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional. Specify additional fields of information to return in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFields"
              },
              "description": "Optional. Specify additional fields of information to return in the output.",
              "nullable": true
            }
          },
          {
            "name": "enableImages",
            "in": "query",
            "description": "Optional. Include image information in output.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Include image information in output.",
              "nullable": true
            }
          },
          {
            "name": "enableUserData",
            "in": "query",
            "description": "Optional. Include user data.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Include user data.",
              "nullable": true
            }
          },
          {
            "name": "imageTypeLimit",
            "in": "query",
            "description": "Optional. The max number of images to return, per image type.",
            "schema": {
              "type": "integer",
              "description": "Optional. The max number of images to return, per image type.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "enableImageTypes",
            "in": "query",
            "description": "Optional. The image types to include in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ImageType"
              },
              "description": "Optional. The image types to include in the output.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Instant playlist returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/MusicGenres/{id}/InstantMix": {
      "get": {
        "tags": [
          "InstantMix"
        ],
        "summary": "Creates an instant playlist based on a given song.",
        "operationId": "GetInstantMixFromMusicGenres",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. Filter by user id, and attach user data.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by user id, and attach user data.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Optional. The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of records to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional. Specify additional fields of information to return in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFields"
              },
              "description": "Optional. Specify additional fields of information to return in the output.",
              "nullable": true
            }
          },
          {
            "name": "enableImages",
            "in": "query",
            "description": "Optional. Include image information in output.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Include image information in output.",
              "nullable": true
            }
          },
          {
            "name": "enableUserData",
            "in": "query",
            "description": "Optional. Include user data.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Include user data.",
              "nullable": true
            }
          },
          {
            "name": "imageTypeLimit",
            "in": "query",
            "description": "Optional. The max number of images to return, per image type.",
            "schema": {
              "type": "integer",
              "description": "Optional. The max number of images to return, per image type.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "enableImageTypes",
            "in": "query",
            "description": "Optional. The image types to include in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ImageType"
              },
              "description": "Optional. The image types to include in the output.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Instant playlist returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/MusicGenres/{name}/InstantMix": {
      "get": {
        "tags": [
          "InstantMix"
        ],
        "summary": "Creates an instant playlist based on a given song.",
        "operationId": "GetInstantMixFromMusicGenre",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "The genre name.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The genre name."
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. Filter by user id, and attach user data.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by user id, and attach user data.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Optional. The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of records to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional. Specify additional fields of information to return in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFields"
              },
              "description": "Optional. Specify additional fields of information to return in the output.",
              "nullable": true
            }
          },
          {
            "name": "enableImages",
            "in": "query",
            "description": "Optional. Include image information in output.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Include image information in output.",
              "nullable": true
            }
          },
          {
            "name": "enableUserData",
            "in": "query",
            "description": "Optional. Include user data.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Include user data.",
              "nullable": true
            }
          },
          {
            "name": "imageTypeLimit",
            "in": "query",
            "description": "Optional. The max number of images to return, per image type.",
            "schema": {
              "type": "integer",
              "description": "Optional. The max number of images to return, per image type.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "enableImageTypes",
            "in": "query",
            "description": "Optional. The image types to include in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ImageType"
              },
              "description": "Optional. The image types to include in the output.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Instant playlist returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Playlists/{id}/InstantMix": {
      "get": {
        "tags": [
          "InstantMix"
        ],
        "summary": "Creates an instant playlist based on a given song.",
        "operationId": "GetInstantMixFromPlaylist",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. Filter by user id, and attach user data.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by user id, and attach user data.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Optional. The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of records to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional. Specify additional fields of information to return in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFields"
              },
              "description": "Optional. Specify additional fields of information to return in the output.",
              "nullable": true
            }
          },
          {
            "name": "enableImages",
            "in": "query",
            "description": "Optional. Include image information in output.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Include image information in output.",
              "nullable": true
            }
          },
          {
            "name": "enableUserData",
            "in": "query",
            "description": "Optional. Include user data.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Include user data.",
              "nullable": true
            }
          },
          {
            "name": "imageTypeLimit",
            "in": "query",
            "description": "Optional. The max number of images to return, per image type.",
            "schema": {
              "type": "integer",
              "description": "Optional. The max number of images to return, per image type.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "enableImageTypes",
            "in": "query",
            "description": "Optional. The image types to include in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ImageType"
              },
              "description": "Optional. The image types to include in the output.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Instant playlist returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Songs/{id}/InstantMix": {
      "get": {
        "tags": [
          "InstantMix"
        ],
        "summary": "Creates an instant playlist based on a given song.",
        "operationId": "GetInstantMixFromSong",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. Filter by user id, and attach user data.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by user id, and attach user data.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Optional. The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of records to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional. Specify additional fields of information to return in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFields"
              },
              "description": "Optional. Specify additional fields of information to return in the output.",
              "nullable": true
            }
          },
          {
            "name": "enableImages",
            "in": "query",
            "description": "Optional. Include image information in output.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Include image information in output.",
              "nullable": true
            }
          },
          {
            "name": "enableUserData",
            "in": "query",
            "description": "Optional. Include user data.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Include user data.",
              "nullable": true
            }
          },
          {
            "name": "imageTypeLimit",
            "in": "query",
            "description": "Optional. The max number of images to return, per image type.",
            "schema": {
              "type": "integer",
              "description": "Optional. The max number of images to return, per image type.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "enableImageTypes",
            "in": "query",
            "description": "Optional. The image types to include in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ImageType"
              },
              "description": "Optional. The image types to include in the output.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Instant playlist returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Items/{itemId}/ExternalIdInfos": {
      "get": {
        "tags": [
          "ItemLookup"
        ],
        "summary": "Get the item's external id info.",
        "operationId": "GetExternalIdInfos",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "Item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Item id.",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "External id info retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ExternalIdInfo"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ExternalIdInfo"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ExternalIdInfo"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation",
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Items/RemoteSearch/Apply/{itemId}": {
      "post": {
        "tags": [
          "ItemLookup"
        ],
        "summary": "Applies search criteria to an item and refreshes metadata.",
        "operationId": "ApplySearchCriteria",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "Item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Item id.",
              "format": "uuid"
            }
          },
          {
            "name": "replaceAllImages",
            "in": "query",
            "description": "Optional. Whether or not to replace all images. Default: True.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether or not to replace all images. Default: True.",
              "default": true
            }
          }
        ],
        "requestBody": {
          "description": "The remote search result.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RemoteSearchResult"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RemoteSearchResult"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RemoteSearchResult"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Item metadata refreshed."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation",
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Items/RemoteSearch/Book": {
      "post": {
        "tags": [
          "ItemLookup"
        ],
        "summary": "Get book remote search.",
        "operationId": "GetBookRemoteSearchResults",
        "requestBody": {
          "description": "Remote search query.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BookInfoRemoteSearchQuery"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/BookInfoRemoteSearchQuery"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/BookInfoRemoteSearchQuery"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Book remote search executed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RemoteSearchResult"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RemoteSearchResult"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RemoteSearchResult"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Items/RemoteSearch/BoxSet": {
      "post": {
        "tags": [
          "ItemLookup"
        ],
        "summary": "Get box set remote search.",
        "operationId": "GetBoxSetRemoteSearchResults",
        "requestBody": {
          "description": "Remote search query.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BoxSetInfoRemoteSearchQuery"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/BoxSetInfoRemoteSearchQuery"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/BoxSetInfoRemoteSearchQuery"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Box set remote search executed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RemoteSearchResult"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RemoteSearchResult"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RemoteSearchResult"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Items/RemoteSearch/Image": {
      "get": {
        "tags": [
          "ItemLookup"
        ],
        "summary": "Gets a remote image.",
        "operationId": "GetRemoteSearchImage",
        "parameters": [
          {
            "name": "imageUrl",
            "in": "query",
            "description": "The image url.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The image url."
            }
          },
          {
            "name": "providerName",
            "in": "query",
            "description": "The provider name.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The provider name."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Remote image retrieved.",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Items/RemoteSearch/Movie": {
      "post": {
        "tags": [
          "ItemLookup"
        ],
        "summary": "Get movie remote search.",
        "operationId": "GetMovieRemoteSearchResults",
        "requestBody": {
          "description": "Remote search query.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MovieInfoRemoteSearchQuery"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MovieInfoRemoteSearchQuery"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MovieInfoRemoteSearchQuery"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Movie remote search executed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RemoteSearchResult"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RemoteSearchResult"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RemoteSearchResult"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Items/RemoteSearch/MusicAlbum": {
      "post": {
        "tags": [
          "ItemLookup"
        ],
        "summary": "Get music album remote search.",
        "operationId": "GetMusicAlbumRemoteSearchResults",
        "requestBody": {
          "description": "Remote search query.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AlbumInfoRemoteSearchQuery"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AlbumInfoRemoteSearchQuery"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AlbumInfoRemoteSearchQuery"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Music album remote search executed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RemoteSearchResult"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RemoteSearchResult"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RemoteSearchResult"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Items/RemoteSearch/MusicArtist": {
      "post": {
        "tags": [
          "ItemLookup"
        ],
        "summary": "Get music artist remote search.",
        "operationId": "GetMusicArtistRemoteSearchResults",
        "requestBody": {
          "description": "Remote search query.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ArtistInfoRemoteSearchQuery"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ArtistInfoRemoteSearchQuery"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ArtistInfoRemoteSearchQuery"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Music artist remote search executed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RemoteSearchResult"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RemoteSearchResult"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RemoteSearchResult"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Items/RemoteSearch/MusicVideo": {
      "post": {
        "tags": [
          "ItemLookup"
        ],
        "summary": "Get music video remote search.",
        "operationId": "GetMusicVideoRemoteSearchResults",
        "requestBody": {
          "description": "Remote search query.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MusicVideoInfoRemoteSearchQuery"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MusicVideoInfoRemoteSearchQuery"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MusicVideoInfoRemoteSearchQuery"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Music video remote search executed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RemoteSearchResult"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RemoteSearchResult"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RemoteSearchResult"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Items/RemoteSearch/Person": {
      "post": {
        "tags": [
          "ItemLookup"
        ],
        "summary": "Get person remote search.",
        "operationId": "GetPersonRemoteSearchResults",
        "requestBody": {
          "description": "Remote search query.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PersonLookupInfoRemoteSearchQuery"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PersonLookupInfoRemoteSearchQuery"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PersonLookupInfoRemoteSearchQuery"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Person remote search executed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RemoteSearchResult"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RemoteSearchResult"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RemoteSearchResult"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation",
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Items/RemoteSearch/Series": {
      "post": {
        "tags": [
          "ItemLookup"
        ],
        "summary": "Get series remote search.",
        "operationId": "GetSeriesRemoteSearchResults",
        "requestBody": {
          "description": "Remote search query.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SeriesInfoRemoteSearchQuery"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SeriesInfoRemoteSearchQuery"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SeriesInfoRemoteSearchQuery"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Series remote search executed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RemoteSearchResult"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RemoteSearchResult"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RemoteSearchResult"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Items/RemoteSearch/Trailer": {
      "post": {
        "tags": [
          "ItemLookup"
        ],
        "summary": "Get trailer remote search.",
        "operationId": "GetTrailerRemoteSearchResults",
        "requestBody": {
          "description": "Remote search query.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TrailerInfoRemoteSearchQuery"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TrailerInfoRemoteSearchQuery"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TrailerInfoRemoteSearchQuery"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Trailer remote search executed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RemoteSearchResult"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RemoteSearchResult"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RemoteSearchResult"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Items/{itemId}/Refresh": {
      "post": {
        "tags": [
          "ItemRefresh"
        ],
        "summary": "Refreshes metadata for an item.",
        "operationId": "Post",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "Item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Item id.",
              "format": "uuid"
            }
          },
          {
            "name": "metadataRefreshMode",
            "in": "query",
            "description": "(Optional) Specifies the metadata refresh mode.",
            "schema": {
              "$ref": "#/components/schemas/MetadataRefreshMode"
            }
          },
          {
            "name": "imageRefreshMode",
            "in": "query",
            "description": "(Optional) Specifies the image refresh mode.",
            "schema": {
              "$ref": "#/components/schemas/MetadataRefreshMode"
            }
          },
          {
            "name": "replaceAllMetadata",
            "in": "query",
            "description": "(Optional) Determines if metadata should be replaced. Only applicable if mode is FullRefresh.",
            "schema": {
              "type": "boolean",
              "description": "(Optional) Determines if metadata should be replaced. Only applicable if mode is FullRefresh.",
              "default": false
            }
          },
          {
            "name": "replaceAllImages",
            "in": "query",
            "description": "(Optional) Determines if images should be replaced. Only applicable if mode is FullRefresh.",
            "schema": {
              "type": "boolean",
              "description": "(Optional) Determines if images should be replaced. Only applicable if mode is FullRefresh.",
              "default": false
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Item metadata refresh queued."
          },
          "404": {
            "description": "Item to refresh not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Items": {
      "get": {
        "tags": [
          "Items"
        ],
        "summary": "Gets items based on a query.",
        "operationId": "GetItems",
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "description": "The user id supplied as query parameter.",
            "schema": {
              "type": "string",
              "description": "The user id supplied as query parameter.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "maxOfficialRating",
            "in": "query",
            "description": "Optional filter by maximum official rating (PG, PG-13, TV-MA, etc).",
            "schema": {
              "type": "string",
              "description": "Optional filter by maximum official rating (PG, PG-13, TV-MA, etc).",
              "nullable": true
            }
          },
          {
            "name": "hasThemeSong",
            "in": "query",
            "description": "Optional filter by items with theme songs.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items with theme songs.",
              "nullable": true
            }
          },
          {
            "name": "hasThemeVideo",
            "in": "query",
            "description": "Optional filter by items with theme videos.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items with theme videos.",
              "nullable": true
            }
          },
          {
            "name": "hasSubtitles",
            "in": "query",
            "description": "Optional filter by items with subtitles.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items with subtitles.",
              "nullable": true
            }
          },
          {
            "name": "hasSpecialFeature",
            "in": "query",
            "description": "Optional filter by items with special features.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items with special features.",
              "nullable": true
            }
          },
          {
            "name": "hasTrailer",
            "in": "query",
            "description": "Optional filter by items with trailers.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items with trailers.",
              "nullable": true
            }
          },
          {
            "name": "adjacentTo",
            "in": "query",
            "description": "Optional. Return items that are siblings of a supplied item.",
            "schema": {
              "type": "string",
              "description": "Optional. Return items that are siblings of a supplied item.",
              "nullable": true
            }
          },
          {
            "name": "parentIndexNumber",
            "in": "query",
            "description": "Optional filter by parent index number.",
            "schema": {
              "type": "integer",
              "description": "Optional filter by parent index number.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "hasParentalRating",
            "in": "query",
            "description": "Optional filter by items that have or do not have a parental rating.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that have or do not have a parental rating.",
              "nullable": true
            }
          },
          {
            "name": "isHd",
            "in": "query",
            "description": "Optional filter by items that are HD or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that are HD or not.",
              "nullable": true
            }
          },
          {
            "name": "is4K",
            "in": "query",
            "description": "Optional filter by items that are 4K or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that are 4K or not.",
              "nullable": true
            }
          },
          {
            "name": "locationTypes",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/LocationType"
              },
              "description": "Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "excludeLocationTypes",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/LocationType"
              },
              "description": "Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "isMissing",
            "in": "query",
            "description": "Optional filter by items that are missing episodes or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that are missing episodes or not.",
              "nullable": true
            }
          },
          {
            "name": "isUnaired",
            "in": "query",
            "description": "Optional filter by items that are unaired episodes or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that are unaired episodes or not.",
              "nullable": true
            }
          },
          {
            "name": "minCommunityRating",
            "in": "query",
            "description": "Optional filter by minimum community rating.",
            "schema": {
              "type": "number",
              "description": "Optional filter by minimum community rating.",
              "format": "double",
              "nullable": true
            }
          },
          {
            "name": "minCriticRating",
            "in": "query",
            "description": "Optional filter by minimum critic rating.",
            "schema": {
              "type": "number",
              "description": "Optional filter by minimum critic rating.",
              "format": "double",
              "nullable": true
            }
          },
          {
            "name": "minPremiereDate",
            "in": "query",
            "description": "Optional. The minimum premiere date. Format = ISO.",
            "schema": {
              "type": "string",
              "description": "Optional. The minimum premiere date. Format = ISO.",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "minDateLastSaved",
            "in": "query",
            "description": "Optional. The minimum last saved date. Format = ISO.",
            "schema": {
              "type": "string",
              "description": "Optional. The minimum last saved date. Format = ISO.",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "minDateLastSavedForUser",
            "in": "query",
            "description": "Optional. The minimum last saved date for the current user. Format = ISO.",
            "schema": {
              "type": "string",
              "description": "Optional. The minimum last saved date for the current user. Format = ISO.",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "maxPremiereDate",
            "in": "query",
            "description": "Optional. The maximum premiere date. Format = ISO.",
            "schema": {
              "type": "string",
              "description": "Optional. The maximum premiere date. Format = ISO.",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "hasOverview",
            "in": "query",
            "description": "Optional filter by items that have an overview or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that have an overview or not.",
              "nullable": true
            }
          },
          {
            "name": "hasImdbId",
            "in": "query",
            "description": "Optional filter by items that have an imdb id or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that have an imdb id or not.",
              "nullable": true
            }
          },
          {
            "name": "hasTmdbId",
            "in": "query",
            "description": "Optional filter by items that have a tmdb id or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that have a tmdb id or not.",
              "nullable": true
            }
          },
          {
            "name": "hasTvdbId",
            "in": "query",
            "description": "Optional filter by items that have a tvdb id or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that have a tvdb id or not.",
              "nullable": true
            }
          },
          {
            "name": "excludeItemIds",
            "in": "query",
            "description": "Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "startIndex",
            "in": "query",
            "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
            "schema": {
              "type": "integer",
              "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Optional. The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of records to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "recursive",
            "in": "query",
            "description": "When searching within folders, this determines whether or not the search will be recursive. true/false.",
            "schema": {
              "type": "boolean",
              "description": "When searching within folders, this determines whether or not the search will be recursive. true/false.",
              "nullable": true
            }
          },
          {
            "name": "searchTerm",
            "in": "query",
            "description": "Optional. Filter based on a search term.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter based on a search term.",
              "nullable": true
            }
          },
          {
            "name": "sortOrder",
            "in": "query",
            "description": "Sort Order - Ascending,Descending.",
            "schema": {
              "type": "string",
              "description": "Sort Order - Ascending,Descending.",
              "nullable": true
            }
          },
          {
            "name": "parentId",
            "in": "query",
            "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.",
            "schema": {
              "type": "string",
              "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFields"
              },
              "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines.",
              "nullable": true
            }
          },
          {
            "name": "excludeItemTypes",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "includeItemTypes",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "filters",
            "in": "query",
            "description": "Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFilter"
              },
              "description": "Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes.",
              "nullable": true
            }
          },
          {
            "name": "isFavorite",
            "in": "query",
            "description": "Optional filter by items that are marked as favorite, or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that are marked as favorite, or not.",
              "nullable": true
            }
          },
          {
            "name": "mediaTypes",
            "in": "query",
            "description": "Optional filter by MediaType. Allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional filter by MediaType. Allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "imageTypes",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ImageType"
              },
              "description": "Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "sortBy",
            "in": "query",
            "description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.",
              "nullable": true
            }
          },
          {
            "name": "isPlayed",
            "in": "query",
            "description": "Optional filter by items that are played, or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that are played, or not.",
              "nullable": true
            }
          },
          {
            "name": "genres",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited.",
              "nullable": true
            }
          },
          {
            "name": "officialRatings",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited.",
              "nullable": true
            }
          },
          {
            "name": "tags",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited.",
              "nullable": true
            }
          },
          {
            "name": "years",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              },
              "description": "Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "enableUserData",
            "in": "query",
            "description": "Optional, include user data.",
            "schema": {
              "type": "boolean",
              "description": "Optional, include user data.",
              "nullable": true
            }
          },
          {
            "name": "imageTypeLimit",
            "in": "query",
            "description": "Optional, the max number of images to return, per image type.",
            "schema": {
              "type": "integer",
              "description": "Optional, the max number of images to return, per image type.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "enableImageTypes",
            "in": "query",
            "description": "Optional. The image types to include in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ImageType"
              },
              "description": "Optional. The image types to include in the output.",
              "nullable": true
            }
          },
          {
            "name": "person",
            "in": "query",
            "description": "Optional. If specified, results will be filtered to include only those containing the specified person.",
            "schema": {
              "type": "string",
              "description": "Optional. If specified, results will be filtered to include only those containing the specified person.",
              "nullable": true
            }
          },
          {
            "name": "personIds",
            "in": "query",
            "description": "Optional. If specified, results will be filtered to include only those containing the specified person id.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Optional. If specified, results will be filtered to include only those containing the specified person id.",
              "nullable": true
            }
          },
          {
            "name": "personTypes",
            "in": "query",
            "description": "Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited.",
              "nullable": true
            }
          },
          {
            "name": "studios",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited.",
              "nullable": true
            }
          },
          {
            "name": "artists",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited.",
              "nullable": true
            }
          },
          {
            "name": "excludeArtistIds",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited.",
              "nullable": true
            }
          },
          {
            "name": "artistIds",
            "in": "query",
            "description": "Optional. If specified, results will be filtered to include only those containing the specified artist id.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Optional. If specified, results will be filtered to include only those containing the specified artist id.",
              "nullable": true
            }
          },
          {
            "name": "albumArtistIds",
            "in": "query",
            "description": "Optional. If specified, results will be filtered to include only those containing the specified album artist id.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Optional. If specified, results will be filtered to include only those containing the specified album artist id.",
              "nullable": true
            }
          },
          {
            "name": "contributingArtistIds",
            "in": "query",
            "description": "Optional. If specified, results will be filtered to include only those containing the specified contributing artist id.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Optional. If specified, results will be filtered to include only those containing the specified contributing artist id.",
              "nullable": true
            }
          },
          {
            "name": "albums",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited.",
              "nullable": true
            }
          },
          {
            "name": "albumIds",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited.",
              "nullable": true
            }
          },
          {
            "name": "ids",
            "in": "query",
            "description": "Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "videoTypes",
            "in": "query",
            "description": "Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/VideoType"
              },
              "description": "Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "minOfficialRating",
            "in": "query",
            "description": "Optional filter by minimum official rating (PG, PG-13, TV-MA, etc).",
            "schema": {
              "type": "string",
              "description": "Optional filter by minimum official rating (PG, PG-13, TV-MA, etc).",
              "nullable": true
            }
          },
          {
            "name": "isLocked",
            "in": "query",
            "description": "Optional filter by items that are locked.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that are locked.",
              "nullable": true
            }
          },
          {
            "name": "isPlaceHolder",
            "in": "query",
            "description": "Optional filter by items that are placeholders.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that are placeholders.",
              "nullable": true
            }
          },
          {
            "name": "hasOfficialRating",
            "in": "query",
            "description": "Optional filter by items that have official ratings.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that have official ratings.",
              "nullable": true
            }
          },
          {
            "name": "collapseBoxSetItems",
            "in": "query",
            "description": "Whether or not to hide items behind their boxsets.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to hide items behind their boxsets.",
              "nullable": true
            }
          },
          {
            "name": "minWidth",
            "in": "query",
            "description": "Optional. Filter by the minimum width of the item.",
            "schema": {
              "type": "integer",
              "description": "Optional. Filter by the minimum width of the item.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "minHeight",
            "in": "query",
            "description": "Optional. Filter by the minimum height of the item.",
            "schema": {
              "type": "integer",
              "description": "Optional. Filter by the minimum height of the item.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxWidth",
            "in": "query",
            "description": "Optional. Filter by the maximum width of the item.",
            "schema": {
              "type": "integer",
              "description": "Optional. Filter by the maximum width of the item.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxHeight",
            "in": "query",
            "description": "Optional. Filter by the maximum height of the item.",
            "schema": {
              "type": "integer",
              "description": "Optional. Filter by the maximum height of the item.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "is3D",
            "in": "query",
            "description": "Optional filter by items that are 3D, or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that are 3D, or not.",
              "nullable": true
            }
          },
          {
            "name": "seriesStatus",
            "in": "query",
            "description": "Optional filter by Series Status. Allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/SeriesStatus"
              },
              "description": "Optional filter by Series Status. Allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "nameStartsWithOrGreater",
            "in": "query",
            "description": "Optional filter by items whose name is sorted equally or greater than a given input string.",
            "schema": {
              "type": "string",
              "description": "Optional filter by items whose name is sorted equally or greater than a given input string.",
              "nullable": true
            }
          },
          {
            "name": "nameStartsWith",
            "in": "query",
            "description": "Optional filter by items whose name is sorted equally than a given input string.",
            "schema": {
              "type": "string",
              "description": "Optional filter by items whose name is sorted equally than a given input string.",
              "nullable": true
            }
          },
          {
            "name": "nameLessThan",
            "in": "query",
            "description": "Optional filter by items whose name is equally or lesser than a given input string.",
            "schema": {
              "type": "string",
              "description": "Optional filter by items whose name is equally or lesser than a given input string.",
              "nullable": true
            }
          },
          {
            "name": "studioIds",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited.",
              "nullable": true
            }
          },
          {
            "name": "genreIds",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited.",
              "nullable": true
            }
          },
          {
            "name": "enableTotalRecordCount",
            "in": "query",
            "description": "Optional. Enable the total record count.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Enable the total record count.",
              "default": true
            }
          },
          {
            "name": "enableImages",
            "in": "query",
            "description": "Optional, include image information in output.",
            "schema": {
              "type": "boolean",
              "description": "Optional, include image information in output.",
              "default": true,
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Library"
        ],
        "summary": "Deletes items from the library and filesystem.",
        "operationId": "DeleteItems",
        "parameters": [
          {
            "name": "ids",
            "in": "query",
            "description": "The item ids.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "The item ids.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Items deleted."
          },
          "401": {
            "description": "Unauthorized access.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Users/{userId}/Items": {
      "get": {
        "tags": [
          "Items"
        ],
        "summary": "Gets items based on a query.",
        "operationId": "GetItemsByUserId",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "The user id supplied as query parameter.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The user id supplied as query parameter.",
              "format": "uuid"
            }
          },
          {
            "name": "maxOfficialRating",
            "in": "query",
            "description": "Optional filter by maximum official rating (PG, PG-13, TV-MA, etc).",
            "schema": {
              "type": "string",
              "description": "Optional filter by maximum official rating (PG, PG-13, TV-MA, etc).",
              "nullable": true
            }
          },
          {
            "name": "hasThemeSong",
            "in": "query",
            "description": "Optional filter by items with theme songs.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items with theme songs.",
              "nullable": true
            }
          },
          {
            "name": "hasThemeVideo",
            "in": "query",
            "description": "Optional filter by items with theme videos.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items with theme videos.",
              "nullable": true
            }
          },
          {
            "name": "hasSubtitles",
            "in": "query",
            "description": "Optional filter by items with subtitles.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items with subtitles.",
              "nullable": true
            }
          },
          {
            "name": "hasSpecialFeature",
            "in": "query",
            "description": "Optional filter by items with special features.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items with special features.",
              "nullable": true
            }
          },
          {
            "name": "hasTrailer",
            "in": "query",
            "description": "Optional filter by items with trailers.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items with trailers.",
              "nullable": true
            }
          },
          {
            "name": "adjacentTo",
            "in": "query",
            "description": "Optional. Return items that are siblings of a supplied item.",
            "schema": {
              "type": "string",
              "description": "Optional. Return items that are siblings of a supplied item.",
              "nullable": true
            }
          },
          {
            "name": "parentIndexNumber",
            "in": "query",
            "description": "Optional filter by parent index number.",
            "schema": {
              "type": "integer",
              "description": "Optional filter by parent index number.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "hasParentalRating",
            "in": "query",
            "description": "Optional filter by items that have or do not have a parental rating.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that have or do not have a parental rating.",
              "nullable": true
            }
          },
          {
            "name": "isHd",
            "in": "query",
            "description": "Optional filter by items that are HD or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that are HD or not.",
              "nullable": true
            }
          },
          {
            "name": "is4K",
            "in": "query",
            "description": "Optional filter by items that are 4K or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that are 4K or not.",
              "nullable": true
            }
          },
          {
            "name": "locationTypes",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimeted.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/LocationType"
              },
              "description": "Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimeted.",
              "nullable": true
            }
          },
          {
            "name": "excludeLocationTypes",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimeted.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/LocationType"
              },
              "description": "Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimeted.",
              "nullable": true
            }
          },
          {
            "name": "isMissing",
            "in": "query",
            "description": "Optional filter by items that are missing episodes or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that are missing episodes or not.",
              "nullable": true
            }
          },
          {
            "name": "isUnaired",
            "in": "query",
            "description": "Optional filter by items that are unaired episodes or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that are unaired episodes or not.",
              "nullable": true
            }
          },
          {
            "name": "minCommunityRating",
            "in": "query",
            "description": "Optional filter by minimum community rating.",
            "schema": {
              "type": "number",
              "description": "Optional filter by minimum community rating.",
              "format": "double",
              "nullable": true
            }
          },
          {
            "name": "minCriticRating",
            "in": "query",
            "description": "Optional filter by minimum critic rating.",
            "schema": {
              "type": "number",
              "description": "Optional filter by minimum critic rating.",
              "format": "double",
              "nullable": true
            }
          },
          {
            "name": "minPremiereDate",
            "in": "query",
            "description": "Optional. The minimum premiere date. Format = ISO.",
            "schema": {
              "type": "string",
              "description": "Optional. The minimum premiere date. Format = ISO.",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "minDateLastSaved",
            "in": "query",
            "description": "Optional. The minimum last saved date. Format = ISO.",
            "schema": {
              "type": "string",
              "description": "Optional. The minimum last saved date. Format = ISO.",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "minDateLastSavedForUser",
            "in": "query",
            "description": "Optional. The minimum last saved date for the current user. Format = ISO.",
            "schema": {
              "type": "string",
              "description": "Optional. The minimum last saved date for the current user. Format = ISO.",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "maxPremiereDate",
            "in": "query",
            "description": "Optional. The maximum premiere date. Format = ISO.",
            "schema": {
              "type": "string",
              "description": "Optional. The maximum premiere date. Format = ISO.",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "hasOverview",
            "in": "query",
            "description": "Optional filter by items that have an overview or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that have an overview or not.",
              "nullable": true
            }
          },
          {
            "name": "hasImdbId",
            "in": "query",
            "description": "Optional filter by items that have an imdb id or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that have an imdb id or not.",
              "nullable": true
            }
          },
          {
            "name": "hasTmdbId",
            "in": "query",
            "description": "Optional filter by items that have a tmdb id or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that have a tmdb id or not.",
              "nullable": true
            }
          },
          {
            "name": "hasTvdbId",
            "in": "query",
            "description": "Optional filter by items that have a tvdb id or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that have a tvdb id or not.",
              "nullable": true
            }
          },
          {
            "name": "excludeItemIds",
            "in": "query",
            "description": "Optional. If specified, results will be filtered by exxcluding item ids. This allows multiple, comma delimeted.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Optional. If specified, results will be filtered by exxcluding item ids. This allows multiple, comma delimeted.",
              "nullable": true
            }
          },
          {
            "name": "startIndex",
            "in": "query",
            "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
            "schema": {
              "type": "integer",
              "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Optional. The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of records to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "recursive",
            "in": "query",
            "description": "When searching within folders, this determines whether or not the search will be recursive. true/false.",
            "schema": {
              "type": "boolean",
              "description": "When searching within folders, this determines whether or not the search will be recursive. true/false.",
              "nullable": true
            }
          },
          {
            "name": "searchTerm",
            "in": "query",
            "description": "Optional. Filter based on a search term.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter based on a search term.",
              "nullable": true
            }
          },
          {
            "name": "sortOrder",
            "in": "query",
            "description": "Sort Order - Ascending,Descending.",
            "schema": {
              "type": "string",
              "description": "Sort Order - Ascending,Descending.",
              "nullable": true
            }
          },
          {
            "name": "parentId",
            "in": "query",
            "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.",
            "schema": {
              "type": "string",
              "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimeted. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFields"
              },
              "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimeted. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines.",
              "nullable": true
            }
          },
          {
            "name": "excludeItemTypes",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimeted.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimeted.",
              "nullable": true
            }
          },
          {
            "name": "includeItemTypes",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimeted.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimeted.",
              "nullable": true
            }
          },
          {
            "name": "filters",
            "in": "query",
            "description": "Optional. Specify additional filters to apply. This allows multiple, comma delimeted. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFilter"
              },
              "description": "Optional. Specify additional filters to apply. This allows multiple, comma delimeted. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes.",
              "nullable": true
            }
          },
          {
            "name": "isFavorite",
            "in": "query",
            "description": "Optional filter by items that are marked as favorite, or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that are marked as favorite, or not.",
              "nullable": true
            }
          },
          {
            "name": "mediaTypes",
            "in": "query",
            "description": "Optional filter by MediaType. Allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional filter by MediaType. Allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "imageTypes",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ImageType"
              },
              "description": "Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "sortBy",
            "in": "query",
            "description": "Optional. Specify one or more sort orders, comma delimeted. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify one or more sort orders, comma delimeted. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.",
              "nullable": true
            }
          },
          {
            "name": "isPlayed",
            "in": "query",
            "description": "Optional filter by items that are played, or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that are played, or not.",
              "nullable": true
            }
          },
          {
            "name": "genres",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimeted.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimeted.",
              "nullable": true
            }
          },
          {
            "name": "officialRatings",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimeted.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimeted.",
              "nullable": true
            }
          },
          {
            "name": "tags",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimeted.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimeted.",
              "nullable": true
            }
          },
          {
            "name": "years",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimeted.",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              },
              "description": "Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimeted.",
              "nullable": true
            }
          },
          {
            "name": "enableUserData",
            "in": "query",
            "description": "Optional, include user data.",
            "schema": {
              "type": "boolean",
              "description": "Optional, include user data.",
              "nullable": true
            }
          },
          {
            "name": "imageTypeLimit",
            "in": "query",
            "description": "Optional, the max number of images to return, per image type.",
            "schema": {
              "type": "integer",
              "description": "Optional, the max number of images to return, per image type.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "enableImageTypes",
            "in": "query",
            "description": "Optional. The image types to include in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ImageType"
              },
              "description": "Optional. The image types to include in the output.",
              "nullable": true
            }
          },
          {
            "name": "person",
            "in": "query",
            "description": "Optional. If specified, results will be filtered to include only those containing the specified person.",
            "schema": {
              "type": "string",
              "description": "Optional. If specified, results will be filtered to include only those containing the specified person.",
              "nullable": true
            }
          },
          {
            "name": "personIds",
            "in": "query",
            "description": "Optional. If specified, results will be filtered to include only those containing the specified person id.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Optional. If specified, results will be filtered to include only those containing the specified person id.",
              "nullable": true
            }
          },
          {
            "name": "personTypes",
            "in": "query",
            "description": "Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited.",
              "nullable": true
            }
          },
          {
            "name": "studios",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimeted.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimeted.",
              "nullable": true
            }
          },
          {
            "name": "artists",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimeted.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimeted.",
              "nullable": true
            }
          },
          {
            "name": "excludeArtistIds",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimeted.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimeted.",
              "nullable": true
            }
          },
          {
            "name": "artistIds",
            "in": "query",
            "description": "Optional. If specified, results will be filtered to include only those containing the specified artist id.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Optional. If specified, results will be filtered to include only those containing the specified artist id.",
              "nullable": true
            }
          },
          {
            "name": "albumArtistIds",
            "in": "query",
            "description": "Optional. If specified, results will be filtered to include only those containing the specified album artist id.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Optional. If specified, results will be filtered to include only those containing the specified album artist id.",
              "nullable": true
            }
          },
          {
            "name": "contributingArtistIds",
            "in": "query",
            "description": "Optional. If specified, results will be filtered to include only those containing the specified contributing artist id.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Optional. If specified, results will be filtered to include only those containing the specified contributing artist id.",
              "nullable": true
            }
          },
          {
            "name": "albums",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimeted.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimeted.",
              "nullable": true
            }
          },
          {
            "name": "albumIds",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimeted.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimeted.",
              "nullable": true
            }
          },
          {
            "name": "ids",
            "in": "query",
            "description": "Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "videoTypes",
            "in": "query",
            "description": "Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimeted.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/VideoType"
              },
              "description": "Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimeted.",
              "nullable": true
            }
          },
          {
            "name": "minOfficialRating",
            "in": "query",
            "description": "Optional filter by minimum official rating (PG, PG-13, TV-MA, etc).",
            "schema": {
              "type": "string",
              "description": "Optional filter by minimum official rating (PG, PG-13, TV-MA, etc).",
              "nullable": true
            }
          },
          {
            "name": "isLocked",
            "in": "query",
            "description": "Optional filter by items that are locked.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that are locked.",
              "nullable": true
            }
          },
          {
            "name": "isPlaceHolder",
            "in": "query",
            "description": "Optional filter by items that are placeholders.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that are placeholders.",
              "nullable": true
            }
          },
          {
            "name": "hasOfficialRating",
            "in": "query",
            "description": "Optional filter by items that have official ratings.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that have official ratings.",
              "nullable": true
            }
          },
          {
            "name": "collapseBoxSetItems",
            "in": "query",
            "description": "Whether or not to hide items behind their boxsets.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to hide items behind their boxsets.",
              "nullable": true
            }
          },
          {
            "name": "minWidth",
            "in": "query",
            "description": "Optional. Filter by the minimum width of the item.",
            "schema": {
              "type": "integer",
              "description": "Optional. Filter by the minimum width of the item.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "minHeight",
            "in": "query",
            "description": "Optional. Filter by the minimum height of the item.",
            "schema": {
              "type": "integer",
              "description": "Optional. Filter by the minimum height of the item.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxWidth",
            "in": "query",
            "description": "Optional. Filter by the maximum width of the item.",
            "schema": {
              "type": "integer",
              "description": "Optional. Filter by the maximum width of the item.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxHeight",
            "in": "query",
            "description": "Optional. Filter by the maximum height of the item.",
            "schema": {
              "type": "integer",
              "description": "Optional. Filter by the maximum height of the item.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "is3D",
            "in": "query",
            "description": "Optional filter by items that are 3D, or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that are 3D, or not.",
              "nullable": true
            }
          },
          {
            "name": "seriesStatus",
            "in": "query",
            "description": "Optional filter by Series Status. Allows multiple, comma delimeted.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/SeriesStatus"
              },
              "description": "Optional filter by Series Status. Allows multiple, comma delimeted.",
              "nullable": true
            }
          },
          {
            "name": "nameStartsWithOrGreater",
            "in": "query",
            "description": "Optional filter by items whose name is sorted equally or greater than a given input string.",
            "schema": {
              "type": "string",
              "description": "Optional filter by items whose name is sorted equally or greater than a given input string.",
              "nullable": true
            }
          },
          {
            "name": "nameStartsWith",
            "in": "query",
            "description": "Optional filter by items whose name is sorted equally than a given input string.",
            "schema": {
              "type": "string",
              "description": "Optional filter by items whose name is sorted equally than a given input string.",
              "nullable": true
            }
          },
          {
            "name": "nameLessThan",
            "in": "query",
            "description": "Optional filter by items whose name is equally or lesser than a given input string.",
            "schema": {
              "type": "string",
              "description": "Optional filter by items whose name is equally or lesser than a given input string.",
              "nullable": true
            }
          },
          {
            "name": "studioIds",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimeted.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimeted.",
              "nullable": true
            }
          },
          {
            "name": "genreIds",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimeted.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimeted.",
              "nullable": true
            }
          },
          {
            "name": "enableTotalRecordCount",
            "in": "query",
            "description": "Optional. Enable the total record count.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Enable the total record count.",
              "default": true
            }
          },
          {
            "name": "enableImages",
            "in": "query",
            "description": "Optional, include image information in output.",
            "schema": {
              "type": "boolean",
              "description": "Optional, include image information in output.",
              "default": true,
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Users/{userId}/Items/Resume": {
      "get": {
        "tags": [
          "Items"
        ],
        "summary": "Gets items based on a query.",
        "operationId": "GetResumeItems",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "The user id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The user id.",
              "format": "uuid"
            }
          },
          {
            "name": "startIndex",
            "in": "query",
            "description": "The start index.",
            "schema": {
              "type": "integer",
              "description": "The start index.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The item limit.",
            "schema": {
              "type": "integer",
              "description": "The item limit.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "searchTerm",
            "in": "query",
            "description": "The search term.",
            "schema": {
              "type": "string",
              "description": "The search term.",
              "nullable": true
            }
          },
          {
            "name": "parentId",
            "in": "query",
            "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.",
            "schema": {
              "type": "string",
              "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFields"
              },
              "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines.",
              "nullable": true
            }
          },
          {
            "name": "mediaTypes",
            "in": "query",
            "description": "Optional. Filter by MediaType. Allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. Filter by MediaType. Allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "enableUserData",
            "in": "query",
            "description": "Optional. Include user data.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Include user data.",
              "nullable": true
            }
          },
          {
            "name": "imageTypeLimit",
            "in": "query",
            "description": "Optional. The max number of images to return, per image type.",
            "schema": {
              "type": "integer",
              "description": "Optional. The max number of images to return, per image type.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "enableImageTypes",
            "in": "query",
            "description": "Optional. The image types to include in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ImageType"
              },
              "description": "Optional. The image types to include in the output.",
              "nullable": true
            }
          },
          {
            "name": "excludeItemTypes",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "includeItemTypes",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "enableTotalRecordCount",
            "in": "query",
            "description": "Optional. Enable the total record count.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Enable the total record count.",
              "default": true
            }
          },
          {
            "name": "enableImages",
            "in": "query",
            "description": "Optional. Include image information in output.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Include image information in output.",
              "default": true,
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Items returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Items/{itemId}": {
      "post": {
        "tags": [
          "ItemUpdate"
        ],
        "summary": "Updates an item.",
        "operationId": "UpdateItem",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The new item properties.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BaseItemDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/BaseItemDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/BaseItemDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Item updated."
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Library"
        ],
        "summary": "Deletes an item from the library and filesystem.",
        "operationId": "DeleteItem",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Item deleted."
          },
          "401": {
            "description": "Unauthorized access.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Items/{itemId}/ContentType": {
      "post": {
        "tags": [
          "ItemUpdate"
        ],
        "summary": "Updates an item's content type.",
        "operationId": "UpdateItemContentType",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "contentType",
            "in": "query",
            "description": "The content type of the item.",
            "schema": {
              "type": "string",
              "description": "The content type of the item.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Item content type updated."
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      }
    },
    "/Items/{itemId}/MetadataEditor": {
      "get": {
        "tags": [
          "ItemUpdate"
        ],
        "summary": "Gets metadata editor info for an item.",
        "operationId": "GetMetadataEditorInfo",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Item metadata editor returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetadataEditorInfo"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/MetadataEditorInfo"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/MetadataEditorInfo"
                }
              }
            }
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      }
    },
    "/Albums/{itemId}/Similar": {
      "get": {
        "tags": [
          "Library"
        ],
        "summary": "Gets similar items.",
        "operationId": "GetSimilarAlbums",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "excludeArtistIds",
            "in": "query",
            "description": "Exclude artist ids.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Exclude artist ids.",
              "nullable": true
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. Filter by user id, and attach user data.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by user id, and attach user data.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Optional. The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of records to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFields"
              },
              "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Similar items returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Artists/{itemId}/Similar": {
      "get": {
        "tags": [
          "Library"
        ],
        "summary": "Gets similar items.",
        "operationId": "GetSimilarArtists",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "excludeArtistIds",
            "in": "query",
            "description": "Exclude artist ids.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Exclude artist ids.",
              "nullable": true
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. Filter by user id, and attach user data.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by user id, and attach user data.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Optional. The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of records to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFields"
              },
              "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Similar items returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Items/{itemId}/Ancestors": {
      "get": {
        "tags": [
          "Library"
        ],
        "summary": "Gets all parents of an item.",
        "operationId": "GetAncestors",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. Filter by user id, and attach user data.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by user id, and attach user data.",
              "format": "uuid",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Item parents returned.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BaseItemDto"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BaseItemDto"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BaseItemDto"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Items/{itemId}/CriticReviews": {
      "get": {
        "tags": [
          "Library"
        ],
        "summary": "Gets critic review for an item.",
        "operationId": "GetCriticReviews",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Critic reviews returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "deprecated": true,
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Items/{itemId}/Download": {
      "get": {
        "tags": [
          "Library"
        ],
        "summary": "Downloads item media.",
        "operationId": "GetDownload",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Media downloaded.",
            "content": {
              "video/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              },
              "audio/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "Download"
            ]
          }
        ]
      }
    },
    "/Items/{itemId}/File": {
      "get": {
        "tags": [
          "Library"
        ],
        "summary": "Get the original file of an item.",
        "operationId": "GetFile",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "File stream returned.",
            "content": {
              "video/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              },
              "audio/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Items/{itemId}/Similar": {
      "get": {
        "tags": [
          "Library"
        ],
        "summary": "Gets similar items.",
        "operationId": "GetSimilarItems",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "excludeArtistIds",
            "in": "query",
            "description": "Exclude artist ids.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Exclude artist ids.",
              "nullable": true
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. Filter by user id, and attach user data.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by user id, and attach user data.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Optional. The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of records to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFields"
              },
              "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Similar items returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Items/{itemId}/ThemeMedia": {
      "get": {
        "tags": [
          "Library"
        ],
        "summary": "Get theme songs and videos for an item.",
        "operationId": "GetThemeMedia",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. Filter by user id, and attach user data.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by user id, and attach user data.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "inheritFromParent",
            "in": "query",
            "description": "Optional. Determines whether or not parent items should be searched for theme media.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Determines whether or not parent items should be searched for theme media.",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Theme songs and videos returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AllThemeMediaResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/AllThemeMediaResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/AllThemeMediaResult"
                }
              }
            }
          },
          "404": {
            "description": "Item not found."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Items/{itemId}/ThemeSongs": {
      "get": {
        "tags": [
          "Library"
        ],
        "summary": "Get theme songs for an item.",
        "operationId": "GetThemeSongs",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. Filter by user id, and attach user data.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by user id, and attach user data.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "inheritFromParent",
            "in": "query",
            "description": "Optional. Determines whether or not parent items should be searched for theme media.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Determines whether or not parent items should be searched for theme media.",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Theme songs returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThemeMediaResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ThemeMediaResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ThemeMediaResult"
                }
              }
            }
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Items/{itemId}/ThemeVideos": {
      "get": {
        "tags": [
          "Library"
        ],
        "summary": "Get theme videos for an item.",
        "operationId": "GetThemeVideos",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. Filter by user id, and attach user data.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by user id, and attach user data.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "inheritFromParent",
            "in": "query",
            "description": "Optional. Determines whether or not parent items should be searched for theme media.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Determines whether or not parent items should be searched for theme media.",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Theme videos returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThemeMediaResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ThemeMediaResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ThemeMediaResult"
                }
              }
            }
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Items/Counts": {
      "get": {
        "tags": [
          "Library"
        ],
        "summary": "Get item counts.",
        "operationId": "GetItemCounts",
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. Get counts from a specific user's library.",
            "schema": {
              "type": "string",
              "description": "Optional. Get counts from a specific user's library.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "isFavorite",
            "in": "query",
            "description": "Optional. Get counts of favorite items.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Get counts of favorite items.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Item counts returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemCounts"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ItemCounts"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ItemCounts"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Libraries/AvailableOptions": {
      "get": {
        "tags": [
          "Library"
        ],
        "summary": "Gets the library options info.",
        "operationId": "GetLibraryOptionsInfo",
        "parameters": [
          {
            "name": "libraryContentType",
            "in": "query",
            "description": "Library content type.",
            "schema": {
              "type": "string",
              "description": "Library content type.",
              "nullable": true
            }
          },
          {
            "name": "isNewLibrary",
            "in": "query",
            "description": "Whether this is a new library.",
            "schema": {
              "type": "boolean",
              "description": "Whether this is a new library."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Library options info returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LibraryOptionsResultDto"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/LibraryOptionsResultDto"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/LibraryOptionsResultDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "FirstTimeSetupOrDefault"
            ]
          }
        ]
      }
    },
    "/Library/Media/Updated": {
      "post": {
        "tags": [
          "Library"
        ],
        "summary": "Reports that new movies have been added by an external source.",
        "operationId": "PostUpdatedMedia",
        "requestBody": {
          "description": "A list of updated media paths.",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/MediaUpdateInfoDto"
                },
                "description": "A list of updated media paths."
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/MediaUpdateInfoDto"
                },
                "description": "A list of updated media paths."
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/MediaUpdateInfoDto"
                },
                "description": "A list of updated media paths."
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Report success."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Library/MediaFolders": {
      "get": {
        "tags": [
          "Library"
        ],
        "summary": "Gets all user media folders.",
        "operationId": "GetMediaFolders",
        "parameters": [
          {
            "name": "isHidden",
            "in": "query",
            "description": "Optional. Filter by folders that are marked hidden, or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter by folders that are marked hidden, or not.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Media folders returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Library/Movies/Added": {
      "post": {
        "tags": [
          "Library"
        ],
        "summary": "Reports that new movies have been added by an external source.",
        "operationId": "PostAddedMovies",
        "parameters": [
          {
            "name": "tmdbId",
            "in": "query",
            "description": "The tmdbId.",
            "schema": {
              "type": "string",
              "description": "The tmdbId.",
              "nullable": true
            }
          },
          {
            "name": "imdbId",
            "in": "query",
            "description": "The imdbId.",
            "schema": {
              "type": "string",
              "description": "The imdbId.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Report success."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Library/Movies/Updated": {
      "post": {
        "tags": [
          "Library"
        ],
        "summary": "Reports that new movies have been added by an external source.",
        "operationId": "PostUpdatedMovies",
        "parameters": [
          {
            "name": "tmdbId",
            "in": "query",
            "description": "The tmdbId.",
            "schema": {
              "type": "string",
              "description": "The tmdbId.",
              "nullable": true
            }
          },
          {
            "name": "imdbId",
            "in": "query",
            "description": "The imdbId.",
            "schema": {
              "type": "string",
              "description": "The imdbId.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Report success."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Library/PhysicalPaths": {
      "get": {
        "tags": [
          "Library"
        ],
        "summary": "Gets a list of physical paths from virtual folders.",
        "operationId": "GetPhysicalPaths",
        "responses": {
          "200": {
            "description": "Physical paths returned.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      }
    },
    "/Library/Refresh": {
      "get": {
        "tags": [
          "Library"
        ],
        "summary": "Starts a library scan.",
        "operationId": "RefreshLibrary",
        "responses": {
          "204": {
            "description": "Library scan started."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      }
    },
    "/Library/Series/Added": {
      "post": {
        "tags": [
          "Library"
        ],
        "summary": "Reports that new episodes of a series have been added by an external source.",
        "operationId": "PostAddedSeries",
        "parameters": [
          {
            "name": "tvdbId",
            "in": "query",
            "description": "The tvdbId.",
            "schema": {
              "type": "string",
              "description": "The tvdbId.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Report success."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Library/Series/Updated": {
      "post": {
        "tags": [
          "Library"
        ],
        "summary": "Reports that new episodes of a series have been added by an external source.",
        "operationId": "PostUpdatedSeries",
        "parameters": [
          {
            "name": "tvdbId",
            "in": "query",
            "description": "The tvdbId.",
            "schema": {
              "type": "string",
              "description": "The tvdbId.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Report success."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Movies/{itemId}/Similar": {
      "get": {
        "tags": [
          "Library"
        ],
        "summary": "Gets similar items.",
        "operationId": "GetSimilarMovies",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "excludeArtistIds",
            "in": "query",
            "description": "Exclude artist ids.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Exclude artist ids.",
              "nullable": true
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. Filter by user id, and attach user data.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by user id, and attach user data.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Optional. The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of records to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFields"
              },
              "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Similar items returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Shows/{itemId}/Similar": {
      "get": {
        "tags": [
          "Library"
        ],
        "summary": "Gets similar items.",
        "operationId": "GetSimilarShows",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "excludeArtistIds",
            "in": "query",
            "description": "Exclude artist ids.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Exclude artist ids.",
              "nullable": true
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. Filter by user id, and attach user data.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by user id, and attach user data.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Optional. The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of records to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFields"
              },
              "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Similar items returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Trailers/{itemId}/Similar": {
      "get": {
        "tags": [
          "Library"
        ],
        "summary": "Gets similar items.",
        "operationId": "GetSimilarTrailers",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "excludeArtistIds",
            "in": "query",
            "description": "Exclude artist ids.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Exclude artist ids.",
              "nullable": true
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. Filter by user id, and attach user data.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by user id, and attach user data.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Optional. The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of records to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFields"
              },
              "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Similar items returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Library/VirtualFolders": {
      "get": {
        "tags": [
          "LibraryStructure"
        ],
        "summary": "Gets all virtual folders.",
        "operationId": "GetVirtualFolders",
        "responses": {
          "200": {
            "description": "Virtual folders retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VirtualFolderInfo"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VirtualFolderInfo"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VirtualFolderInfo"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "FirstTimeSetupOrElevated"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "LibraryStructure"
        ],
        "summary": "Adds a virtual folder.",
        "operationId": "AddVirtualFolder",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "description": "The name of the virtual folder.",
            "schema": {
              "type": "string",
              "description": "The name of the virtual folder.",
              "nullable": true
            }
          },
          {
            "name": "collectionType",
            "in": "query",
            "description": "The type of the collection.",
            "schema": {
              "type": "string",
              "description": "The type of the collection.",
              "nullable": true
            }
          },
          {
            "name": "paths",
            "in": "query",
            "description": "The paths of the virtual folder.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "The paths of the virtual folder.",
              "nullable": true
            }
          },
          {
            "name": "refreshLibrary",
            "in": "query",
            "description": "Whether to refresh the library.",
            "schema": {
              "type": "boolean",
              "description": "Whether to refresh the library.",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The library options.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddVirtualFolderDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AddVirtualFolderDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AddVirtualFolderDto"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Folder added."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "FirstTimeSetupOrElevated"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "LibraryStructure"
        ],
        "summary": "Removes a virtual folder.",
        "operationId": "RemoveVirtualFolder",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "description": "The name of the folder.",
            "schema": {
              "type": "string",
              "description": "The name of the folder.",
              "nullable": true
            }
          },
          {
            "name": "refreshLibrary",
            "in": "query",
            "description": "Whether to refresh the library.",
            "schema": {
              "type": "boolean",
              "description": "Whether to refresh the library.",
              "default": false
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Folder removed."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "FirstTimeSetupOrElevated"
            ]
          }
        ]
      }
    },
    "/Library/VirtualFolders/LibraryOptions": {
      "post": {
        "tags": [
          "LibraryStructure"
        ],
        "summary": "Update library options.",
        "operationId": "UpdateLibraryOptions",
        "requestBody": {
          "description": "The library name and options.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateLibraryOptionsDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateLibraryOptionsDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateLibraryOptionsDto"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Library updated."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "FirstTimeSetupOrElevated"
            ]
          }
        ]
      }
    },
    "/Library/VirtualFolders/Name": {
      "post": {
        "tags": [
          "LibraryStructure"
        ],
        "summary": "Renames a virtual folder.",
        "operationId": "RenameVirtualFolder",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "description": "The name of the virtual folder.",
            "schema": {
              "type": "string",
              "description": "The name of the virtual folder.",
              "nullable": true
            }
          },
          {
            "name": "newName",
            "in": "query",
            "description": "The new name.",
            "schema": {
              "type": "string",
              "description": "The new name.",
              "nullable": true
            }
          },
          {
            "name": "refreshLibrary",
            "in": "query",
            "description": "Whether to refresh the library.",
            "schema": {
              "type": "boolean",
              "description": "Whether to refresh the library.",
              "default": false
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Folder renamed."
          },
          "404": {
            "description": "Library doesn't exist.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Library already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "FirstTimeSetupOrElevated"
            ]
          }
        ]
      }
    },
    "/Library/VirtualFolders/Paths": {
      "post": {
        "tags": [
          "LibraryStructure"
        ],
        "summary": "Add a media path to a library.",
        "operationId": "AddMediaPath",
        "parameters": [
          {
            "name": "refreshLibrary",
            "in": "query",
            "description": "Whether to refresh the library.",
            "schema": {
              "type": "boolean",
              "description": "Whether to refresh the library.",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The media path dto.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MediaPathDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MediaPathDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MediaPathDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Media path added."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "FirstTimeSetupOrElevated"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "LibraryStructure"
        ],
        "summary": "Remove a media path.",
        "operationId": "RemoveMediaPath",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "description": "The name of the library.",
            "schema": {
              "type": "string",
              "description": "The name of the library.",
              "nullable": true
            }
          },
          {
            "name": "path",
            "in": "query",
            "description": "The path to remove.",
            "schema": {
              "type": "string",
              "description": "The path to remove.",
              "nullable": true
            }
          },
          {
            "name": "refreshLibrary",
            "in": "query",
            "description": "Whether to refresh the library.",
            "schema": {
              "type": "boolean",
              "description": "Whether to refresh the library.",
              "default": false
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Media path removed."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "FirstTimeSetupOrElevated"
            ]
          }
        ]
      }
    },
    "/Library/VirtualFolders/Paths/Update": {
      "post": {
        "tags": [
          "LibraryStructure"
        ],
        "summary": "Updates a media path.",
        "operationId": "UpdateMediaPath",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "description": "The name of the library.",
            "schema": {
              "type": "string",
              "description": "The name of the library.",
              "nullable": true
            }
          }
        ],
        "requestBody": {
          "description": "The path info.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MediaPathInfo"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MediaPathInfo"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MediaPathInfo"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Media path updated."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "FirstTimeSetupOrElevated"
            ]
          }
        ]
      }
    },
    "/LiveTv/ChannelMappingOptions": {
      "get": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Get channel mapping options.",
        "operationId": "GetChannelMappingOptions",
        "parameters": [
          {
            "name": "providerId",
            "in": "query",
            "description": "Provider id.",
            "schema": {
              "type": "string",
              "description": "Provider id.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Channel mapping options returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChannelMappingOptionsDto"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ChannelMappingOptionsDto"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ChannelMappingOptionsDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/LiveTv/ChannelMappings": {
      "post": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Set channel mappings.",
        "operationId": "SetChannelMapping",
        "requestBody": {
          "description": "The set channel mapping dto.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetChannelMappingDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SetChannelMappingDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SetChannelMappingDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Created channel mapping returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TunerChannelMapping"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/TunerChannelMapping"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/TunerChannelMapping"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/LiveTv/Channels": {
      "get": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Gets available live tv channels.",
        "operationId": "GetLiveTvChannels",
        "parameters": [
          {
            "name": "type",
            "in": "query",
            "description": "Optional. Filter by channel type.",
            "schema": {
              "$ref": "#/components/schemas/ChannelType"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. Filter by user and attach user data.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by user and attach user data.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "startIndex",
            "in": "query",
            "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
            "schema": {
              "type": "integer",
              "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "isMovie",
            "in": "query",
            "description": "Optional. Filter for movies.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter for movies.",
              "nullable": true
            }
          },
          {
            "name": "isSeries",
            "in": "query",
            "description": "Optional. Filter for series.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter for series.",
              "nullable": true
            }
          },
          {
            "name": "isNews",
            "in": "query",
            "description": "Optional. Filter for news.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter for news.",
              "nullable": true
            }
          },
          {
            "name": "isKids",
            "in": "query",
            "description": "Optional. Filter for kids.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter for kids.",
              "nullable": true
            }
          },
          {
            "name": "isSports",
            "in": "query",
            "description": "Optional. Filter for sports.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter for sports.",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Optional. The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of records to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "isFavorite",
            "in": "query",
            "description": "Optional. Filter by channels that are favorites, or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter by channels that are favorites, or not.",
              "nullable": true
            }
          },
          {
            "name": "isLiked",
            "in": "query",
            "description": "Optional. Filter by channels that are liked, or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter by channels that are liked, or not.",
              "nullable": true
            }
          },
          {
            "name": "isDisliked",
            "in": "query",
            "description": "Optional. Filter by channels that are disliked, or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter by channels that are disliked, or not.",
              "nullable": true
            }
          },
          {
            "name": "enableImages",
            "in": "query",
            "description": "Optional. Include image information in output.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Include image information in output.",
              "nullable": true
            }
          },
          {
            "name": "imageTypeLimit",
            "in": "query",
            "description": "Optional. The max number of images to return, per image type.",
            "schema": {
              "type": "integer",
              "description": "Optional. The max number of images to return, per image type.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "enableImageTypes",
            "in": "query",
            "description": "\"Optional. The image types to include in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ImageType"
              },
              "description": "\"Optional. The image types to include in the output.",
              "nullable": true
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional. Specify additional fields of information to return in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFields"
              },
              "description": "Optional. Specify additional fields of information to return in the output.",
              "nullable": true
            }
          },
          {
            "name": "enableUserData",
            "in": "query",
            "description": "Optional. Include user data.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Include user data.",
              "nullable": true
            }
          },
          {
            "name": "sortBy",
            "in": "query",
            "description": "Optional. Key to sort by.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. Key to sort by.",
              "nullable": true
            }
          },
          {
            "name": "sortOrder",
            "in": "query",
            "description": "Optional. Sort order.",
            "schema": {
              "$ref": "#/components/schemas/SortOrder"
            }
          },
          {
            "name": "enableFavoriteSorting",
            "in": "query",
            "description": "Optional. Incorporate favorite and like status into channel sorting.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Incorporate favorite and like status into channel sorting.",
              "default": false
            }
          },
          {
            "name": "addCurrentProgram",
            "in": "query",
            "description": "Optional. Adds current program info to each channel.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Adds current program info to each channel.",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Available live tv channels returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/LiveTv/Channels/{channelId}": {
      "get": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Gets a live tv channel.",
        "operationId": "GetChannel",
        "parameters": [
          {
            "name": "channelId",
            "in": "path",
            "description": "Channel id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Channel id.",
              "format": "uuid"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. Attach user data.",
            "schema": {
              "type": "string",
              "description": "Optional. Attach user data.",
              "format": "uuid",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Live tv channel returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDto"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDto"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/LiveTv/GuideInfo": {
      "get": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Get guid info.",
        "operationId": "GetGuideInfo",
        "responses": {
          "200": {
            "description": "Guid info returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GuideInfo"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/GuideInfo"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/GuideInfo"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/LiveTv/Info": {
      "get": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Gets available live tv services.",
        "operationId": "GetLiveTvInfo",
        "responses": {
          "200": {
            "description": "Available live tv services returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LiveTvInfo"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/LiveTvInfo"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/LiveTvInfo"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/LiveTv/ListingProviders": {
      "post": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Adds a listings provider.",
        "operationId": "AddListingProvider",
        "parameters": [
          {
            "name": "pw",
            "in": "query",
            "description": "Password.",
            "schema": {
              "type": "string",
              "description": "Password.",
              "nullable": true
            }
          },
          {
            "name": "validateListings",
            "in": "query",
            "description": "Validate listings.",
            "schema": {
              "type": "boolean",
              "description": "Validate listings.",
              "default": false
            }
          },
          {
            "name": "validateLogin",
            "in": "query",
            "description": "Validate login.",
            "schema": {
              "type": "boolean",
              "description": "Validate login.",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "New listings info.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ListingsProviderInfo"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ListingsProviderInfo"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ListingsProviderInfo"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Created listings provider returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListingsProviderInfo"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ListingsProviderInfo"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ListingsProviderInfo"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Delete listing provider.",
        "operationId": "DeleteListingProvider",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "Listing provider id.",
            "schema": {
              "type": "string",
              "description": "Listing provider id.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Listing provider deleted."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/LiveTv/ListingProviders/Default": {
      "get": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Gets default listings provider info.",
        "operationId": "GetDefaultListingProvider",
        "responses": {
          "200": {
            "description": "Default listings provider info returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListingsProviderInfo"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ListingsProviderInfo"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ListingsProviderInfo"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/LiveTv/ListingProviders/Lineups": {
      "get": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Gets available lineups.",
        "operationId": "GetLineups",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "Provider id.",
            "schema": {
              "type": "string",
              "description": "Provider id.",
              "nullable": true
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "Provider type.",
            "schema": {
              "type": "string",
              "description": "Provider type.",
              "nullable": true
            }
          },
          {
            "name": "location",
            "in": "query",
            "description": "Location.",
            "schema": {
              "type": "string",
              "description": "Location.",
              "nullable": true
            }
          },
          {
            "name": "country",
            "in": "query",
            "description": "Country.",
            "schema": {
              "type": "string",
              "description": "Country.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Available lineups returned.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NameIdPair"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NameIdPair"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NameIdPair"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/LiveTv/ListingProviders/SchedulesDirect/Countries": {
      "get": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Gets available countries.",
        "operationId": "GetSchedulesDirectCountries",
        "responses": {
          "200": {
            "description": "Available countries returned.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/LiveTv/LiveRecordings/{recordingId}/stream": {
      "get": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Gets a live tv recording stream.",
        "operationId": "GetLiveRecordingFile",
        "parameters": [
          {
            "name": "recordingId",
            "in": "path",
            "description": "Recording id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Recording id."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Recording stream returned.",
            "content": {
              "video/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Recording not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/LiveTv/LiveStreamFiles/{streamId}/stream.{container}": {
      "get": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Gets a live tv channel stream.",
        "operationId": "GetLiveStreamFile",
        "parameters": [
          {
            "name": "streamId",
            "in": "path",
            "description": "Stream id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Stream id."
            }
          },
          {
            "name": "container",
            "in": "path",
            "description": "Container type.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Container type."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Stream returned.",
            "content": {
              "video/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Stream not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/LiveTv/Programs": {
      "get": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Gets available live tv epgs.",
        "operationId": "GetLiveTvPrograms",
        "parameters": [
          {
            "name": "channelIds",
            "in": "query",
            "description": "The channels to return guide information for.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "The channels to return guide information for.",
              "nullable": true
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. Filter by user id.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by user id.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "minStartDate",
            "in": "query",
            "description": "Optional. The minimum premiere start date.",
            "schema": {
              "type": "string",
              "description": "Optional. The minimum premiere start date.",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "hasAired",
            "in": "query",
            "description": "Optional. Filter by programs that have completed airing, or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter by programs that have completed airing, or not.",
              "nullable": true
            }
          },
          {
            "name": "isAiring",
            "in": "query",
            "description": "Optional. Filter by programs that are currently airing, or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter by programs that are currently airing, or not.",
              "nullable": true
            }
          },
          {
            "name": "maxStartDate",
            "in": "query",
            "description": "Optional. The maximum premiere start date.",
            "schema": {
              "type": "string",
              "description": "Optional. The maximum premiere start date.",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "minEndDate",
            "in": "query",
            "description": "Optional. The minimum premiere end date.",
            "schema": {
              "type": "string",
              "description": "Optional. The minimum premiere end date.",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "maxEndDate",
            "in": "query",
            "description": "Optional. The maximum premiere end date.",
            "schema": {
              "type": "string",
              "description": "Optional. The maximum premiere end date.",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "isMovie",
            "in": "query",
            "description": "Optional. Filter for movies.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter for movies.",
              "nullable": true
            }
          },
          {
            "name": "isSeries",
            "in": "query",
            "description": "Optional. Filter for series.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter for series.",
              "nullable": true
            }
          },
          {
            "name": "isNews",
            "in": "query",
            "description": "Optional. Filter for news.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter for news.",
              "nullable": true
            }
          },
          {
            "name": "isKids",
            "in": "query",
            "description": "Optional. Filter for kids.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter for kids.",
              "nullable": true
            }
          },
          {
            "name": "isSports",
            "in": "query",
            "description": "Optional. Filter for sports.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter for sports.",
              "nullable": true
            }
          },
          {
            "name": "startIndex",
            "in": "query",
            "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
            "schema": {
              "type": "integer",
              "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Optional. The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of records to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "sortBy",
            "in": "query",
            "description": "Optional. Specify one or more sort orders, comma delimited. Options: Name, StartDate.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify one or more sort orders, comma delimited. Options: Name, StartDate.",
              "nullable": true
            }
          },
          {
            "name": "sortOrder",
            "in": "query",
            "description": "Sort Order - Ascending,Descending.",
            "schema": {
              "type": "string",
              "description": "Sort Order - Ascending,Descending.",
              "nullable": true
            }
          },
          {
            "name": "genres",
            "in": "query",
            "description": "The genres to return guide information for.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "The genres to return guide information for.",
              "nullable": true
            }
          },
          {
            "name": "genreIds",
            "in": "query",
            "description": "The genre ids to return guide information for.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "The genre ids to return guide information for.",
              "nullable": true
            }
          },
          {
            "name": "enableImages",
            "in": "query",
            "description": "Optional. Include image information in output.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Include image information in output.",
              "nullable": true
            }
          },
          {
            "name": "imageTypeLimit",
            "in": "query",
            "description": "Optional. The max number of images to return, per image type.",
            "schema": {
              "type": "integer",
              "description": "Optional. The max number of images to return, per image type.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "enableImageTypes",
            "in": "query",
            "description": "Optional. The image types to include in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ImageType"
              },
              "description": "Optional. The image types to include in the output.",
              "nullable": true
            }
          },
          {
            "name": "enableUserData",
            "in": "query",
            "description": "Optional. Include user data.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Include user data.",
              "nullable": true
            }
          },
          {
            "name": "seriesTimerId",
            "in": "query",
            "description": "Optional. Filter by series timer id.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by series timer id.",
              "nullable": true
            }
          },
          {
            "name": "librarySeriesId",
            "in": "query",
            "description": "Optional. Filter by library series id.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by library series id.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional. Specify additional fields of information to return in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFields"
              },
              "description": "Optional. Specify additional fields of information to return in the output.",
              "nullable": true
            }
          },
          {
            "name": "enableTotalRecordCount",
            "in": "query",
            "description": "Retrieve total record count.",
            "schema": {
              "type": "boolean",
              "description": "Retrieve total record count.",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Live tv epgs returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Gets available live tv epgs.",
        "operationId": "GetPrograms",
        "requestBody": {
          "description": "Request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetProgramsDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/GetProgramsDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/GetProgramsDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Live tv epgs returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/LiveTv/Programs/{programId}": {
      "get": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Gets a live tv program.",
        "operationId": "GetProgram",
        "parameters": [
          {
            "name": "programId",
            "in": "path",
            "description": "Program id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Program id."
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. Attach user data.",
            "schema": {
              "type": "string",
              "description": "Optional. Attach user data.",
              "format": "uuid",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Program returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDto"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDto"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/LiveTv/Programs/Recommended": {
      "get": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Gets recommended live tv epgs.",
        "operationId": "GetRecommendedPrograms",
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. filter by user id.",
            "schema": {
              "type": "string",
              "description": "Optional. filter by user id.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Optional. The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of records to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "isAiring",
            "in": "query",
            "description": "Optional. Filter by programs that are currently airing, or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter by programs that are currently airing, or not.",
              "nullable": true
            }
          },
          {
            "name": "hasAired",
            "in": "query",
            "description": "Optional. Filter by programs that have completed airing, or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter by programs that have completed airing, or not.",
              "nullable": true
            }
          },
          {
            "name": "isSeries",
            "in": "query",
            "description": "Optional. Filter for series.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter for series.",
              "nullable": true
            }
          },
          {
            "name": "isMovie",
            "in": "query",
            "description": "Optional. Filter for movies.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter for movies.",
              "nullable": true
            }
          },
          {
            "name": "isNews",
            "in": "query",
            "description": "Optional. Filter for news.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter for news.",
              "nullable": true
            }
          },
          {
            "name": "isKids",
            "in": "query",
            "description": "Optional. Filter for kids.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter for kids.",
              "nullable": true
            }
          },
          {
            "name": "isSports",
            "in": "query",
            "description": "Optional. Filter for sports.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter for sports.",
              "nullable": true
            }
          },
          {
            "name": "enableImages",
            "in": "query",
            "description": "Optional. Include image information in output.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Include image information in output.",
              "nullable": true
            }
          },
          {
            "name": "imageTypeLimit",
            "in": "query",
            "description": "Optional. The max number of images to return, per image type.",
            "schema": {
              "type": "integer",
              "description": "Optional. The max number of images to return, per image type.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "enableImageTypes",
            "in": "query",
            "description": "Optional. The image types to include in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ImageType"
              },
              "description": "Optional. The image types to include in the output.",
              "nullable": true
            }
          },
          {
            "name": "genreIds",
            "in": "query",
            "description": "The genres to return guide information for.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "The genres to return guide information for.",
              "nullable": true
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional. Specify additional fields of information to return in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFields"
              },
              "description": "Optional. Specify additional fields of information to return in the output.",
              "nullable": true
            }
          },
          {
            "name": "enableUserData",
            "in": "query",
            "description": "Optional. include user data.",
            "schema": {
              "type": "boolean",
              "description": "Optional. include user data.",
              "nullable": true
            }
          },
          {
            "name": "enableTotalRecordCount",
            "in": "query",
            "description": "Retrieve total record count.",
            "schema": {
              "type": "boolean",
              "description": "Retrieve total record count.",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Recommended epgs returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/LiveTv/Recordings": {
      "get": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Gets live tv recordings.",
        "operationId": "GetRecordings",
        "parameters": [
          {
            "name": "channelId",
            "in": "query",
            "description": "Optional. Filter by channel id.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by channel id.",
              "nullable": true
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. Filter by user and attach user data.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by user and attach user data.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "startIndex",
            "in": "query",
            "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
            "schema": {
              "type": "integer",
              "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Optional. The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of records to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "Optional. Filter by recording status.",
            "schema": {
              "$ref": "#/components/schemas/RecordingStatus"
            }
          },
          {
            "name": "isInProgress",
            "in": "query",
            "description": "Optional. Filter by recordings that are in progress, or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter by recordings that are in progress, or not.",
              "nullable": true
            }
          },
          {
            "name": "seriesTimerId",
            "in": "query",
            "description": "Optional. Filter by recordings belonging to a series timer.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by recordings belonging to a series timer.",
              "nullable": true
            }
          },
          {
            "name": "enableImages",
            "in": "query",
            "description": "Optional. Include image information in output.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Include image information in output.",
              "nullable": true
            }
          },
          {
            "name": "imageTypeLimit",
            "in": "query",
            "description": "Optional. The max number of images to return, per image type.",
            "schema": {
              "type": "integer",
              "description": "Optional. The max number of images to return, per image type.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "enableImageTypes",
            "in": "query",
            "description": "Optional. The image types to include in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ImageType"
              },
              "description": "Optional. The image types to include in the output.",
              "nullable": true
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional. Specify additional fields of information to return in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFields"
              },
              "description": "Optional. Specify additional fields of information to return in the output.",
              "nullable": true
            }
          },
          {
            "name": "enableUserData",
            "in": "query",
            "description": "Optional. Include user data.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Include user data.",
              "nullable": true
            }
          },
          {
            "name": "isMovie",
            "in": "query",
            "description": "Optional. Filter for movies.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter for movies.",
              "nullable": true
            }
          },
          {
            "name": "isSeries",
            "in": "query",
            "description": "Optional. Filter for series.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter for series.",
              "nullable": true
            }
          },
          {
            "name": "isKids",
            "in": "query",
            "description": "Optional. Filter for kids.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter for kids.",
              "nullable": true
            }
          },
          {
            "name": "isSports",
            "in": "query",
            "description": "Optional. Filter for sports.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter for sports.",
              "nullable": true
            }
          },
          {
            "name": "isNews",
            "in": "query",
            "description": "Optional. Filter for news.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter for news.",
              "nullable": true
            }
          },
          {
            "name": "isLibraryItem",
            "in": "query",
            "description": "Optional. Filter for is library item.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter for is library item.",
              "nullable": true
            }
          },
          {
            "name": "enableTotalRecordCount",
            "in": "query",
            "description": "Optional. Return total record count.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Return total record count.",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Live tv recordings returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/LiveTv/Recordings/{recordingId}": {
      "get": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Gets a live tv recording.",
        "operationId": "GetRecording",
        "parameters": [
          {
            "name": "recordingId",
            "in": "path",
            "description": "Recording id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Recording id.",
              "format": "uuid"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. Attach user data.",
            "schema": {
              "type": "string",
              "description": "Optional. Attach user data.",
              "format": "uuid",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Recording returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDto"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDto"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Deletes a live tv recording.",
        "operationId": "DeleteRecording",
        "parameters": [
          {
            "name": "recordingId",
            "in": "path",
            "description": "Recording id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Recording id.",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Recording deleted."
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/LiveTv/Recordings/Folders": {
      "get": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Gets recording folders.",
        "operationId": "GetRecordingFolders",
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. Filter by user and attach user data.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by user and attach user data.",
              "format": "uuid",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Recording folders returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/LiveTv/Recordings/Groups": {
      "get": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Gets live tv recording groups.",
        "operationId": "GetRecordingGroups",
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. Filter by user and attach user data.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by user and attach user data.",
              "format": "uuid",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Recording groups returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "deprecated": true,
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/LiveTv/Recordings/Groups/{groupId}": {
      "get": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Get recording group.",
        "operationId": "GetRecordingGroup",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "description": "Group id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Group id.",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "deprecated": true,
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/LiveTv/Recordings/Series": {
      "get": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Gets live tv recording series.",
        "operationId": "GetRecordingsSeries",
        "parameters": [
          {
            "name": "channelId",
            "in": "query",
            "description": "Optional. Filter by channel id.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by channel id.",
              "nullable": true
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. Filter by user and attach user data.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by user and attach user data.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "groupId",
            "in": "query",
            "description": "Optional. Filter by recording group.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by recording group.",
              "nullable": true
            }
          },
          {
            "name": "startIndex",
            "in": "query",
            "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
            "schema": {
              "type": "integer",
              "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Optional. The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of records to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "Optional. Filter by recording status.",
            "schema": {
              "$ref": "#/components/schemas/RecordingStatus"
            }
          },
          {
            "name": "isInProgress",
            "in": "query",
            "description": "Optional. Filter by recordings that are in progress, or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter by recordings that are in progress, or not.",
              "nullable": true
            }
          },
          {
            "name": "seriesTimerId",
            "in": "query",
            "description": "Optional. Filter by recordings belonging to a series timer.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by recordings belonging to a series timer.",
              "nullable": true
            }
          },
          {
            "name": "enableImages",
            "in": "query",
            "description": "Optional. Include image information in output.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Include image information in output.",
              "nullable": true
            }
          },
          {
            "name": "imageTypeLimit",
            "in": "query",
            "description": "Optional. The max number of images to return, per image type.",
            "schema": {
              "type": "integer",
              "description": "Optional. The max number of images to return, per image type.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "enableImageTypes",
            "in": "query",
            "description": "Optional. The image types to include in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ImageType"
              },
              "description": "Optional. The image types to include in the output.",
              "nullable": true
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional. Specify additional fields of information to return in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFields"
              },
              "description": "Optional. Specify additional fields of information to return in the output.",
              "nullable": true
            }
          },
          {
            "name": "enableUserData",
            "in": "query",
            "description": "Optional. Include user data.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Include user data.",
              "nullable": true
            }
          },
          {
            "name": "enableTotalRecordCount",
            "in": "query",
            "description": "Optional. Return total record count.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Return total record count.",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Live tv recordings returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "deprecated": true,
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/LiveTv/SeriesTimers": {
      "get": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Gets live tv series timers.",
        "operationId": "GetSeriesTimers",
        "parameters": [
          {
            "name": "sortBy",
            "in": "query",
            "description": "Optional. Sort by SortName or Priority.",
            "schema": {
              "type": "string",
              "description": "Optional. Sort by SortName or Priority.",
              "nullable": true
            }
          },
          {
            "name": "sortOrder",
            "in": "query",
            "description": "Optional. Sort in Ascending or Descending order.",
            "schema": {
              "$ref": "#/components/schemas/SortOrder"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Timers returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SeriesTimerInfoDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/SeriesTimerInfoDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/SeriesTimerInfoDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Creates a live tv series timer.",
        "operationId": "CreateSeriesTimer",
        "requestBody": {
          "description": "New series timer info.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SeriesTimerInfoDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SeriesTimerInfoDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SeriesTimerInfoDto"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Series timer info created."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/LiveTv/SeriesTimers/{timerId}": {
      "get": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Gets a live tv series timer.",
        "operationId": "GetSeriesTimer",
        "parameters": [
          {
            "name": "timerId",
            "in": "path",
            "description": "Timer id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Timer id."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Series timer returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SeriesTimerInfoDto"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/SeriesTimerInfoDto"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/SeriesTimerInfoDto"
                }
              }
            }
          },
          "404": {
            "description": "Series timer not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Cancels a live tv series timer.",
        "operationId": "CancelSeriesTimer",
        "parameters": [
          {
            "name": "timerId",
            "in": "path",
            "description": "Timer id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Timer id."
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Timer cancelled."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Updates a live tv series timer.",
        "operationId": "UpdateSeriesTimer",
        "parameters": [
          {
            "name": "timerId",
            "in": "path",
            "description": "Timer id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Timer id."
            }
          }
        ],
        "requestBody": {
          "description": "New series timer info.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SeriesTimerInfoDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SeriesTimerInfoDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SeriesTimerInfoDto"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Series timer updated."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/LiveTv/Timers": {
      "get": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Gets the live tv timers.",
        "operationId": "GetTimers",
        "parameters": [
          {
            "name": "channelId",
            "in": "query",
            "description": "Optional. Filter by channel id.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by channel id.",
              "nullable": true
            }
          },
          {
            "name": "seriesTimerId",
            "in": "query",
            "description": "Optional. Filter by timers belonging to a series timer.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by timers belonging to a series timer.",
              "nullable": true
            }
          },
          {
            "name": "isActive",
            "in": "query",
            "description": "Optional. Filter by timers that are active.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter by timers that are active.",
              "nullable": true
            }
          },
          {
            "name": "isScheduled",
            "in": "query",
            "description": "Optional. Filter by timers that are scheduled.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter by timers that are scheduled.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TimerInfoDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/TimerInfoDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/TimerInfoDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Creates a live tv timer.",
        "operationId": "CreateTimer",
        "requestBody": {
          "description": "New timer info.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TimerInfoDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TimerInfoDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TimerInfoDto"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Timer created."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/LiveTv/Timers/{timerId}": {
      "get": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Gets a timer.",
        "operationId": "GetTimer",
        "parameters": [
          {
            "name": "timerId",
            "in": "path",
            "description": "Timer id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Timer id."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Timer returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TimerInfoDto"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/TimerInfoDto"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/TimerInfoDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Cancels a live tv timer.",
        "operationId": "CancelTimer",
        "parameters": [
          {
            "name": "timerId",
            "in": "path",
            "description": "Timer id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Timer id."
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Timer deleted."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Updates a live tv timer.",
        "operationId": "UpdateTimer",
        "parameters": [
          {
            "name": "timerId",
            "in": "path",
            "description": "Timer id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Timer id."
            }
          }
        ],
        "requestBody": {
          "description": "New timer info.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TimerInfoDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TimerInfoDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TimerInfoDto"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Timer updated."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/LiveTv/Timers/Defaults": {
      "get": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Gets the default values for a new timer.",
        "operationId": "GetDefaultTimer",
        "parameters": [
          {
            "name": "programId",
            "in": "query",
            "description": "Optional. To attach default values based on a program.",
            "schema": {
              "type": "string",
              "description": "Optional. To attach default values based on a program.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Default values returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SeriesTimerInfoDto"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/SeriesTimerInfoDto"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/SeriesTimerInfoDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/LiveTv/TunerHosts": {
      "post": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Adds a tuner host.",
        "operationId": "AddTunerHost",
        "requestBody": {
          "description": "New tuner host.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TunerHostInfo"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TunerHostInfo"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TunerHostInfo"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Created tuner host returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TunerHostInfo"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/TunerHostInfo"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/TunerHostInfo"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Deletes a tuner host.",
        "operationId": "DeleteTunerHost",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "Tuner host id.",
            "schema": {
              "type": "string",
              "description": "Tuner host id.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Tuner host deleted."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/LiveTv/TunerHosts/Types": {
      "get": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Get tuner host types.",
        "operationId": "GetTunerHostTypes",
        "responses": {
          "200": {
            "description": "Tuner host types returned.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NameIdPair"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NameIdPair"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NameIdPair"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/LiveTv/Tuners/{tunerId}/Reset": {
      "post": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Resets a tv tuner.",
        "operationId": "ResetTuner",
        "parameters": [
          {
            "name": "tunerId",
            "in": "path",
            "description": "Tuner id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Tuner id."
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Tuner reset."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/LiveTv/Tuners/Discover": {
      "get": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Discover tuners.",
        "operationId": "DiscoverTuners",
        "parameters": [
          {
            "name": "newDevicesOnly",
            "in": "query",
            "description": "Only discover new tuners.",
            "schema": {
              "type": "boolean",
              "description": "Only discover new tuners.",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Tuners returned.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TunerHostInfo"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TunerHostInfo"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TunerHostInfo"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/LiveTv/Tuners/Discvover": {
      "get": {
        "tags": [
          "LiveTv"
        ],
        "summary": "Discover tuners.",
        "operationId": "DiscvoverTuners",
        "parameters": [
          {
            "name": "newDevicesOnly",
            "in": "query",
            "description": "Only discover new tuners.",
            "schema": {
              "type": "boolean",
              "description": "Only discover new tuners.",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Tuners returned.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TunerHostInfo"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TunerHostInfo"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TunerHostInfo"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Localization/Countries": {
      "get": {
        "tags": [
          "Localization"
        ],
        "summary": "Gets known countries.",
        "operationId": "GetCountries",
        "responses": {
          "200": {
            "description": "Known countries returned.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CountryInfo"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CountryInfo"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CountryInfo"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "FirstTimeSetupOrDefault"
            ]
          }
        ]
      }
    },
    "/Localization/Cultures": {
      "get": {
        "tags": [
          "Localization"
        ],
        "summary": "Gets known cultures.",
        "operationId": "GetCultures",
        "responses": {
          "200": {
            "description": "Known cultures returned.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CultureDto"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CultureDto"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CultureDto"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "FirstTimeSetupOrDefault"
            ]
          }
        ]
      }
    },
    "/Localization/Options": {
      "get": {
        "tags": [
          "Localization"
        ],
        "summary": "Gets localization options.",
        "operationId": "GetLocalizationOptions",
        "responses": {
          "200": {
            "description": "Localization options returned.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LocalizationOption"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LocalizationOption"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LocalizationOption"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "FirstTimeSetupOrDefault"
            ]
          }
        ]
      }
    },
    "/Localization/ParentalRatings": {
      "get": {
        "tags": [
          "Localization"
        ],
        "summary": "Gets known parental ratings.",
        "operationId": "GetParentalRatings",
        "responses": {
          "200": {
            "description": "Known parental ratings returned.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ParentalRating"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ParentalRating"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ParentalRating"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "FirstTimeSetupOrDefault"
            ]
          }
        ]
      }
    },
    "/Items/{itemId}/PlaybackInfo": {
      "get": {
        "tags": [
          "MediaInfo"
        ],
        "summary": "Gets live playback media info for an item.",
        "operationId": "GetPlaybackInfo",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "The user id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The user id.",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Playback info returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlaybackInfoResponse"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/PlaybackInfoResponse"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/PlaybackInfoResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "MediaInfo"
        ],
        "summary": "Gets live playback media info for an item.",
        "description": "For backwards compatibility parameters can be sent via Query or Body, with Query having higher precedence.\r\nQuery parameters are obsolete.",
        "operationId": "GetPostedPlaybackInfo",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "The user id.",
            "deprecated": true,
            "schema": {
              "type": "string",
              "description": "The user id.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "maxStreamingBitrate",
            "in": "query",
            "description": "The maximum streaming bitrate.",
            "deprecated": true,
            "schema": {
              "type": "integer",
              "description": "The maximum streaming bitrate.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "startTimeTicks",
            "in": "query",
            "description": "The start time in ticks.",
            "deprecated": true,
            "schema": {
              "type": "integer",
              "description": "The start time in ticks.",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "audioStreamIndex",
            "in": "query",
            "description": "The audio stream index.",
            "deprecated": true,
            "schema": {
              "type": "integer",
              "description": "The audio stream index.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "subtitleStreamIndex",
            "in": "query",
            "description": "The subtitle stream index.",
            "deprecated": true,
            "schema": {
              "type": "integer",
              "description": "The subtitle stream index.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxAudioChannels",
            "in": "query",
            "description": "The maximum number of audio channels.",
            "deprecated": true,
            "schema": {
              "type": "integer",
              "description": "The maximum number of audio channels.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "mediaSourceId",
            "in": "query",
            "description": "The media source id.",
            "deprecated": true,
            "schema": {
              "type": "string",
              "description": "The media source id.",
              "nullable": true
            }
          },
          {
            "name": "liveStreamId",
            "in": "query",
            "description": "The livestream id.",
            "deprecated": true,
            "schema": {
              "type": "string",
              "description": "The livestream id.",
              "nullable": true
            }
          },
          {
            "name": "autoOpenLiveStream",
            "in": "query",
            "description": "Whether to auto open the livestream.",
            "deprecated": true,
            "schema": {
              "type": "boolean",
              "description": "Whether to auto open the livestream.",
              "nullable": true
            }
          },
          {
            "name": "enableDirectPlay",
            "in": "query",
            "description": "Whether to enable direct play. Default: true.",
            "deprecated": true,
            "schema": {
              "type": "boolean",
              "description": "Whether to enable direct play. Default: true.",
              "nullable": true
            }
          },
          {
            "name": "enableDirectStream",
            "in": "query",
            "description": "Whether to enable direct stream. Default: true.",
            "deprecated": true,
            "schema": {
              "type": "boolean",
              "description": "Whether to enable direct stream. Default: true.",
              "nullable": true
            }
          },
          {
            "name": "enableTranscoding",
            "in": "query",
            "description": "Whether to enable transcoding. Default: true.",
            "deprecated": true,
            "schema": {
              "type": "boolean",
              "description": "Whether to enable transcoding. Default: true.",
              "nullable": true
            }
          },
          {
            "name": "allowVideoStreamCopy",
            "in": "query",
            "description": "Whether to allow to copy the video stream. Default: true.",
            "deprecated": true,
            "schema": {
              "type": "boolean",
              "description": "Whether to allow to copy the video stream. Default: true.",
              "nullable": true
            }
          },
          {
            "name": "allowAudioStreamCopy",
            "in": "query",
            "description": "Whether to allow to copy the audio stream. Default: true.",
            "deprecated": true,
            "schema": {
              "type": "boolean",
              "description": "Whether to allow to copy the audio stream. Default: true.",
              "nullable": true
            }
          }
        ],
        "requestBody": {
          "description": "The playback info.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlaybackInfoDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PlaybackInfoDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PlaybackInfoDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Playback info returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlaybackInfoResponse"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/PlaybackInfoResponse"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/PlaybackInfoResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/LiveStreams/Close": {
      "post": {
        "tags": [
          "MediaInfo"
        ],
        "summary": "Closes a media source.",
        "operationId": "CloseLiveStream",
        "parameters": [
          {
            "name": "liveStreamId",
            "in": "query",
            "description": "The livestream id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The livestream id."
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Livestream closed."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/LiveStreams/Open": {
      "post": {
        "tags": [
          "MediaInfo"
        ],
        "summary": "Opens a media source.",
        "operationId": "OpenLiveStream",
        "parameters": [
          {
            "name": "openToken",
            "in": "query",
            "description": "The open token.",
            "schema": {
              "type": "string",
              "description": "The open token.",
              "nullable": true
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "The user id.",
            "schema": {
              "type": "string",
              "description": "The user id.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "playSessionId",
            "in": "query",
            "description": "The play session id.",
            "schema": {
              "type": "string",
              "description": "The play session id.",
              "nullable": true
            }
          },
          {
            "name": "maxStreamingBitrate",
            "in": "query",
            "description": "The maximum streaming bitrate.",
            "schema": {
              "type": "integer",
              "description": "The maximum streaming bitrate.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "startTimeTicks",
            "in": "query",
            "description": "The start time in ticks.",
            "schema": {
              "type": "integer",
              "description": "The start time in ticks.",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "audioStreamIndex",
            "in": "query",
            "description": "The audio stream index.",
            "schema": {
              "type": "integer",
              "description": "The audio stream index.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "subtitleStreamIndex",
            "in": "query",
            "description": "The subtitle stream index.",
            "schema": {
              "type": "integer",
              "description": "The subtitle stream index.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxAudioChannels",
            "in": "query",
            "description": "The maximum number of audio channels.",
            "schema": {
              "type": "integer",
              "description": "The maximum number of audio channels.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "itemId",
            "in": "query",
            "description": "The item id.",
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "enableDirectPlay",
            "in": "query",
            "description": "Whether to enable direct play. Default: true.",
            "schema": {
              "type": "boolean",
              "description": "Whether to enable direct play. Default: true.",
              "nullable": true
            }
          },
          {
            "name": "enableDirectStream",
            "in": "query",
            "description": "Whether to enable direct stream. Default: true.",
            "schema": {
              "type": "boolean",
              "description": "Whether to enable direct stream. Default: true.",
              "nullable": true
            }
          }
        ],
        "requestBody": {
          "description": "The open live stream dto.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OpenLiveStreamDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/OpenLiveStreamDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/OpenLiveStreamDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Media source opened.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LiveStreamResponse"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/LiveStreamResponse"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/LiveStreamResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Playback/BitrateTest": {
      "get": {
        "tags": [
          "MediaInfo"
        ],
        "summary": "Tests the network with a request with the size of the bitrate.",
        "operationId": "GetBitrateTestBytes",
        "parameters": [
          {
            "name": "size",
            "in": "query",
            "description": "The bitrate. Defaults to 102400.",
            "schema": {
              "type": "integer",
              "description": "The bitrate. Defaults to 102400.",
              "format": "int32",
              "default": 102400
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Test buffer returned.",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "description": "Size has to be a numer between 0 and 10,000,000.",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Movies/Recommendations": {
      "get": {
        "tags": [
          "Movies"
        ],
        "summary": "Gets movie recommendations.",
        "operationId": "GetMovieRecommendations",
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. Filter by user id, and attach user data.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by user id, and attach user data.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "parentId",
            "in": "query",
            "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.",
            "schema": {
              "type": "string",
              "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional. The fields to return.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFields"
              },
              "description": "Optional. The fields to return.",
              "nullable": true
            }
          },
          {
            "name": "categoryLimit",
            "in": "query",
            "description": "The max number of categories to return.",
            "schema": {
              "type": "integer",
              "description": "The max number of categories to return.",
              "format": "int32",
              "default": 5
            }
          },
          {
            "name": "itemLimit",
            "in": "query",
            "description": "The max number of items to return per category.",
            "schema": {
              "type": "integer",
              "description": "The max number of items to return per category.",
              "format": "int32",
              "default": 8
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Movie recommendations returned.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RecommendationDto"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RecommendationDto"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RecommendationDto"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/MusicGenres": {
      "get": {
        "tags": [
          "MusicGenres"
        ],
        "summary": "Gets all music genres from a given item, folder, or the entire library.",
        "operationId": "GetMusicGenres",
        "parameters": [
          {
            "name": "startIndex",
            "in": "query",
            "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
            "schema": {
              "type": "integer",
              "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Optional. The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of records to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "searchTerm",
            "in": "query",
            "description": "The search term.",
            "schema": {
              "type": "string",
              "description": "The search term.",
              "nullable": true
            }
          },
          {
            "name": "parentId",
            "in": "query",
            "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.",
            "schema": {
              "type": "string",
              "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional. Specify additional fields of information to return in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFields"
              },
              "description": "Optional. Specify additional fields of information to return in the output.",
              "nullable": true
            }
          },
          {
            "name": "excludeItemTypes",
            "in": "query",
            "description": "Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "includeItemTypes",
            "in": "query",
            "description": "Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "isFavorite",
            "in": "query",
            "description": "Optional filter by items that are marked as favorite, or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that are marked as favorite, or not.",
              "nullable": true
            }
          },
          {
            "name": "imageTypeLimit",
            "in": "query",
            "description": "Optional, the max number of images to return, per image type.",
            "schema": {
              "type": "integer",
              "description": "Optional, the max number of images to return, per image type.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "enableImageTypes",
            "in": "query",
            "description": "Optional. The image types to include in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ImageType"
              },
              "description": "Optional. The image types to include in the output.",
              "nullable": true
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "User id.",
            "schema": {
              "type": "string",
              "description": "User id.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "nameStartsWithOrGreater",
            "in": "query",
            "description": "Optional filter by items whose name is sorted equally or greater than a given input string.",
            "schema": {
              "type": "string",
              "description": "Optional filter by items whose name is sorted equally or greater than a given input string.",
              "nullable": true
            }
          },
          {
            "name": "nameStartsWith",
            "in": "query",
            "description": "Optional filter by items whose name is sorted equally than a given input string.",
            "schema": {
              "type": "string",
              "description": "Optional filter by items whose name is sorted equally than a given input string.",
              "nullable": true
            }
          },
          {
            "name": "nameLessThan",
            "in": "query",
            "description": "Optional filter by items whose name is equally or lesser than a given input string.",
            "schema": {
              "type": "string",
              "description": "Optional filter by items whose name is equally or lesser than a given input string.",
              "nullable": true
            }
          },
          {
            "name": "enableImages",
            "in": "query",
            "description": "Optional, include image information in output.",
            "schema": {
              "type": "boolean",
              "description": "Optional, include image information in output.",
              "default": true,
              "nullable": true
            }
          },
          {
            "name": "enableTotalRecordCount",
            "in": "query",
            "description": "Optional. Include total record count.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Include total record count.",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Music genres returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "deprecated": true,
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/MusicGenres/{genreName}": {
      "get": {
        "tags": [
          "MusicGenres"
        ],
        "summary": "Gets a music genre, by name.",
        "operationId": "GetMusicGenre",
        "parameters": [
          {
            "name": "genreName",
            "in": "path",
            "description": "The genre name.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The genre name."
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. Filter by user id, and attach user data.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by user id, and attach user data.",
              "format": "uuid",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDto"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDto"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Notifications/{userId}": {
      "get": {
        "tags": [
          "Notifications"
        ],
        "summary": "Gets a user's notifications.",
        "operationId": "GetNotifications",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Notifications returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationResultDto"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationResultDto"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationResultDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Notifications/{userId}/Read": {
      "post": {
        "tags": [
          "Notifications"
        ],
        "summary": "Sets notifications as read.",
        "operationId": "SetRead",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Notifications set as read."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Notifications/{userId}/Summary": {
      "get": {
        "tags": [
          "Notifications"
        ],
        "summary": "Gets a user's notification summary.",
        "operationId": "GetNotificationsSummary",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Summary of user's notifications returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationsSummaryDto"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationsSummaryDto"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationsSummaryDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Notifications/{userId}/Unread": {
      "post": {
        "tags": [
          "Notifications"
        ],
        "summary": "Sets notifications as unread.",
        "operationId": "SetUnread",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Notifications set as unread."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Notifications/Admin": {
      "post": {
        "tags": [
          "Notifications"
        ],
        "summary": "Sends a notification to all admins.",
        "operationId": "CreateAdminNotification",
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "description": "The URL of the notification.",
            "schema": {
              "type": "string",
              "description": "The URL of the notification.",
              "nullable": true
            }
          },
          {
            "name": "level",
            "in": "query",
            "description": "The level of the notification.",
            "schema": {
              "$ref": "#/components/schemas/NotificationLevel"
            }
          },
          {
            "name": "name",
            "in": "query",
            "description": "The name of the notification.",
            "schema": {
              "type": "string",
              "description": "The name of the notification.",
              "default": "",
              "nullable": true
            }
          },
          {
            "name": "description",
            "in": "query",
            "description": "The description of the notification.",
            "schema": {
              "type": "string",
              "description": "The description of the notification.",
              "default": "",
              "nullable": true
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Notification sent."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Notifications/Services": {
      "get": {
        "tags": [
          "Notifications"
        ],
        "summary": "Gets notification services.",
        "operationId": "GetNotificationServices",
        "responses": {
          "200": {
            "description": "All notification services returned.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NameIdPair"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NameIdPair"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NameIdPair"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Notifications/Types": {
      "get": {
        "tags": [
          "Notifications"
        ],
        "summary": "Gets notification types.",
        "operationId": "GetNotificationTypes",
        "responses": {
          "200": {
            "description": "All notification types returned.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NotificationTypeInfo"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NotificationTypeInfo"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NotificationTypeInfo"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Packages": {
      "get": {
        "tags": [
          "Package"
        ],
        "summary": "Gets available packages.",
        "operationId": "GetPackages",
        "responses": {
          "200": {
            "description": "Available packages returned.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PackageInfo"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PackageInfo"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PackageInfo"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Packages/{name}": {
      "get": {
        "tags": [
          "Package"
        ],
        "summary": "Gets a package by name or assembly GUID.",
        "operationId": "GetPackageInfo",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "The name of the package.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The name of the package."
            }
          },
          {
            "name": "assemblyGuid",
            "in": "query",
            "description": "The GUID of the associated assembly.",
            "schema": {
              "type": "string",
              "description": "The GUID of the associated assembly.",
              "format": "uuid",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Package retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PackageInfo"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/PackageInfo"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/PackageInfo"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Packages/Installed/{name}": {
      "post": {
        "tags": [
          "Package"
        ],
        "summary": "Installs a package.",
        "operationId": "InstallPackage",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "Package name.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Package name."
            }
          },
          {
            "name": "assemblyGuid",
            "in": "query",
            "description": "GUID of the associated assembly.",
            "schema": {
              "type": "string",
              "description": "GUID of the associated assembly.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "version",
            "in": "query",
            "description": "Optional version. Defaults to latest version.",
            "schema": {
              "type": "string",
              "description": "Optional version. Defaults to latest version.",
              "nullable": true
            }
          },
          {
            "name": "repositoryUrl",
            "in": "query",
            "description": "Optional. Specify the repository to install from.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify the repository to install from.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Package found."
          },
          "404": {
            "description": "Package not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation",
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Packages/Installing/{packageId}": {
      "delete": {
        "tags": [
          "Package"
        ],
        "summary": "Cancels a package installation.",
        "operationId": "CancelPackageInstallation",
        "parameters": [
          {
            "name": "packageId",
            "in": "path",
            "description": "Installation Id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Installation Id.",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Installation cancelled."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation",
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Repositories": {
      "get": {
        "tags": [
          "Package"
        ],
        "summary": "Gets all package repositories.",
        "operationId": "GetRepositories",
        "responses": {
          "200": {
            "description": "Package repositories returned.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RepositoryInfo"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RepositoryInfo"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RepositoryInfo"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "Package"
        ],
        "summary": "Sets the enabled and existing package repositories.",
        "operationId": "SetRepositories",
        "requestBody": {
          "description": "The list of package repositories.",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/RepositoryInfo"
                },
                "description": "The list of package repositories.",
                "nullable": true
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/RepositoryInfo"
                },
                "description": "The list of package repositories.",
                "nullable": true
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/RepositoryInfo"
                },
                "description": "The list of package repositories.",
                "nullable": true
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Package repositories saved."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Persons": {
      "get": {
        "tags": [
          "Persons"
        ],
        "summary": "Gets all persons.",
        "operationId": "GetPersons",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "Optional. The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of records to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "searchTerm",
            "in": "query",
            "description": "The search term.",
            "schema": {
              "type": "string",
              "description": "The search term.",
              "nullable": true
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional. Specify additional fields of information to return in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFields"
              },
              "description": "Optional. Specify additional fields of information to return in the output.",
              "nullable": true
            }
          },
          {
            "name": "filters",
            "in": "query",
            "description": "Optional. Specify additional filters to apply.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFilter"
              },
              "description": "Optional. Specify additional filters to apply.",
              "nullable": true
            }
          },
          {
            "name": "isFavorite",
            "in": "query",
            "description": "Optional filter by items that are marked as favorite, or not. userId is required.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that are marked as favorite, or not. userId is required.",
              "nullable": true
            }
          },
          {
            "name": "enableUserData",
            "in": "query",
            "description": "Optional, include user data.",
            "schema": {
              "type": "boolean",
              "description": "Optional, include user data.",
              "nullable": true
            }
          },
          {
            "name": "imageTypeLimit",
            "in": "query",
            "description": "Optional, the max number of images to return, per image type.",
            "schema": {
              "type": "integer",
              "description": "Optional, the max number of images to return, per image type.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "enableImageTypes",
            "in": "query",
            "description": "Optional. The image types to include in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ImageType"
              },
              "description": "Optional. The image types to include in the output.",
              "nullable": true
            }
          },
          {
            "name": "excludePersonTypes",
            "in": "query",
            "description": "Optional. If specified results will be filtered to exclude those containing the specified PersonType. Allows multiple, comma-delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified results will be filtered to exclude those containing the specified PersonType. Allows multiple, comma-delimited.",
              "nullable": true
            }
          },
          {
            "name": "personTypes",
            "in": "query",
            "description": "Optional. If specified results will be filtered to include only those containing the specified PersonType. Allows multiple, comma-delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified results will be filtered to include only those containing the specified PersonType. Allows multiple, comma-delimited.",
              "nullable": true
            }
          },
          {
            "name": "appearsInItemId",
            "in": "query",
            "description": "Optional. If specified, person results will be filtered on items related to said persons.",
            "schema": {
              "type": "string",
              "description": "Optional. If specified, person results will be filtered on items related to said persons.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "User id.",
            "schema": {
              "type": "string",
              "description": "User id.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "enableImages",
            "in": "query",
            "description": "Optional, include image information in output.",
            "schema": {
              "type": "boolean",
              "description": "Optional, include image information in output.",
              "default": true,
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Persons returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Persons/{name}": {
      "get": {
        "tags": [
          "Persons"
        ],
        "summary": "Get person by name.",
        "operationId": "GetPerson",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "Person name.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Person name."
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. Filter by user id, and attach user data.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by user id, and attach user data.",
              "format": "uuid",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Person returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDto"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDto"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDto"
                }
              }
            }
          },
          "404": {
            "description": "Person not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Playlists": {
      "post": {
        "tags": [
          "Playlists"
        ],
        "summary": "Creates a new playlist.",
        "description": "For backwards compatibility parameters can be sent via Query or Body, with Query having higher precedence.\r\nQuery parameters are obsolete.",
        "operationId": "CreatePlaylist",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "description": "The playlist name.",
            "deprecated": true,
            "schema": {
              "type": "string",
              "description": "The playlist name.",
              "nullable": true
            }
          },
          {
            "name": "ids",
            "in": "query",
            "description": "The item ids.",
            "deprecated": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "The item ids.",
              "nullable": true
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "The user id.",
            "deprecated": true,
            "schema": {
              "type": "string",
              "description": "The user id.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "mediaType",
            "in": "query",
            "description": "The media type.",
            "deprecated": true,
            "schema": {
              "type": "string",
              "description": "The media type.",
              "nullable": true
            }
          }
        ],
        "requestBody": {
          "description": "The create playlist payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePlaylistDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePlaylistDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePlaylistDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlaylistCreationResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/PlaylistCreationResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/PlaylistCreationResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Playlists/{playlistId}/Items": {
      "post": {
        "tags": [
          "Playlists"
        ],
        "summary": "Adds items to a playlist.",
        "operationId": "AddToPlaylist",
        "parameters": [
          {
            "name": "playlistId",
            "in": "path",
            "description": "The playlist id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The playlist id.",
              "format": "uuid"
            }
          },
          {
            "name": "ids",
            "in": "query",
            "description": "Item id, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Item id, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "The userId.",
            "schema": {
              "type": "string",
              "description": "The userId.",
              "format": "uuid",
              "nullable": true
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Items added to playlist."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Playlists"
        ],
        "summary": "Removes items from a playlist.",
        "operationId": "RemoveFromPlaylist",
        "parameters": [
          {
            "name": "playlistId",
            "in": "path",
            "description": "The playlist id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The playlist id."
            }
          },
          {
            "name": "entryIds",
            "in": "query",
            "description": "The item ids, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "The item ids, comma delimited.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Items removed."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      },
      "get": {
        "tags": [
          "Playlists"
        ],
        "summary": "Gets the original items of a playlist.",
        "operationId": "GetPlaylistItems",
        "parameters": [
          {
            "name": "playlistId",
            "in": "path",
            "description": "The playlist id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The playlist id.",
              "format": "uuid"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "User id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "User id.",
              "format": "uuid"
            }
          },
          {
            "name": "startIndex",
            "in": "query",
            "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
            "schema": {
              "type": "integer",
              "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Optional. The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of records to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional. Specify additional fields of information to return in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFields"
              },
              "description": "Optional. Specify additional fields of information to return in the output.",
              "nullable": true
            }
          },
          {
            "name": "enableImages",
            "in": "query",
            "description": "Optional. Include image information in output.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Include image information in output.",
              "nullable": true
            }
          },
          {
            "name": "enableUserData",
            "in": "query",
            "description": "Optional. Include user data.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Include user data.",
              "nullable": true
            }
          },
          {
            "name": "imageTypeLimit",
            "in": "query",
            "description": "Optional. The max number of images to return, per image type.",
            "schema": {
              "type": "integer",
              "description": "Optional. The max number of images to return, per image type.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "enableImageTypes",
            "in": "query",
            "description": "Optional. The image types to include in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ImageType"
              },
              "description": "Optional. The image types to include in the output.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Original playlist returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "404": {
            "description": "Playlist not found."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Playlists/{playlistId}/Items/{itemId}/Move/{newIndex}": {
      "post": {
        "tags": [
          "Playlists"
        ],
        "summary": "Moves a playlist item.",
        "operationId": "MoveItem",
        "parameters": [
          {
            "name": "playlistId",
            "in": "path",
            "description": "The playlist id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The playlist id."
            }
          },
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id."
            }
          },
          {
            "name": "newIndex",
            "in": "path",
            "description": "The new index.",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "The new index.",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Item moved to new index."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Sessions/Playing": {
      "post": {
        "tags": [
          "Playstate"
        ],
        "summary": "Reports playback has started within a session.",
        "operationId": "ReportPlaybackStart",
        "requestBody": {
          "description": "The playback start info.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlaybackStartInfo"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PlaybackStartInfo"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PlaybackStartInfo"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Playback start recorded."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Sessions/Playing/Ping": {
      "post": {
        "tags": [
          "Playstate"
        ],
        "summary": "Pings a playback session.",
        "operationId": "PingPlaybackSession",
        "parameters": [
          {
            "name": "playSessionId",
            "in": "query",
            "description": "Playback session id.",
            "schema": {
              "type": "string",
              "description": "Playback session id.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Playback session pinged."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Sessions/Playing/Progress": {
      "post": {
        "tags": [
          "Playstate"
        ],
        "summary": "Reports playback progress within a session.",
        "operationId": "ReportPlaybackProgress",
        "requestBody": {
          "description": "The playback progress info.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlaybackProgressInfo"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PlaybackProgressInfo"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PlaybackProgressInfo"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Playback progress recorded."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Sessions/Playing/Stopped": {
      "post": {
        "tags": [
          "Playstate"
        ],
        "summary": "Reports playback has stopped within a session.",
        "operationId": "ReportPlaybackStopped",
        "requestBody": {
          "description": "The playback stop info.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlaybackStopInfo"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PlaybackStopInfo"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PlaybackStopInfo"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Playback stop recorded."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Users/{userId}/PlayedItems/{itemId}": {
      "post": {
        "tags": [
          "Playstate"
        ],
        "summary": "Marks an item as played for user.",
        "operationId": "MarkPlayedItem",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "User id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "User id.",
              "format": "uuid"
            }
          },
          {
            "name": "itemId",
            "in": "path",
            "description": "Item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Item id.",
              "format": "uuid"
            }
          },
          {
            "name": "datePlayed",
            "in": "query",
            "description": "Optional. The date the item was played.",
            "schema": {
              "type": "string",
              "description": "Optional. The date the item was played.",
              "format": "date-time",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Item marked as played.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserItemDataDto"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/UserItemDataDto"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/UserItemDataDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Playstate"
        ],
        "summary": "Marks an item as unplayed for user.",
        "operationId": "MarkUnplayedItem",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "User id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "User id.",
              "format": "uuid"
            }
          },
          {
            "name": "itemId",
            "in": "path",
            "description": "Item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Item id.",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Item marked as unplayed.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserItemDataDto"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/UserItemDataDto"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/UserItemDataDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Users/{userId}/PlayingItems/{itemId}": {
      "post": {
        "tags": [
          "Playstate"
        ],
        "summary": "Reports that a user has begun playing an item.",
        "operationId": "OnPlaybackStart",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "User id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "User id.",
              "format": "uuid"
            }
          },
          {
            "name": "itemId",
            "in": "path",
            "description": "Item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Item id.",
              "format": "uuid"
            }
          },
          {
            "name": "mediaSourceId",
            "in": "query",
            "description": "The id of the MediaSource.",
            "schema": {
              "type": "string",
              "description": "The id of the MediaSource.",
              "nullable": true
            }
          },
          {
            "name": "audioStreamIndex",
            "in": "query",
            "description": "The audio stream index.",
            "schema": {
              "type": "integer",
              "description": "The audio stream index.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "subtitleStreamIndex",
            "in": "query",
            "description": "The subtitle stream index.",
            "schema": {
              "type": "integer",
              "description": "The subtitle stream index.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "playMethod",
            "in": "query",
            "description": "The play method.",
            "schema": {
              "$ref": "#/components/schemas/PlayMethod"
            }
          },
          {
            "name": "liveStreamId",
            "in": "query",
            "description": "The live stream id.",
            "schema": {
              "type": "string",
              "description": "The live stream id.",
              "nullable": true
            }
          },
          {
            "name": "playSessionId",
            "in": "query",
            "description": "The play session id.",
            "schema": {
              "type": "string",
              "description": "The play session id.",
              "nullable": true
            }
          },
          {
            "name": "canSeek",
            "in": "query",
            "description": "Indicates if the client can seek.",
            "schema": {
              "type": "boolean",
              "description": "Indicates if the client can seek.",
              "default": false
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Play start recorded."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Playstate"
        ],
        "summary": "Reports that a user has stopped playing an item.",
        "operationId": "OnPlaybackStopped",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "User id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "User id.",
              "format": "uuid"
            }
          },
          {
            "name": "itemId",
            "in": "path",
            "description": "Item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Item id.",
              "format": "uuid"
            }
          },
          {
            "name": "mediaSourceId",
            "in": "query",
            "description": "The id of the MediaSource.",
            "schema": {
              "type": "string",
              "description": "The id of the MediaSource.",
              "nullable": true
            }
          },
          {
            "name": "nextMediaType",
            "in": "query",
            "description": "The next media type that will play.",
            "schema": {
              "type": "string",
              "description": "The next media type that will play.",
              "nullable": true
            }
          },
          {
            "name": "positionTicks",
            "in": "query",
            "description": "Optional. The position, in ticks, where playback stopped. 1 tick = 10000 ms.",
            "schema": {
              "type": "integer",
              "description": "Optional. The position, in ticks, where playback stopped. 1 tick = 10000 ms.",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "liveStreamId",
            "in": "query",
            "description": "The live stream id.",
            "schema": {
              "type": "string",
              "description": "The live stream id.",
              "nullable": true
            }
          },
          {
            "name": "playSessionId",
            "in": "query",
            "description": "The play session id.",
            "schema": {
              "type": "string",
              "description": "The play session id.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Playback stop recorded."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Users/{userId}/PlayingItems/{itemId}/Progress": {
      "post": {
        "tags": [
          "Playstate"
        ],
        "summary": "Reports a user's playback progress.",
        "operationId": "OnPlaybackProgress",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "User id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "User id.",
              "format": "uuid"
            }
          },
          {
            "name": "itemId",
            "in": "path",
            "description": "Item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Item id.",
              "format": "uuid"
            }
          },
          {
            "name": "mediaSourceId",
            "in": "query",
            "description": "The id of the MediaSource.",
            "schema": {
              "type": "string",
              "description": "The id of the MediaSource.",
              "nullable": true
            }
          },
          {
            "name": "positionTicks",
            "in": "query",
            "description": "Optional. The current position, in ticks. 1 tick = 10000 ms.",
            "schema": {
              "type": "integer",
              "description": "Optional. The current position, in ticks. 1 tick = 10000 ms.",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "audioStreamIndex",
            "in": "query",
            "description": "The audio stream index.",
            "schema": {
              "type": "integer",
              "description": "The audio stream index.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "subtitleStreamIndex",
            "in": "query",
            "description": "The subtitle stream index.",
            "schema": {
              "type": "integer",
              "description": "The subtitle stream index.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "volumeLevel",
            "in": "query",
            "description": "Scale of 0-100.",
            "schema": {
              "type": "integer",
              "description": "Scale of 0-100.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "playMethod",
            "in": "query",
            "description": "The play method.",
            "schema": {
              "$ref": "#/components/schemas/PlayMethod"
            }
          },
          {
            "name": "liveStreamId",
            "in": "query",
            "description": "The live stream id.",
            "schema": {
              "type": "string",
              "description": "The live stream id.",
              "nullable": true
            }
          },
          {
            "name": "playSessionId",
            "in": "query",
            "description": "The play session id.",
            "schema": {
              "type": "string",
              "description": "The play session id.",
              "nullable": true
            }
          },
          {
            "name": "repeatMode",
            "in": "query",
            "description": "The repeat mode.",
            "schema": {
              "$ref": "#/components/schemas/RepeatMode"
            }
          },
          {
            "name": "isPaused",
            "in": "query",
            "description": "Indicates if the player is paused.",
            "schema": {
              "type": "boolean",
              "description": "Indicates if the player is paused.",
              "default": false
            }
          },
          {
            "name": "isMuted",
            "in": "query",
            "description": "Indicates if the player is muted.",
            "schema": {
              "type": "boolean",
              "description": "Indicates if the player is muted.",
              "default": false
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Play progress recorded."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Plugins": {
      "get": {
        "tags": [
          "Plugins"
        ],
        "summary": "Gets a list of currently installed plugins.",
        "operationId": "GetPlugins",
        "responses": {
          "200": {
            "description": "Installed plugins returned.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PluginInfo"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PluginInfo"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PluginInfo"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Plugins/{pluginId}": {
      "delete": {
        "tags": [
          "Plugins"
        ],
        "summary": "Uninstalls a plugin.",
        "operationId": "UninstallPlugin",
        "parameters": [
          {
            "name": "pluginId",
            "in": "path",
            "description": "Plugin id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Plugin id.",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Plugin uninstalled."
          },
          "404": {
            "description": "Plugin not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "deprecated": true,
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation",
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Plugins/{pluginId}/{version}": {
      "delete": {
        "tags": [
          "Plugins"
        ],
        "summary": "Uninstalls a plugin by version.",
        "operationId": "UninstallPluginByVersion",
        "parameters": [
          {
            "name": "pluginId",
            "in": "path",
            "description": "Plugin id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Plugin id.",
              "format": "uuid"
            }
          },
          {
            "name": "version",
            "in": "path",
            "description": "Plugin version.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/Version"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Plugin uninstalled."
          },
          "404": {
            "description": "Plugin not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation",
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Plugins/{pluginId}/{version}/Disable": {
      "post": {
        "tags": [
          "Plugins"
        ],
        "summary": "Disable a plugin.",
        "operationId": "DisablePlugin",
        "parameters": [
          {
            "name": "pluginId",
            "in": "path",
            "description": "Plugin id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Plugin id.",
              "format": "uuid"
            }
          },
          {
            "name": "version",
            "in": "path",
            "description": "Plugin version.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/Version"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Plugin disabled."
          },
          "404": {
            "description": "Plugin not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation",
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Plugins/{pluginId}/{version}/Enable": {
      "post": {
        "tags": [
          "Plugins"
        ],
        "summary": "Enables a disabled plugin.",
        "operationId": "EnablePlugin",
        "parameters": [
          {
            "name": "pluginId",
            "in": "path",
            "description": "Plugin id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Plugin id.",
              "format": "uuid"
            }
          },
          {
            "name": "version",
            "in": "path",
            "description": "Plugin version.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/Version"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Plugin enabled."
          },
          "404": {
            "description": "Plugin not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation",
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Plugins/{pluginId}/{version}/Image": {
      "get": {
        "tags": [
          "Plugins"
        ],
        "summary": "Gets a plugin's image.",
        "operationId": "GetPluginImage",
        "parameters": [
          {
            "name": "pluginId",
            "in": "path",
            "description": "Plugin id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Plugin id.",
              "format": "uuid"
            }
          },
          {
            "name": "version",
            "in": "path",
            "description": "Plugin version.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/Version"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Plugin image returned.",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Plugins/{pluginId}/Configuration": {
      "get": {
        "tags": [
          "Plugins"
        ],
        "summary": "Gets plugin configuration.",
        "operationId": "GetPluginConfiguration",
        "parameters": [
          {
            "name": "pluginId",
            "in": "path",
            "description": "Plugin id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Plugin id.",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Plugin configuration returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BasePluginConfiguration"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BasePluginConfiguration"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BasePluginConfiguration"
                }
              }
            }
          },
          "404": {
            "description": "Plugin not found or plugin configuration not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "Plugins"
        ],
        "summary": "Updates plugin configuration.",
        "description": "Accepts plugin configuration as JSON body.",
        "operationId": "UpdatePluginConfiguration",
        "parameters": [
          {
            "name": "pluginId",
            "in": "path",
            "description": "Plugin id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Plugin id.",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Plugin configuration updated."
          },
          "404": {
            "description": "Plugin not found or plugin does not have configuration.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Plugins/{pluginId}/Manifest": {
      "post": {
        "tags": [
          "Plugins"
        ],
        "summary": "Gets a plugin's manifest.",
        "operationId": "GetPluginManifest",
        "parameters": [
          {
            "name": "pluginId",
            "in": "path",
            "description": "Plugin id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Plugin id.",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Plugin manifest returned."
          },
          "404": {
            "description": "Plugin not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Plugins/SecurityInfo": {
      "post": {
        "tags": [
          "Plugins"
        ],
        "summary": "Updates plugin security info.",
        "operationId": "UpdatePluginSecurityInfo",
        "requestBody": {
          "description": "Plugin security info.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PluginSecurityInfo"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PluginSecurityInfo"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PluginSecurityInfo"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Plugin security info updated."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "deprecated": true,
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation",
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/QuickConnect/Activate": {
      "post": {
        "tags": [
          "QuickConnect"
        ],
        "summary": "Temporarily activates quick connect for five minutes.",
        "operationId": "Activate",
        "responses": {
          "204": {
            "description": "Quick connect has been temporarily activated."
          },
          "403": {
            "description": "Quick connect is unavailable on this server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/QuickConnect/Authorize": {
      "post": {
        "tags": [
          "QuickConnect"
        ],
        "summary": "Authorizes a pending quick connect request.",
        "operationId": "Authorize",
        "parameters": [
          {
            "name": "code",
            "in": "query",
            "description": "Quick connect code to authorize.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Quick connect code to authorize."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Quick connect result authorized successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "boolean"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "403": {
            "description": "Unknown user id.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/QuickConnect/Available": {
      "post": {
        "tags": [
          "QuickConnect"
        ],
        "summary": "Enables or disables quick connect.",
        "operationId": "Available",
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "description": "New MediaBrowser.Model.QuickConnect.QuickConnectState.",
            "schema": {
              "$ref": "#/components/schemas/QuickConnectState"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Quick connect state set successfully."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      }
    },
    "/QuickConnect/Connect": {
      "get": {
        "tags": [
          "QuickConnect"
        ],
        "summary": "Attempts to retrieve authentication information.",
        "operationId": "Connect",
        "parameters": [
          {
            "name": "secret",
            "in": "query",
            "description": "Secret previously returned from the Initiate endpoint.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Secret previously returned from the Initiate endpoint."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Quick connect result returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuickConnectResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/QuickConnectResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/QuickConnectResult"
                }
              }
            }
          },
          "404": {
            "description": "Unknown quick connect secret.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/QuickConnect/Deauthorize": {
      "post": {
        "tags": [
          "QuickConnect"
        ],
        "summary": "Deauthorize all quick connect devices for the current user.",
        "operationId": "Deauthorize",
        "responses": {
          "200": {
            "description": "All quick connect devices were deleted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/QuickConnect/Initiate": {
      "get": {
        "tags": [
          "QuickConnect"
        ],
        "summary": "Initiate a new quick connect request.",
        "operationId": "Initiate",
        "responses": {
          "200": {
            "description": "Quick connect request successfully created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuickConnectResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/QuickConnectResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/QuickConnectResult"
                }
              }
            }
          },
          "401": {
            "description": "Quick connect is not active on this server."
          }
        }
      }
    },
    "/QuickConnect/Status": {
      "get": {
        "tags": [
          "QuickConnect"
        ],
        "summary": "Gets the current quick connect state.",
        "operationId": "GetStatus",
        "responses": {
          "200": {
            "description": "Quick connect state returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuickConnectState"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/QuickConnectState"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/QuickConnectState"
                }
              }
            }
          }
        }
      }
    },
    "/Images/Remote": {
      "get": {
        "tags": [
          "RemoteImage"
        ],
        "summary": "Gets a remote image.",
        "operationId": "GetRemoteImage",
        "parameters": [
          {
            "name": "imageUrl",
            "in": "query",
            "description": "The image url.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The image url.",
              "format": "uri"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Remote image returned.",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Remote image not found.",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/Items/{itemId}/RemoteImages": {
      "get": {
        "tags": [
          "RemoteImage"
        ],
        "summary": "Gets available remote images for an item.",
        "operationId": "GetRemoteImages",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "Item Id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Item Id.",
              "format": "uuid"
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "The image type.",
            "schema": {
              "$ref": "#/components/schemas/ImageType"
            }
          },
          {
            "name": "startIndex",
            "in": "query",
            "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
            "schema": {
              "type": "integer",
              "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Optional. The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of records to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "providerName",
            "in": "query",
            "description": "Optional. The image provider to use.",
            "schema": {
              "type": "string",
              "description": "Optional. The image provider to use.",
              "nullable": true
            }
          },
          {
            "name": "includeAllLanguages",
            "in": "query",
            "description": "Optional. Include all languages.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Include all languages.",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Remote Images returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RemoteImageResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/RemoteImageResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/RemoteImageResult"
                }
              }
            }
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Items/{itemId}/RemoteImages/Download": {
      "post": {
        "tags": [
          "RemoteImage"
        ],
        "summary": "Downloads a remote image for an item.",
        "operationId": "DownloadRemoteImage",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "Item Id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Item Id.",
              "format": "uuid"
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "The image type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ImageType"
            }
          },
          {
            "name": "imageUrl",
            "in": "query",
            "description": "The image url.",
            "schema": {
              "type": "string",
              "description": "The image url.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Remote image downloaded."
          },
          "404": {
            "description": "Remote image not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      }
    },
    "/Items/{itemId}/RemoteImages/Providers": {
      "get": {
        "tags": [
          "RemoteImage"
        ],
        "summary": "Gets available remote image providers for an item.",
        "operationId": "GetRemoteImageProviders",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "Item Id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Item Id.",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returned remote image providers.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ImageProviderInfo"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ImageProviderInfo"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ImageProviderInfo"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/ScheduledTasks": {
      "get": {
        "tags": [
          "ScheduledTasks"
        ],
        "summary": "Get tasks.",
        "operationId": "GetTasks",
        "parameters": [
          {
            "name": "isHidden",
            "in": "query",
            "description": "Optional filter tasks that are hidden, or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter tasks that are hidden, or not.",
              "nullable": true
            }
          },
          {
            "name": "isEnabled",
            "in": "query",
            "description": "Optional filter tasks that are enabled, or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter tasks that are enabled, or not.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Scheduled tasks retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TaskInfo"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TaskInfo"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TaskInfo"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      }
    },
    "/ScheduledTasks/{taskId}": {
      "get": {
        "tags": [
          "ScheduledTasks"
        ],
        "summary": "Get task by id.",
        "operationId": "GetTask",
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "description": "Task Id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Task Id."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Task retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskInfo"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/TaskInfo"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/TaskInfo"
                }
              }
            }
          },
          "404": {
            "description": "Task not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      }
    },
    "/ScheduledTasks/{taskId}/Triggers": {
      "post": {
        "tags": [
          "ScheduledTasks"
        ],
        "summary": "Update specified task triggers.",
        "operationId": "UpdateTask",
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "description": "Task Id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Task Id."
            }
          }
        ],
        "requestBody": {
          "description": "Triggers.",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/TaskTriggerInfo"
                },
                "description": "Triggers."
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/TaskTriggerInfo"
                },
                "description": "Triggers."
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/TaskTriggerInfo"
                },
                "description": "Triggers."
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Task triggers updated."
          },
          "404": {
            "description": "Task not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      }
    },
    "/ScheduledTasks/Running/{taskId}": {
      "post": {
        "tags": [
          "ScheduledTasks"
        ],
        "summary": "Start specified task.",
        "operationId": "StartTask",
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "description": "Task Id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Task Id."
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Task started."
          },
          "404": {
            "description": "Task not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "ScheduledTasks"
        ],
        "summary": "Stop specified task.",
        "operationId": "StopTask",
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "description": "Task Id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Task Id."
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Task stopped."
          },
          "404": {
            "description": "Task not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      }
    },
    "/Search/Hints": {
      "get": {
        "tags": [
          "Search"
        ],
        "summary": "Gets the search hint result.",
        "operationId": "Get",
        "parameters": [
          {
            "name": "startIndex",
            "in": "query",
            "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
            "schema": {
              "type": "integer",
              "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Optional. The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of records to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. Supply a user id to search within a user's library or omit to search all.",
            "schema": {
              "type": "string",
              "description": "Optional. Supply a user id to search within a user's library or omit to search all.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "searchTerm",
            "in": "query",
            "description": "The search term to filter on.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The search term to filter on."
            }
          },
          {
            "name": "includeItemTypes",
            "in": "query",
            "description": "If specified, only results with the specified item types are returned. This allows multiple, comma delimeted.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "If specified, only results with the specified item types are returned. This allows multiple, comma delimeted.",
              "nullable": true
            }
          },
          {
            "name": "excludeItemTypes",
            "in": "query",
            "description": "If specified, results with these item types are filtered out. This allows multiple, comma delimeted.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "If specified, results with these item types are filtered out. This allows multiple, comma delimeted.",
              "nullable": true
            }
          },
          {
            "name": "mediaTypes",
            "in": "query",
            "description": "If specified, only results with the specified media types are returned. This allows multiple, comma delimeted.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "If specified, only results with the specified media types are returned. This allows multiple, comma delimeted.",
              "nullable": true
            }
          },
          {
            "name": "parentId",
            "in": "query",
            "description": "If specified, only children of the parent are returned.",
            "schema": {
              "type": "string",
              "description": "If specified, only children of the parent are returned.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "isMovie",
            "in": "query",
            "description": "Optional filter for movies.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter for movies.",
              "nullable": true
            }
          },
          {
            "name": "isSeries",
            "in": "query",
            "description": "Optional filter for series.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter for series.",
              "nullable": true
            }
          },
          {
            "name": "isNews",
            "in": "query",
            "description": "Optional filter for news.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter for news.",
              "nullable": true
            }
          },
          {
            "name": "isKids",
            "in": "query",
            "description": "Optional filter for kids.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter for kids.",
              "nullable": true
            }
          },
          {
            "name": "isSports",
            "in": "query",
            "description": "Optional filter for sports.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter for sports.",
              "nullable": true
            }
          },
          {
            "name": "includePeople",
            "in": "query",
            "description": "Optional filter whether to include people.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter whether to include people.",
              "default": true
            }
          },
          {
            "name": "includeMedia",
            "in": "query",
            "description": "Optional filter whether to include media.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter whether to include media.",
              "default": true
            }
          },
          {
            "name": "includeGenres",
            "in": "query",
            "description": "Optional filter whether to include genres.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter whether to include genres.",
              "default": true
            }
          },
          {
            "name": "includeStudios",
            "in": "query",
            "description": "Optional filter whether to include studios.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter whether to include studios.",
              "default": true
            }
          },
          {
            "name": "includeArtists",
            "in": "query",
            "description": "Optional filter whether to include artists.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter whether to include artists.",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Search hint returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchHintResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/SearchHintResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/SearchHintResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Auth/PasswordResetProviders": {
      "get": {
        "tags": [
          "Session"
        ],
        "summary": "Get all password reset providers.",
        "operationId": "GetPasswordResetProviders",
        "responses": {
          "200": {
            "description": "Password reset providers retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NameIdPair"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NameIdPair"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NameIdPair"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      }
    },
    "/Auth/Providers": {
      "get": {
        "tags": [
          "Session"
        ],
        "summary": "Get all auth providers.",
        "operationId": "GetAuthProviders",
        "responses": {
          "200": {
            "description": "Auth providers retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NameIdPair"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NameIdPair"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NameIdPair"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      }
    },
    "/Sessions": {
      "get": {
        "tags": [
          "Session"
        ],
        "summary": "Gets a list of sessions.",
        "operationId": "GetSessions",
        "parameters": [
          {
            "name": "controllableByUserId",
            "in": "query",
            "description": "Filter by sessions that a given user is allowed to remote control.",
            "schema": {
              "type": "string",
              "description": "Filter by sessions that a given user is allowed to remote control.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "deviceId",
            "in": "query",
            "description": "Filter by device Id.",
            "schema": {
              "type": "string",
              "description": "Filter by device Id.",
              "nullable": true
            }
          },
          {
            "name": "activeWithinSeconds",
            "in": "query",
            "description": "Optional. Filter by sessions that were active in the last n seconds.",
            "schema": {
              "type": "integer",
              "description": "Optional. Filter by sessions that were active in the last n seconds.",
              "format": "int32",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of sessions returned.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SessionInfo"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SessionInfo"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SessionInfo"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Sessions/{sessionId}/Command": {
      "post": {
        "tags": [
          "Session"
        ],
        "summary": "Issues a full general command to a client.",
        "operationId": "SendFullGeneralCommand",
        "parameters": [
          {
            "name": "sessionId",
            "in": "path",
            "description": "The session id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The session id."
            }
          }
        ],
        "requestBody": {
          "description": "The MediaBrowser.Model.Session.GeneralCommand.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GeneralCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/GeneralCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/GeneralCommand"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Full general command sent to session."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Sessions/{sessionId}/Command/{command}": {
      "post": {
        "tags": [
          "Session"
        ],
        "summary": "Issues a general command to a client.",
        "operationId": "SendGeneralCommand",
        "parameters": [
          {
            "name": "sessionId",
            "in": "path",
            "description": "The session id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The session id."
            }
          },
          {
            "name": "command",
            "in": "path",
            "description": "The command to send.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/GeneralCommandType"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "General command sent to session."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Sessions/{sessionId}/Message": {
      "post": {
        "tags": [
          "Session"
        ],
        "summary": "Issues a command to a client to display a message to the user.",
        "operationId": "SendMessageCommand",
        "parameters": [
          {
            "name": "sessionId",
            "in": "path",
            "description": "The session id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The session id."
            }
          },
          {
            "name": "text",
            "in": "query",
            "description": "The message test.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The message test."
            }
          },
          {
            "name": "header",
            "in": "query",
            "description": "The message header.",
            "schema": {
              "type": "string",
              "description": "The message header.",
              "nullable": true
            }
          },
          {
            "name": "timeoutMs",
            "in": "query",
            "description": "The message timeout. If omitted the user will have to confirm viewing the message.",
            "schema": {
              "type": "integer",
              "description": "The message timeout. If omitted the user will have to confirm viewing the message.",
              "format": "int64",
              "nullable": true
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Message sent."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Sessions/{sessionId}/Playing": {
      "post": {
        "tags": [
          "Session"
        ],
        "summary": "Instructs a session to play an item.",
        "operationId": "Play",
        "parameters": [
          {
            "name": "sessionId",
            "in": "path",
            "description": "The session id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The session id."
            }
          },
          {
            "name": "playCommand",
            "in": "query",
            "description": "The type of play command to issue (PlayNow, PlayNext, PlayLast). Clients who have not yet implemented play next and play last may play now.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/PlayCommand"
            }
          },
          {
            "name": "itemIds",
            "in": "query",
            "description": "The ids of the items to play, comma delimited.",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "The ids of the items to play, comma delimited."
            }
          },
          {
            "name": "startPositionTicks",
            "in": "query",
            "description": "The starting position of the first item.",
            "schema": {
              "type": "integer",
              "description": "The starting position of the first item.",
              "format": "int64",
              "nullable": true
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Instruction sent to session."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Sessions/{sessionId}/Playing/{command}": {
      "post": {
        "tags": [
          "Session"
        ],
        "summary": "Issues a playstate command to a client.",
        "operationId": "SendPlaystateCommand",
        "parameters": [
          {
            "name": "sessionId",
            "in": "path",
            "description": "The session id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The session id."
            }
          },
          {
            "name": "command",
            "in": "path",
            "description": "The MediaBrowser.Model.Session.PlaystateCommand.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/PlaystateCommand"
            }
          },
          {
            "name": "seekPositionTicks",
            "in": "query",
            "description": "The optional position ticks.",
            "schema": {
              "type": "integer",
              "description": "The optional position ticks.",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "controllingUserId",
            "in": "query",
            "description": "The optional controlling user id.",
            "schema": {
              "type": "string",
              "description": "The optional controlling user id.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Playstate command sent to session."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Sessions/{sessionId}/System/{command}": {
      "post": {
        "tags": [
          "Session"
        ],
        "summary": "Issues a system command to a client.",
        "operationId": "SendSystemCommand",
        "parameters": [
          {
            "name": "sessionId",
            "in": "path",
            "description": "The session id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The session id."
            }
          },
          {
            "name": "command",
            "in": "path",
            "description": "The command to send.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/GeneralCommandType"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "System command sent to session."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Sessions/{sessionId}/User/{userId}": {
      "post": {
        "tags": [
          "Session"
        ],
        "summary": "Adds an additional user to a session.",
        "operationId": "AddUserToSession",
        "parameters": [
          {
            "name": "sessionId",
            "in": "path",
            "description": "The session id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The session id."
            }
          },
          {
            "name": "userId",
            "in": "path",
            "description": "The user id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The user id.",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "User added to session."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Session"
        ],
        "summary": "Removes an additional user from a session.",
        "operationId": "RemoveUserFromSession",
        "parameters": [
          {
            "name": "sessionId",
            "in": "path",
            "description": "The session id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The session id."
            }
          },
          {
            "name": "userId",
            "in": "path",
            "description": "The user id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The user id.",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "User removed from session."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Sessions/{sessionId}/Viewing": {
      "post": {
        "tags": [
          "Session"
        ],
        "summary": "Instructs a session to browse to an item or view.",
        "operationId": "DisplayContent",
        "parameters": [
          {
            "name": "sessionId",
            "in": "path",
            "description": "The session Id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The session Id."
            }
          },
          {
            "name": "itemType",
            "in": "query",
            "description": "The type of item to browse to.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The type of item to browse to."
            }
          },
          {
            "name": "itemId",
            "in": "query",
            "description": "The Id of the item.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The Id of the item."
            }
          },
          {
            "name": "itemName",
            "in": "query",
            "description": "The name of the item.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The name of the item."
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Instruction sent to session."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Sessions/Capabilities": {
      "post": {
        "tags": [
          "Session"
        ],
        "summary": "Updates capabilities for a device.",
        "operationId": "PostCapabilities",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "The session id.",
            "schema": {
              "type": "string",
              "description": "The session id.",
              "nullable": true
            }
          },
          {
            "name": "playableMediaTypes",
            "in": "query",
            "description": "A list of playable media types, comma delimited. Audio, Video, Book, Photo.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "A list of playable media types, comma delimited. Audio, Video, Book, Photo.",
              "nullable": true
            }
          },
          {
            "name": "supportedCommands",
            "in": "query",
            "description": "A list of supported remote control commands, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/GeneralCommandType"
              },
              "description": "A list of supported remote control commands, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "supportsMediaControl",
            "in": "query",
            "description": "Determines whether media can be played remotely..",
            "schema": {
              "type": "boolean",
              "description": "Determines whether media can be played remotely..",
              "default": false
            }
          },
          {
            "name": "supportsSync",
            "in": "query",
            "description": "Determines whether sync is supported.",
            "schema": {
              "type": "boolean",
              "description": "Determines whether sync is supported.",
              "default": false
            }
          },
          {
            "name": "supportsPersistentIdentifier",
            "in": "query",
            "description": "Determines whether the device supports a unique identifier.",
            "schema": {
              "type": "boolean",
              "description": "Determines whether the device supports a unique identifier.",
              "default": true
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Capabilities posted."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Sessions/Capabilities/Full": {
      "post": {
        "tags": [
          "Session"
        ],
        "summary": "Updates capabilities for a device.",
        "operationId": "PostFullCapabilities",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "The session id.",
            "schema": {
              "type": "string",
              "description": "The session id.",
              "nullable": true
            }
          }
        ],
        "requestBody": {
          "description": "The MediaBrowser.Model.Session.ClientCapabilities.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ClientCapabilitiesDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ClientCapabilitiesDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ClientCapabilitiesDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Capabilities updated."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Sessions/Logout": {
      "post": {
        "tags": [
          "Session"
        ],
        "summary": "Reports that a session has ended.",
        "operationId": "ReportSessionEnded",
        "responses": {
          "204": {
            "description": "Session end reported to server."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Sessions/Viewing": {
      "post": {
        "tags": [
          "Session"
        ],
        "summary": "Reports that a session is viewing an item.",
        "operationId": "ReportViewing",
        "parameters": [
          {
            "name": "sessionId",
            "in": "query",
            "description": "The session id.",
            "schema": {
              "type": "string",
              "description": "The session id.",
              "nullable": true
            }
          },
          {
            "name": "itemId",
            "in": "query",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id."
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Session reported to server."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Startup/Complete": {
      "post": {
        "tags": [
          "Startup"
        ],
        "summary": "Completes the startup wizard.",
        "operationId": "CompleteWizard",
        "responses": {
          "204": {
            "description": "Startup wizard completed."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "FirstTimeSetupOrElevated"
            ]
          }
        ]
      }
    },
    "/Startup/Configuration": {
      "get": {
        "tags": [
          "Startup"
        ],
        "summary": "Gets the initial startup wizard configuration.",
        "operationId": "GetStartupConfiguration",
        "responses": {
          "200": {
            "description": "Initial startup wizard configuration retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StartupConfigurationDto"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/StartupConfigurationDto"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/StartupConfigurationDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "FirstTimeSetupOrElevated"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "Startup"
        ],
        "summary": "Sets the initial startup wizard configuration.",
        "operationId": "UpdateInitialConfiguration",
        "requestBody": {
          "description": "The updated startup configuration.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StartupConfigurationDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/StartupConfigurationDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/StartupConfigurationDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Configuration saved."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "FirstTimeSetupOrElevated"
            ]
          }
        ]
      }
    },
    "/Startup/FirstUser": {
      "get": {
        "tags": [
          "Startup"
        ],
        "summary": "Gets the first user.",
        "operationId": "GetFirstUser_2",
        "responses": {
          "200": {
            "description": "Initial user retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StartupUserDto"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/StartupUserDto"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/StartupUserDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "FirstTimeSetupOrElevated"
            ]
          }
        ]
      }
    },
    "/Startup/RemoteAccess": {
      "post": {
        "tags": [
          "Startup"
        ],
        "summary": "Sets remote access and UPnP.",
        "operationId": "SetRemoteAccess",
        "requestBody": {
          "description": "The startup remote access dto.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StartupRemoteAccessDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/StartupRemoteAccessDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/StartupRemoteAccessDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Configuration saved."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "FirstTimeSetupOrElevated"
            ]
          }
        ]
      }
    },
    "/Startup/User": {
      "get": {
        "tags": [
          "Startup"
        ],
        "summary": "Gets the first user.",
        "operationId": "GetFirstUser",
        "responses": {
          "200": {
            "description": "Initial user retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StartupUserDto"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/StartupUserDto"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/StartupUserDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "FirstTimeSetupOrElevated"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "Startup"
        ],
        "summary": "Sets the user name and password.",
        "operationId": "UpdateStartupUser",
        "requestBody": {
          "description": "The DTO containing username and password.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StartupUserDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/StartupUserDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/StartupUserDto"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Updated user name and password."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "FirstTimeSetupOrElevated"
            ]
          }
        ]
      }
    },
    "/Studios": {
      "get": {
        "tags": [
          "Studios"
        ],
        "summary": "Gets all studios from a given item, folder, or the entire library.",
        "operationId": "GetStudios",
        "parameters": [
          {
            "name": "startIndex",
            "in": "query",
            "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
            "schema": {
              "type": "integer",
              "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Optional. The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of records to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "searchTerm",
            "in": "query",
            "description": "Optional. Search term.",
            "schema": {
              "type": "string",
              "description": "Optional. Search term.",
              "nullable": true
            }
          },
          {
            "name": "parentId",
            "in": "query",
            "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.",
            "schema": {
              "type": "string",
              "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional. Specify additional fields of information to return in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFields"
              },
              "description": "Optional. Specify additional fields of information to return in the output.",
              "nullable": true
            }
          },
          {
            "name": "excludeItemTypes",
            "in": "query",
            "description": "Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "includeItemTypes",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "isFavorite",
            "in": "query",
            "description": "Optional filter by items that are marked as favorite, or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that are marked as favorite, or not.",
              "nullable": true
            }
          },
          {
            "name": "enableUserData",
            "in": "query",
            "description": "Optional, include user data.",
            "schema": {
              "type": "boolean",
              "description": "Optional, include user data.",
              "nullable": true
            }
          },
          {
            "name": "imageTypeLimit",
            "in": "query",
            "description": "Optional, the max number of images to return, per image type.",
            "schema": {
              "type": "integer",
              "description": "Optional, the max number of images to return, per image type.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "enableImageTypes",
            "in": "query",
            "description": "Optional. The image types to include in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ImageType"
              },
              "description": "Optional. The image types to include in the output.",
              "nullable": true
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "User id.",
            "schema": {
              "type": "string",
              "description": "User id.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "nameStartsWithOrGreater",
            "in": "query",
            "description": "Optional filter by items whose name is sorted equally or greater than a given input string.",
            "schema": {
              "type": "string",
              "description": "Optional filter by items whose name is sorted equally or greater than a given input string.",
              "nullable": true
            }
          },
          {
            "name": "nameStartsWith",
            "in": "query",
            "description": "Optional filter by items whose name is sorted equally than a given input string.",
            "schema": {
              "type": "string",
              "description": "Optional filter by items whose name is sorted equally than a given input string.",
              "nullable": true
            }
          },
          {
            "name": "nameLessThan",
            "in": "query",
            "description": "Optional filter by items whose name is equally or lesser than a given input string.",
            "schema": {
              "type": "string",
              "description": "Optional filter by items whose name is equally or lesser than a given input string.",
              "nullable": true
            }
          },
          {
            "name": "enableImages",
            "in": "query",
            "description": "Optional, include image information in output.",
            "schema": {
              "type": "boolean",
              "description": "Optional, include image information in output.",
              "default": true,
              "nullable": true
            }
          },
          {
            "name": "enableTotalRecordCount",
            "in": "query",
            "description": "Total record count.",
            "schema": {
              "type": "boolean",
              "description": "Total record count.",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Studios returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Studios/{name}": {
      "get": {
        "tags": [
          "Studios"
        ],
        "summary": "Gets a studio by name.",
        "operationId": "GetStudio",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "Studio name.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Studio name."
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. Filter by user id, and attach user data.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by user id, and attach user data.",
              "format": "uuid",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Studio returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDto"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDto"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/FallbackFont/Fonts": {
      "get": {
        "tags": [
          "Subtitle"
        ],
        "summary": "Gets a list of available fallback font files.",
        "operationId": "GetFallbackFontList",
        "responses": {
          "200": {
            "description": "Information retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FontFile"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FontFile"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FontFile"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/FallbackFont/Fonts/{name}": {
      "get": {
        "tags": [
          "Subtitle"
        ],
        "summary": "Gets a fallback font file.",
        "operationId": "GetFallbackFont",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "The name of the fallback font file to get.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The name of the fallback font file to get."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Fallback font file retrieved.",
            "content": {
              "font/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Items/{itemId}/RemoteSearch/Subtitles/{language}": {
      "get": {
        "tags": [
          "Subtitle"
        ],
        "summary": "Search remote subtitles.",
        "operationId": "SearchRemoteSubtitles",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "language",
            "in": "path",
            "description": "The language of the subtitles.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The language of the subtitles."
            }
          },
          {
            "name": "isPerfectMatch",
            "in": "query",
            "description": "Optional. Only show subtitles which are a perfect match.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Only show subtitles which are a perfect match.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Subtitles retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RemoteSubtitleInfo"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RemoteSubtitleInfo"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RemoteSubtitleInfo"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Items/{itemId}/RemoteSearch/Subtitles/{subtitleId}": {
      "post": {
        "tags": [
          "Subtitle"
        ],
        "summary": "Downloads a remote subtitle.",
        "operationId": "DownloadRemoteSubtitles",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "subtitleId",
            "in": "path",
            "description": "The subtitle id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The subtitle id."
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Subtitle downloaded."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Providers/Subtitles/Subtitles/{id}": {
      "get": {
        "tags": [
          "Subtitle"
        ],
        "summary": "Gets the remote subtitles.",
        "operationId": "GetRemoteSubtitles",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "File returned.",
            "content": {
              "text/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Videos/{itemId}/{mediaSourceId}/Subtitles/{index}/{startPositionTicks}/Stream.{format}": {
      "get": {
        "tags": [
          "Subtitle"
        ],
        "summary": "Gets subtitles in a specified format.",
        "operationId": "GetSubtitleWithTicks",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "mediaSourceId",
            "in": "path",
            "description": "The media source id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The media source id."
            }
          },
          {
            "name": "index",
            "in": "path",
            "description": "The subtitle stream index.",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "The subtitle stream index.",
              "format": "int32"
            }
          },
          {
            "name": "startPositionTicks",
            "in": "path",
            "description": "Optional. The start position of the subtitle in ticks.",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Optional. The start position of the subtitle in ticks.",
              "format": "int64"
            }
          },
          {
            "name": "format",
            "in": "path",
            "description": "The format of the returned subtitle.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The format of the returned subtitle."
            }
          },
          {
            "name": "endPositionTicks",
            "in": "query",
            "description": "Optional. The end position of the subtitle in ticks.",
            "schema": {
              "type": "integer",
              "description": "Optional. The end position of the subtitle in ticks.",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "copyTimestamps",
            "in": "query",
            "description": "Optional. Whether to copy the timestamps.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to copy the timestamps.",
              "default": false
            }
          },
          {
            "name": "addVttTimeMap",
            "in": "query",
            "description": "Optional. Whether to add a VTT time map.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to add a VTT time map.",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "File returned.",
            "content": {
              "text/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        }
      }
    },
    "/Videos/{itemId}/{mediaSourceId}/Subtitles/{index}/Stream.{format}": {
      "get": {
        "tags": [
          "Subtitle"
        ],
        "summary": "Gets subtitles in a specified format.",
        "operationId": "GetSubtitle",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "mediaSourceId",
            "in": "path",
            "description": "The media source id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The media source id."
            }
          },
          {
            "name": "index",
            "in": "path",
            "description": "The subtitle stream index.",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "The subtitle stream index.",
              "format": "int32"
            }
          },
          {
            "name": "format",
            "in": "path",
            "description": "The format of the returned subtitle.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The format of the returned subtitle."
            }
          },
          {
            "name": "endPositionTicks",
            "in": "query",
            "description": "Optional. The end position of the subtitle in ticks.",
            "schema": {
              "type": "integer",
              "description": "Optional. The end position of the subtitle in ticks.",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "copyTimestamps",
            "in": "query",
            "description": "Optional. Whether to copy the timestamps.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to copy the timestamps.",
              "default": false
            }
          },
          {
            "name": "addVttTimeMap",
            "in": "query",
            "description": "Optional. Whether to add a VTT time map.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to add a VTT time map.",
              "default": false
            }
          },
          {
            "name": "startPositionTicks",
            "in": "query",
            "description": "Optional. The start position of the subtitle in ticks.",
            "schema": {
              "type": "integer",
              "description": "Optional. The start position of the subtitle in ticks.",
              "format": "int64",
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "File returned.",
            "content": {
              "text/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        }
      }
    },
    "/Videos/{itemId}/{mediaSourceId}/Subtitles/{index}/subtitles.m3u8": {
      "get": {
        "tags": [
          "Subtitle"
        ],
        "summary": "Gets an HLS subtitle playlist.",
        "operationId": "GetSubtitlePlaylist",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "index",
            "in": "path",
            "description": "The subtitle stream index.",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "The subtitle stream index.",
              "format": "int32"
            }
          },
          {
            "name": "mediaSourceId",
            "in": "path",
            "description": "The media source id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The media source id."
            }
          },
          {
            "name": "segmentLength",
            "in": "query",
            "description": "The subtitle segment length.",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "The subtitle segment length.",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Subtitle playlist retrieved.",
            "content": {
              "application/x-mpegURL": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Videos/{itemId}/Subtitles": {
      "post": {
        "tags": [
          "Subtitle"
        ],
        "summary": "Upload an external subtitle file.",
        "operationId": "UploadSubtitle",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item the subtitle belongs to.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item the subtitle belongs to.",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UploadSubtitleDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UploadSubtitleDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UploadSubtitleDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Subtitle uploaded."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      }
    },
    "/Videos/{itemId}/Subtitles/{index}": {
      "delete": {
        "tags": [
          "Subtitle"
        ],
        "summary": "Deletes an external subtitle file.",
        "operationId": "DeleteSubtitle",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "index",
            "in": "path",
            "description": "The index of the subtitle file.",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "The index of the subtitle file.",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Subtitle deleted."
          },
          "404": {
            "description": "Item not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      }
    },
    "/Users/{userId}/Suggestions": {
      "get": {
        "tags": [
          "Suggestions"
        ],
        "summary": "Gets suggestions.",
        "operationId": "GetSuggestions",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "The user id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The user id.",
              "format": "uuid"
            }
          },
          {
            "name": "mediaType",
            "in": "query",
            "description": "The media types.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "The media types.",
              "nullable": true
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "The type.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "The type.",
              "nullable": true
            }
          },
          {
            "name": "startIndex",
            "in": "query",
            "description": "Optional. The start index.",
            "schema": {
              "type": "integer",
              "description": "Optional. The start index.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Optional. The limit.",
            "schema": {
              "type": "integer",
              "description": "Optional. The limit.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "enableTotalRecordCount",
            "in": "query",
            "description": "Whether to enable the total record count.",
            "schema": {
              "type": "boolean",
              "description": "Whether to enable the total record count.",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Suggestions returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/SyncPlay/Buffering": {
      "post": {
        "tags": [
          "SyncPlay"
        ],
        "summary": "Notify SyncPlay group that member is buffering.",
        "operationId": "SyncPlayBuffering",
        "requestBody": {
          "description": "The player status.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BufferRequestDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/BufferRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/BufferRequestDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Group state update sent to all group members."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "SyncPlayIsInGroup",
              "SyncPlayHasAccess"
            ]
          }
        ]
      }
    },
    "/SyncPlay/Join": {
      "post": {
        "tags": [
          "SyncPlay"
        ],
        "summary": "Join an existing SyncPlay group.",
        "operationId": "SyncPlayJoinGroup",
        "requestBody": {
          "description": "The group to join.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JoinGroupRequestDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/JoinGroupRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/JoinGroupRequestDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Group join successful."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "SyncPlayJoinGroup",
              "SyncPlayHasAccess"
            ]
          }
        ]
      }
    },
    "/SyncPlay/Leave": {
      "post": {
        "tags": [
          "SyncPlay"
        ],
        "summary": "Leave the joined SyncPlay group.",
        "operationId": "SyncPlayLeaveGroup",
        "responses": {
          "204": {
            "description": "Group leave successful."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "SyncPlayIsInGroup",
              "SyncPlayHasAccess"
            ]
          }
        ]
      }
    },
    "/SyncPlay/List": {
      "get": {
        "tags": [
          "SyncPlay"
        ],
        "summary": "Gets all SyncPlay groups.",
        "operationId": "SyncPlayGetGroups",
        "responses": {
          "200": {
            "description": "Groups returned.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GroupInfoDto"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GroupInfoDto"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GroupInfoDto"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "SyncPlayJoinGroup",
              "SyncPlayHasAccess"
            ]
          }
        ]
      }
    },
    "/SyncPlay/MovePlaylistItem": {
      "post": {
        "tags": [
          "SyncPlay"
        ],
        "summary": "Request to move an item in the playlist in SyncPlay group.",
        "operationId": "SyncPlayMovePlaylistItem",
        "requestBody": {
          "description": "The new position for the item.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MovePlaylistItemRequestDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MovePlaylistItemRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MovePlaylistItemRequestDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Queue update sent to all group members."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "SyncPlayIsInGroup",
              "SyncPlayHasAccess"
            ]
          }
        ]
      }
    },
    "/SyncPlay/New": {
      "post": {
        "tags": [
          "SyncPlay"
        ],
        "summary": "Create a new SyncPlay group.",
        "operationId": "SyncPlayCreateGroup",
        "requestBody": {
          "description": "The settings of the new group.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewGroupRequestDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/NewGroupRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/NewGroupRequestDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "New group created."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "SyncPlayCreateGroup",
              "SyncPlayHasAccess"
            ]
          }
        ]
      }
    },
    "/SyncPlay/NextItem": {
      "post": {
        "tags": [
          "SyncPlay"
        ],
        "summary": "Request next item in SyncPlay group.",
        "operationId": "SyncPlayNextItem",
        "requestBody": {
          "description": "The current item information.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NextItemRequestDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/NextItemRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/NextItemRequestDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Next item update sent to all group members."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "SyncPlayIsInGroup",
              "SyncPlayHasAccess"
            ]
          }
        ]
      }
    },
    "/SyncPlay/Pause": {
      "post": {
        "tags": [
          "SyncPlay"
        ],
        "summary": "Request pause in SyncPlay group.",
        "operationId": "SyncPlayPause",
        "responses": {
          "204": {
            "description": "Pause update sent to all group members."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "SyncPlayIsInGroup",
              "SyncPlayHasAccess"
            ]
          }
        ]
      }
    },
    "/SyncPlay/Ping": {
      "post": {
        "tags": [
          "SyncPlay"
        ],
        "summary": "Update session ping.",
        "operationId": "SyncPlayPing",
        "requestBody": {
          "description": "The new ping.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PingRequestDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PingRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PingRequestDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Ping updated."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "SyncPlayHasAccess"
            ]
          }
        ]
      }
    },
    "/SyncPlay/PreviousItem": {
      "post": {
        "tags": [
          "SyncPlay"
        ],
        "summary": "Request previous item in SyncPlay group.",
        "operationId": "SyncPlayPreviousItem",
        "requestBody": {
          "description": "The current item information.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PreviousItemRequestDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PreviousItemRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PreviousItemRequestDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Previous item update sent to all group members."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "SyncPlayIsInGroup",
              "SyncPlayHasAccess"
            ]
          }
        ]
      }
    },
    "/SyncPlay/Queue": {
      "post": {
        "tags": [
          "SyncPlay"
        ],
        "summary": "Request to queue items to the playlist of a SyncPlay group.",
        "operationId": "SyncPlayQueue",
        "requestBody": {
          "description": "The items to add.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QueueRequestDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/QueueRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/QueueRequestDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Queue update sent to all group members."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "SyncPlayIsInGroup",
              "SyncPlayHasAccess"
            ]
          }
        ]
      }
    },
    "/SyncPlay/Ready": {
      "post": {
        "tags": [
          "SyncPlay"
        ],
        "summary": "Notify SyncPlay group that member is ready for playback.",
        "operationId": "SyncPlayReady",
        "requestBody": {
          "description": "The player status.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReadyRequestDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ReadyRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ReadyRequestDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Group state update sent to all group members."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "SyncPlayIsInGroup",
              "SyncPlayHasAccess"
            ]
          }
        ]
      }
    },
    "/SyncPlay/RemoveFromPlaylist": {
      "post": {
        "tags": [
          "SyncPlay"
        ],
        "summary": "Request to remove items from the playlist in SyncPlay group.",
        "operationId": "SyncPlayRemoveFromPlaylist",
        "requestBody": {
          "description": "The items to remove.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RemoveFromPlaylistRequestDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RemoveFromPlaylistRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RemoveFromPlaylistRequestDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Queue update sent to all group members."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "SyncPlayIsInGroup",
              "SyncPlayHasAccess"
            ]
          }
        ]
      }
    },
    "/SyncPlay/Seek": {
      "post": {
        "tags": [
          "SyncPlay"
        ],
        "summary": "Request seek in SyncPlay group.",
        "operationId": "SyncPlaySeek",
        "requestBody": {
          "description": "The new playback position.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SeekRequestDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SeekRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SeekRequestDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Seek update sent to all group members."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "SyncPlayIsInGroup",
              "SyncPlayHasAccess"
            ]
          }
        ]
      }
    },
    "/SyncPlay/SetIgnoreWait": {
      "post": {
        "tags": [
          "SyncPlay"
        ],
        "summary": "Request SyncPlay group to ignore member during group-wait.",
        "operationId": "SyncPlaySetIgnoreWait",
        "requestBody": {
          "description": "The settings to set.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IgnoreWaitRequestDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/IgnoreWaitRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/IgnoreWaitRequestDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Member state updated."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "SyncPlayIsInGroup",
              "SyncPlayHasAccess"
            ]
          }
        ]
      }
    },
    "/SyncPlay/SetNewQueue": {
      "post": {
        "tags": [
          "SyncPlay"
        ],
        "summary": "Request to set new playlist in SyncPlay group.",
        "operationId": "SyncPlaySetNewQueue",
        "requestBody": {
          "description": "The new playlist to play in the group.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlayRequestDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PlayRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PlayRequestDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Queue update sent to all group members."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "SyncPlayIsInGroup",
              "SyncPlayHasAccess"
            ]
          }
        ]
      }
    },
    "/SyncPlay/SetPlaylistItem": {
      "post": {
        "tags": [
          "SyncPlay"
        ],
        "summary": "Request to change playlist item in SyncPlay group.",
        "operationId": "SyncPlaySetPlaylistItem",
        "requestBody": {
          "description": "The new item to play.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetPlaylistItemRequestDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SetPlaylistItemRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SetPlaylistItemRequestDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Queue update sent to all group members."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "SyncPlayIsInGroup",
              "SyncPlayHasAccess"
            ]
          }
        ]
      }
    },
    "/SyncPlay/SetRepeatMode": {
      "post": {
        "tags": [
          "SyncPlay"
        ],
        "summary": "Request to set repeat mode in SyncPlay group.",
        "operationId": "SyncPlaySetRepeatMode",
        "requestBody": {
          "description": "The new repeat mode.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetRepeatModeRequestDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SetRepeatModeRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SetRepeatModeRequestDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Play queue update sent to all group members."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "SyncPlayIsInGroup",
              "SyncPlayHasAccess"
            ]
          }
        ]
      }
    },
    "/SyncPlay/SetShuffleMode": {
      "post": {
        "tags": [
          "SyncPlay"
        ],
        "summary": "Request to set shuffle mode in SyncPlay group.",
        "operationId": "SyncPlaySetShuffleMode",
        "requestBody": {
          "description": "The new shuffle mode.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetShuffleModeRequestDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SetShuffleModeRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SetShuffleModeRequestDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Play queue update sent to all group members."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "SyncPlayIsInGroup",
              "SyncPlayHasAccess"
            ]
          }
        ]
      }
    },
    "/SyncPlay/Stop": {
      "post": {
        "tags": [
          "SyncPlay"
        ],
        "summary": "Request stop in SyncPlay group.",
        "operationId": "SyncPlayStop",
        "responses": {
          "204": {
            "description": "Stop update sent to all group members."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "SyncPlayIsInGroup",
              "SyncPlayHasAccess"
            ]
          }
        ]
      }
    },
    "/SyncPlay/Unpause": {
      "post": {
        "tags": [
          "SyncPlay"
        ],
        "summary": "Request unpause in SyncPlay group.",
        "operationId": "SyncPlayUnpause",
        "responses": {
          "204": {
            "description": "Unpause update sent to all group members."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "SyncPlayIsInGroup",
              "SyncPlayHasAccess"
            ]
          }
        ]
      }
    },
    "/System/Endpoint": {
      "get": {
        "tags": [
          "System"
        ],
        "summary": "Gets information about the request endpoint.",
        "operationId": "GetEndpointInfo",
        "responses": {
          "200": {
            "description": "Information retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EndPointInfo"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/EndPointInfo"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/EndPointInfo"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/System/Info": {
      "get": {
        "tags": [
          "System"
        ],
        "summary": "Gets information about the server.",
        "operationId": "GetSystemInfo",
        "responses": {
          "200": {
            "description": "Information retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SystemInfo"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/SystemInfo"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/SystemInfo"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "FirstTimeSetupOrIgnoreParentalControl"
            ]
          }
        ]
      }
    },
    "/System/Info/Public": {
      "get": {
        "tags": [
          "System"
        ],
        "summary": "Gets public information about the server.",
        "operationId": "GetPublicSystemInfo",
        "responses": {
          "200": {
            "description": "Information retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicSystemInfo"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/PublicSystemInfo"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/PublicSystemInfo"
                }
              }
            }
          }
        }
      }
    },
    "/System/Logs": {
      "get": {
        "tags": [
          "System"
        ],
        "summary": "Gets a list of available server log files.",
        "operationId": "GetServerLogs",
        "responses": {
          "200": {
            "description": "Information retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LogFile"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LogFile"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LogFile"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      }
    },
    "/System/Logs/Log": {
      "get": {
        "tags": [
          "System"
        ],
        "summary": "Gets a log file.",
        "operationId": "GetLogFile",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "description": "The name of the log file to get.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The name of the log file to get."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Log file retrieved.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      }
    },
    "/System/Ping": {
      "get": {
        "tags": [
          "System"
        ],
        "summary": "Pings the system.",
        "operationId": "GetPingSystem",
        "responses": {
          "200": {
            "description": "Information retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "System"
        ],
        "summary": "Pings the system.",
        "operationId": "PostPingSystem",
        "responses": {
          "200": {
            "description": "Information retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/System/Restart": {
      "post": {
        "tags": [
          "System"
        ],
        "summary": "Restarts the application.",
        "operationId": "RestartApplication",
        "responses": {
          "204": {
            "description": "Server restarted."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "LocalAccessOrRequiresElevation"
            ]
          }
        ]
      }
    },
    "/System/Shutdown": {
      "post": {
        "tags": [
          "System"
        ],
        "summary": "Shuts down the application.",
        "operationId": "ShutdownApplication",
        "responses": {
          "204": {
            "description": "Server shut down."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      }
    },
    "/System/WakeOnLanInfo": {
      "get": {
        "tags": [
          "System"
        ],
        "summary": "Gets wake on lan information.",
        "operationId": "GetWakeOnLanInfo",
        "responses": {
          "200": {
            "description": "Information retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WakeOnLanInfo"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WakeOnLanInfo"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WakeOnLanInfo"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/GetUtcTime": {
      "get": {
        "tags": [
          "TimeSync"
        ],
        "summary": "Gets the current UTC time.",
        "operationId": "GetUtcTime",
        "responses": {
          "200": {
            "description": "Time returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UtcTimeResponse"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/UtcTimeResponse"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/UtcTimeResponse"
                }
              }
            }
          }
        }
      }
    },
    "/Trailers": {
      "get": {
        "tags": [
          "Trailers"
        ],
        "summary": "Finds movies and trailers similar to a given trailer.",
        "operationId": "GetTrailers",
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "description": "The user id.",
            "schema": {
              "type": "string",
              "description": "The user id.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "maxOfficialRating",
            "in": "query",
            "description": "Optional filter by maximum official rating (PG, PG-13, TV-MA, etc).",
            "schema": {
              "type": "string",
              "description": "Optional filter by maximum official rating (PG, PG-13, TV-MA, etc).",
              "nullable": true
            }
          },
          {
            "name": "hasThemeSong",
            "in": "query",
            "description": "Optional filter by items with theme songs.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items with theme songs.",
              "nullable": true
            }
          },
          {
            "name": "hasThemeVideo",
            "in": "query",
            "description": "Optional filter by items with theme videos.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items with theme videos.",
              "nullable": true
            }
          },
          {
            "name": "hasSubtitles",
            "in": "query",
            "description": "Optional filter by items with subtitles.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items with subtitles.",
              "nullable": true
            }
          },
          {
            "name": "hasSpecialFeature",
            "in": "query",
            "description": "Optional filter by items with special features.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items with special features.",
              "nullable": true
            }
          },
          {
            "name": "hasTrailer",
            "in": "query",
            "description": "Optional filter by items with trailers.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items with trailers.",
              "nullable": true
            }
          },
          {
            "name": "adjacentTo",
            "in": "query",
            "description": "Optional. Return items that are siblings of a supplied item.",
            "schema": {
              "type": "string",
              "description": "Optional. Return items that are siblings of a supplied item.",
              "nullable": true
            }
          },
          {
            "name": "parentIndexNumber",
            "in": "query",
            "description": "Optional filter by parent index number.",
            "schema": {
              "type": "integer",
              "description": "Optional filter by parent index number.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "hasParentalRating",
            "in": "query",
            "description": "Optional filter by items that have or do not have a parental rating.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that have or do not have a parental rating.",
              "nullable": true
            }
          },
          {
            "name": "isHd",
            "in": "query",
            "description": "Optional filter by items that are HD or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that are HD or not.",
              "nullable": true
            }
          },
          {
            "name": "is4K",
            "in": "query",
            "description": "Optional filter by items that are 4K or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that are 4K or not.",
              "nullable": true
            }
          },
          {
            "name": "locationTypes",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/LocationType"
              },
              "description": "Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "excludeLocationTypes",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/LocationType"
              },
              "description": "Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "isMissing",
            "in": "query",
            "description": "Optional filter by items that are missing episodes or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that are missing episodes or not.",
              "nullable": true
            }
          },
          {
            "name": "isUnaired",
            "in": "query",
            "description": "Optional filter by items that are unaired episodes or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that are unaired episodes or not.",
              "nullable": true
            }
          },
          {
            "name": "minCommunityRating",
            "in": "query",
            "description": "Optional filter by minimum community rating.",
            "schema": {
              "type": "number",
              "description": "Optional filter by minimum community rating.",
              "format": "double",
              "nullable": true
            }
          },
          {
            "name": "minCriticRating",
            "in": "query",
            "description": "Optional filter by minimum critic rating.",
            "schema": {
              "type": "number",
              "description": "Optional filter by minimum critic rating.",
              "format": "double",
              "nullable": true
            }
          },
          {
            "name": "minPremiereDate",
            "in": "query",
            "description": "Optional. The minimum premiere date. Format = ISO.",
            "schema": {
              "type": "string",
              "description": "Optional. The minimum premiere date. Format = ISO.",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "minDateLastSaved",
            "in": "query",
            "description": "Optional. The minimum last saved date. Format = ISO.",
            "schema": {
              "type": "string",
              "description": "Optional. The minimum last saved date. Format = ISO.",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "minDateLastSavedForUser",
            "in": "query",
            "description": "Optional. The minimum last saved date for the current user. Format = ISO.",
            "schema": {
              "type": "string",
              "description": "Optional. The minimum last saved date for the current user. Format = ISO.",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "maxPremiereDate",
            "in": "query",
            "description": "Optional. The maximum premiere date. Format = ISO.",
            "schema": {
              "type": "string",
              "description": "Optional. The maximum premiere date. Format = ISO.",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "hasOverview",
            "in": "query",
            "description": "Optional filter by items that have an overview or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that have an overview or not.",
              "nullable": true
            }
          },
          {
            "name": "hasImdbId",
            "in": "query",
            "description": "Optional filter by items that have an imdb id or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that have an imdb id or not.",
              "nullable": true
            }
          },
          {
            "name": "hasTmdbId",
            "in": "query",
            "description": "Optional filter by items that have a tmdb id or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that have a tmdb id or not.",
              "nullable": true
            }
          },
          {
            "name": "hasTvdbId",
            "in": "query",
            "description": "Optional filter by items that have a tvdb id or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that have a tvdb id or not.",
              "nullable": true
            }
          },
          {
            "name": "excludeItemIds",
            "in": "query",
            "description": "Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "startIndex",
            "in": "query",
            "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
            "schema": {
              "type": "integer",
              "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Optional. The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of records to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "recursive",
            "in": "query",
            "description": "When searching within folders, this determines whether or not the search will be recursive. true/false.",
            "schema": {
              "type": "boolean",
              "description": "When searching within folders, this determines whether or not the search will be recursive. true/false.",
              "nullable": true
            }
          },
          {
            "name": "searchTerm",
            "in": "query",
            "description": "Optional. Filter based on a search term.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter based on a search term.",
              "nullable": true
            }
          },
          {
            "name": "sortOrder",
            "in": "query",
            "description": "Sort Order - Ascending,Descending.",
            "schema": {
              "type": "string",
              "description": "Sort Order - Ascending,Descending.",
              "nullable": true
            }
          },
          {
            "name": "parentId",
            "in": "query",
            "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.",
            "schema": {
              "type": "string",
              "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFields"
              },
              "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines.",
              "nullable": true
            }
          },
          {
            "name": "excludeItemTypes",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "filters",
            "in": "query",
            "description": "Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFilter"
              },
              "description": "Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes.",
              "nullable": true
            }
          },
          {
            "name": "isFavorite",
            "in": "query",
            "description": "Optional filter by items that are marked as favorite, or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that are marked as favorite, or not.",
              "nullable": true
            }
          },
          {
            "name": "mediaTypes",
            "in": "query",
            "description": "Optional filter by MediaType. Allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional filter by MediaType. Allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "imageTypes",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ImageType"
              },
              "description": "Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "sortBy",
            "in": "query",
            "description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.",
              "nullable": true
            }
          },
          {
            "name": "isPlayed",
            "in": "query",
            "description": "Optional filter by items that are played, or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that are played, or not.",
              "nullable": true
            }
          },
          {
            "name": "genres",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited.",
              "nullable": true
            }
          },
          {
            "name": "officialRatings",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited.",
              "nullable": true
            }
          },
          {
            "name": "tags",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited.",
              "nullable": true
            }
          },
          {
            "name": "years",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              },
              "description": "Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "enableUserData",
            "in": "query",
            "description": "Optional, include user data.",
            "schema": {
              "type": "boolean",
              "description": "Optional, include user data.",
              "nullable": true
            }
          },
          {
            "name": "imageTypeLimit",
            "in": "query",
            "description": "Optional, the max number of images to return, per image type.",
            "schema": {
              "type": "integer",
              "description": "Optional, the max number of images to return, per image type.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "enableImageTypes",
            "in": "query",
            "description": "Optional. The image types to include in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ImageType"
              },
              "description": "Optional. The image types to include in the output.",
              "nullable": true
            }
          },
          {
            "name": "person",
            "in": "query",
            "description": "Optional. If specified, results will be filtered to include only those containing the specified person.",
            "schema": {
              "type": "string",
              "description": "Optional. If specified, results will be filtered to include only those containing the specified person.",
              "nullable": true
            }
          },
          {
            "name": "personIds",
            "in": "query",
            "description": "Optional. If specified, results will be filtered to include only those containing the specified person id.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Optional. If specified, results will be filtered to include only those containing the specified person id.",
              "nullable": true
            }
          },
          {
            "name": "personTypes",
            "in": "query",
            "description": "Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited.",
              "nullable": true
            }
          },
          {
            "name": "studios",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited.",
              "nullable": true
            }
          },
          {
            "name": "artists",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited.",
              "nullable": true
            }
          },
          {
            "name": "excludeArtistIds",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited.",
              "nullable": true
            }
          },
          {
            "name": "artistIds",
            "in": "query",
            "description": "Optional. If specified, results will be filtered to include only those containing the specified artist id.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Optional. If specified, results will be filtered to include only those containing the specified artist id.",
              "nullable": true
            }
          },
          {
            "name": "albumArtistIds",
            "in": "query",
            "description": "Optional. If specified, results will be filtered to include only those containing the specified album artist id.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Optional. If specified, results will be filtered to include only those containing the specified album artist id.",
              "nullable": true
            }
          },
          {
            "name": "contributingArtistIds",
            "in": "query",
            "description": "Optional. If specified, results will be filtered to include only those containing the specified contributing artist id.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Optional. If specified, results will be filtered to include only those containing the specified contributing artist id.",
              "nullable": true
            }
          },
          {
            "name": "albums",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited.",
              "nullable": true
            }
          },
          {
            "name": "albumIds",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited.",
              "nullable": true
            }
          },
          {
            "name": "ids",
            "in": "query",
            "description": "Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "videoTypes",
            "in": "query",
            "description": "Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/VideoType"
              },
              "description": "Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "minOfficialRating",
            "in": "query",
            "description": "Optional filter by minimum official rating (PG, PG-13, TV-MA, etc).",
            "schema": {
              "type": "string",
              "description": "Optional filter by minimum official rating (PG, PG-13, TV-MA, etc).",
              "nullable": true
            }
          },
          {
            "name": "isLocked",
            "in": "query",
            "description": "Optional filter by items that are locked.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that are locked.",
              "nullable": true
            }
          },
          {
            "name": "isPlaceHolder",
            "in": "query",
            "description": "Optional filter by items that are placeholders.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that are placeholders.",
              "nullable": true
            }
          },
          {
            "name": "hasOfficialRating",
            "in": "query",
            "description": "Optional filter by items that have official ratings.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that have official ratings.",
              "nullable": true
            }
          },
          {
            "name": "collapseBoxSetItems",
            "in": "query",
            "description": "Whether or not to hide items behind their boxsets.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to hide items behind their boxsets.",
              "nullable": true
            }
          },
          {
            "name": "minWidth",
            "in": "query",
            "description": "Optional. Filter by the minimum width of the item.",
            "schema": {
              "type": "integer",
              "description": "Optional. Filter by the minimum width of the item.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "minHeight",
            "in": "query",
            "description": "Optional. Filter by the minimum height of the item.",
            "schema": {
              "type": "integer",
              "description": "Optional. Filter by the minimum height of the item.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxWidth",
            "in": "query",
            "description": "Optional. Filter by the maximum width of the item.",
            "schema": {
              "type": "integer",
              "description": "Optional. Filter by the maximum width of the item.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxHeight",
            "in": "query",
            "description": "Optional. Filter by the maximum height of the item.",
            "schema": {
              "type": "integer",
              "description": "Optional. Filter by the maximum height of the item.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "is3D",
            "in": "query",
            "description": "Optional filter by items that are 3D, or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by items that are 3D, or not.",
              "nullable": true
            }
          },
          {
            "name": "seriesStatus",
            "in": "query",
            "description": "Optional filter by Series Status. Allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/SeriesStatus"
              },
              "description": "Optional filter by Series Status. Allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "nameStartsWithOrGreater",
            "in": "query",
            "description": "Optional filter by items whose name is sorted equally or greater than a given input string.",
            "schema": {
              "type": "string",
              "description": "Optional filter by items whose name is sorted equally or greater than a given input string.",
              "nullable": true
            }
          },
          {
            "name": "nameStartsWith",
            "in": "query",
            "description": "Optional filter by items whose name is sorted equally than a given input string.",
            "schema": {
              "type": "string",
              "description": "Optional filter by items whose name is sorted equally than a given input string.",
              "nullable": true
            }
          },
          {
            "name": "nameLessThan",
            "in": "query",
            "description": "Optional filter by items whose name is equally or lesser than a given input string.",
            "schema": {
              "type": "string",
              "description": "Optional filter by items whose name is equally or lesser than a given input string.",
              "nullable": true
            }
          },
          {
            "name": "studioIds",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited.",
              "nullable": true
            }
          },
          {
            "name": "genreIds",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited.",
              "nullable": true
            }
          },
          {
            "name": "enableTotalRecordCount",
            "in": "query",
            "description": "Optional. Enable the total record count.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Enable the total record count.",
              "default": true
            }
          },
          {
            "name": "enableImages",
            "in": "query",
            "description": "Optional, include image information in output.",
            "schema": {
              "type": "boolean",
              "description": "Optional, include image information in output.",
              "default": true,
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Shows/{seriesId}/Episodes": {
      "get": {
        "tags": [
          "TvShows"
        ],
        "summary": "Gets episodes for a tv season.",
        "operationId": "GetEpisodes",
        "parameters": [
          {
            "name": "seriesId",
            "in": "path",
            "description": "The series id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The series id.",
              "format": "uuid"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "The user id.",
            "schema": {
              "type": "string",
              "description": "The user id.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFields"
              },
              "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.",
              "nullable": true
            }
          },
          {
            "name": "season",
            "in": "query",
            "description": "Optional filter by season number.",
            "schema": {
              "type": "integer",
              "description": "Optional filter by season number.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "seasonId",
            "in": "query",
            "description": "Optional. Filter by season id.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by season id.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "isMissing",
            "in": "query",
            "description": "Optional. Filter by items that are missing episodes or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter by items that are missing episodes or not.",
              "nullable": true
            }
          },
          {
            "name": "adjacentTo",
            "in": "query",
            "description": "Optional. Return items that are siblings of a supplied item.",
            "schema": {
              "type": "string",
              "description": "Optional. Return items that are siblings of a supplied item.",
              "nullable": true
            }
          },
          {
            "name": "startItemId",
            "in": "query",
            "description": "Optional. Skip through the list until a given item is found.",
            "schema": {
              "type": "string",
              "description": "Optional. Skip through the list until a given item is found.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "startIndex",
            "in": "query",
            "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
            "schema": {
              "type": "integer",
              "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Optional. The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of records to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "enableImages",
            "in": "query",
            "description": "Optional, include image information in output.",
            "schema": {
              "type": "boolean",
              "description": "Optional, include image information in output.",
              "nullable": true
            }
          },
          {
            "name": "imageTypeLimit",
            "in": "query",
            "description": "Optional, the max number of images to return, per image type.",
            "schema": {
              "type": "integer",
              "description": "Optional, the max number of images to return, per image type.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "enableImageTypes",
            "in": "query",
            "description": "Optional. The image types to include in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ImageType"
              },
              "description": "Optional. The image types to include in the output.",
              "nullable": true
            }
          },
          {
            "name": "enableUserData",
            "in": "query",
            "description": "Optional. Include user data.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Include user data.",
              "nullable": true
            }
          },
          {
            "name": "sortBy",
            "in": "query",
            "description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Shows/{seriesId}/Seasons": {
      "get": {
        "tags": [
          "TvShows"
        ],
        "summary": "Gets seasons for a tv series.",
        "operationId": "GetSeasons",
        "parameters": [
          {
            "name": "seriesId",
            "in": "path",
            "description": "The series id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The series id.",
              "format": "uuid"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "The user id.",
            "schema": {
              "type": "string",
              "description": "The user id.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFields"
              },
              "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.",
              "nullable": true
            }
          },
          {
            "name": "isSpecialSeason",
            "in": "query",
            "description": "Optional. Filter by special season.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter by special season.",
              "nullable": true
            }
          },
          {
            "name": "isMissing",
            "in": "query",
            "description": "Optional. Filter by items that are missing episodes or not.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Filter by items that are missing episodes or not.",
              "nullable": true
            }
          },
          {
            "name": "adjacentTo",
            "in": "query",
            "description": "Optional. Return items that are siblings of a supplied item.",
            "schema": {
              "type": "string",
              "description": "Optional. Return items that are siblings of a supplied item.",
              "nullable": true
            }
          },
          {
            "name": "enableImages",
            "in": "query",
            "description": "Optional. Include image information in output.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Include image information in output.",
              "nullable": true
            }
          },
          {
            "name": "imageTypeLimit",
            "in": "query",
            "description": "Optional. The max number of images to return, per image type.",
            "schema": {
              "type": "integer",
              "description": "Optional. The max number of images to return, per image type.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "enableImageTypes",
            "in": "query",
            "description": "Optional. The image types to include in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ImageType"
              },
              "description": "Optional. The image types to include in the output.",
              "nullable": true
            }
          },
          {
            "name": "enableUserData",
            "in": "query",
            "description": "Optional. Include user data.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Include user data.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Shows/NextUp": {
      "get": {
        "tags": [
          "TvShows"
        ],
        "summary": "Gets a list of next up episodes.",
        "operationId": "GetNextUp",
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "description": "The user id of the user to get the next up episodes for.",
            "schema": {
              "type": "string",
              "description": "The user id of the user to get the next up episodes for.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "startIndex",
            "in": "query",
            "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
            "schema": {
              "type": "integer",
              "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Optional. The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of records to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional. Specify additional fields of information to return in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFields"
              },
              "description": "Optional. Specify additional fields of information to return in the output.",
              "nullable": true
            }
          },
          {
            "name": "seriesId",
            "in": "query",
            "description": "Optional. Filter by series id.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by series id.",
              "nullable": true
            }
          },
          {
            "name": "parentId",
            "in": "query",
            "description": "Optional. Specify this to localize the search to a specific item or folder. Omit to use the root.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify this to localize the search to a specific item or folder. Omit to use the root.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "enableImges",
            "in": "query",
            "description": "Optional. Include image information in output.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Include image information in output.",
              "nullable": true
            }
          },
          {
            "name": "imageTypeLimit",
            "in": "query",
            "description": "Optional. The max number of images to return, per image type.",
            "schema": {
              "type": "integer",
              "description": "Optional. The max number of images to return, per image type.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "enableImageTypes",
            "in": "query",
            "description": "Optional. The image types to include in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ImageType"
              },
              "description": "Optional. The image types to include in the output.",
              "nullable": true
            }
          },
          {
            "name": "enableUserData",
            "in": "query",
            "description": "Optional. Include user data.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Include user data.",
              "nullable": true
            }
          },
          {
            "name": "enableTotalRecordCount",
            "in": "query",
            "description": "Whether to enable the total records count. Defaults to true.",
            "schema": {
              "type": "boolean",
              "description": "Whether to enable the total records count. Defaults to true.",
              "default": true
            }
          },
          {
            "name": "disableFirstEpisode",
            "in": "query",
            "description": "Whether to disable sending the first episode in a series as next up.",
            "schema": {
              "type": "boolean",
              "description": "Whether to disable sending the first episode in a series as next up.",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Shows/Upcoming": {
      "get": {
        "tags": [
          "TvShows"
        ],
        "summary": "Gets a list of upcoming episodes.",
        "operationId": "GetUpcomingEpisodes",
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "description": "The user id of the user to get the upcoming episodes for.",
            "schema": {
              "type": "string",
              "description": "The user id of the user to get the upcoming episodes for.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "startIndex",
            "in": "query",
            "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
            "schema": {
              "type": "integer",
              "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Optional. The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of records to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional. Specify additional fields of information to return in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFields"
              },
              "description": "Optional. Specify additional fields of information to return in the output.",
              "nullable": true
            }
          },
          {
            "name": "parentId",
            "in": "query",
            "description": "Optional. Specify this to localize the search to a specific item or folder. Omit to use the root.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify this to localize the search to a specific item or folder. Omit to use the root.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "enableImges",
            "in": "query",
            "description": "Optional. Include image information in output.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Include image information in output.",
              "nullable": true
            }
          },
          {
            "name": "imageTypeLimit",
            "in": "query",
            "description": "Optional. The max number of images to return, per image type.",
            "schema": {
              "type": "integer",
              "description": "Optional. The max number of images to return, per image type.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "enableImageTypes",
            "in": "query",
            "description": "Optional. The image types to include in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ImageType"
              },
              "description": "Optional. The image types to include in the output.",
              "nullable": true
            }
          },
          {
            "name": "enableUserData",
            "in": "query",
            "description": "Optional. Include user data.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Include user data.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Audio/{itemId}/universal": {
      "get": {
        "tags": [
          "UniversalAudio"
        ],
        "summary": "Gets an audio stream.",
        "operationId": "GetUniversalAudioStream",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "container",
            "in": "query",
            "description": "Optional. The audio container.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. The audio container.",
              "nullable": true
            }
          },
          {
            "name": "mediaSourceId",
            "in": "query",
            "description": "The media version id, if playing an alternate version.",
            "schema": {
              "type": "string",
              "description": "The media version id, if playing an alternate version.",
              "nullable": true
            }
          },
          {
            "name": "deviceId",
            "in": "query",
            "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
            "schema": {
              "type": "string",
              "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
              "nullable": true
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. The user id.",
            "schema": {
              "type": "string",
              "description": "Optional. The user id.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "audioCodec",
            "in": "query",
            "description": "Optional. The audio codec to transcode to.",
            "schema": {
              "type": "string",
              "description": "Optional. The audio codec to transcode to.",
              "nullable": true
            }
          },
          {
            "name": "maxAudioChannels",
            "in": "query",
            "description": "Optional. The maximum number of audio channels.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of audio channels.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "transcodingAudioChannels",
            "in": "query",
            "description": "Optional. The number of how many audio channels to transcode to.",
            "schema": {
              "type": "integer",
              "description": "Optional. The number of how many audio channels to transcode to.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxStreamingBitrate",
            "in": "query",
            "description": "Optional. The maximum streaming bitrate.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum streaming bitrate.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "audioBitRate",
            "in": "query",
            "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "startTimeTicks",
            "in": "query",
            "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "transcodingContainer",
            "in": "query",
            "description": "Optional. The container to transcode to.",
            "schema": {
              "type": "string",
              "description": "Optional. The container to transcode to.",
              "nullable": true
            }
          },
          {
            "name": "transcodingProtocol",
            "in": "query",
            "description": "Optional. The transcoding protocol.",
            "schema": {
              "type": "string",
              "description": "Optional. The transcoding protocol.",
              "nullable": true
            }
          },
          {
            "name": "maxAudioSampleRate",
            "in": "query",
            "description": "Optional. The maximum audio sample rate.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum audio sample rate.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxAudioBitDepth",
            "in": "query",
            "description": "Optional. The maximum audio bit depth.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum audio bit depth.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "enableRemoteMedia",
            "in": "query",
            "description": "Optional. Whether to enable remote media.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to enable remote media.",
              "nullable": true
            }
          },
          {
            "name": "breakOnNonKeyFrames",
            "in": "query",
            "description": "Optional. Whether to break on non key frames.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to break on non key frames."
            }
          },
          {
            "name": "enableRedirection",
            "in": "query",
            "description": "Whether to enable redirection. Defaults to true.",
            "schema": {
              "type": "boolean",
              "description": "Whether to enable redirection. Defaults to true.",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Audio stream returned.",
            "content": {
              "audio/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "302": {
            "description": "Redirected to remote audio stream."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      },
      "head": {
        "tags": [
          "UniversalAudio"
        ],
        "summary": "Gets an audio stream.",
        "operationId": "HeadUniversalAudioStream",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "container",
            "in": "query",
            "description": "Optional. The audio container.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. The audio container.",
              "nullable": true
            }
          },
          {
            "name": "mediaSourceId",
            "in": "query",
            "description": "The media version id, if playing an alternate version.",
            "schema": {
              "type": "string",
              "description": "The media version id, if playing an alternate version.",
              "nullable": true
            }
          },
          {
            "name": "deviceId",
            "in": "query",
            "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
            "schema": {
              "type": "string",
              "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
              "nullable": true
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. The user id.",
            "schema": {
              "type": "string",
              "description": "Optional. The user id.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "audioCodec",
            "in": "query",
            "description": "Optional. The audio codec to transcode to.",
            "schema": {
              "type": "string",
              "description": "Optional. The audio codec to transcode to.",
              "nullable": true
            }
          },
          {
            "name": "maxAudioChannels",
            "in": "query",
            "description": "Optional. The maximum number of audio channels.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of audio channels.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "transcodingAudioChannels",
            "in": "query",
            "description": "Optional. The number of how many audio channels to transcode to.",
            "schema": {
              "type": "integer",
              "description": "Optional. The number of how many audio channels to transcode to.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxStreamingBitrate",
            "in": "query",
            "description": "Optional. The maximum streaming bitrate.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum streaming bitrate.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "audioBitRate",
            "in": "query",
            "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "startTimeTicks",
            "in": "query",
            "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "transcodingContainer",
            "in": "query",
            "description": "Optional. The container to transcode to.",
            "schema": {
              "type": "string",
              "description": "Optional. The container to transcode to.",
              "nullable": true
            }
          },
          {
            "name": "transcodingProtocol",
            "in": "query",
            "description": "Optional. The transcoding protocol.",
            "schema": {
              "type": "string",
              "description": "Optional. The transcoding protocol.",
              "nullable": true
            }
          },
          {
            "name": "maxAudioSampleRate",
            "in": "query",
            "description": "Optional. The maximum audio sample rate.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum audio sample rate.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxAudioBitDepth",
            "in": "query",
            "description": "Optional. The maximum audio bit depth.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum audio bit depth.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "enableRemoteMedia",
            "in": "query",
            "description": "Optional. Whether to enable remote media.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to enable remote media.",
              "nullable": true
            }
          },
          {
            "name": "breakOnNonKeyFrames",
            "in": "query",
            "description": "Optional. Whether to break on non key frames.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to break on non key frames."
            }
          },
          {
            "name": "enableRedirection",
            "in": "query",
            "description": "Whether to enable redirection. Defaults to true.",
            "schema": {
              "type": "boolean",
              "description": "Whether to enable redirection. Defaults to true.",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Audio stream returned.",
            "content": {
              "audio/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "302": {
            "description": "Redirected to remote audio stream."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Users": {
      "get": {
        "tags": [
          "User"
        ],
        "summary": "Gets a list of users.",
        "operationId": "GetUsers",
        "parameters": [
          {
            "name": "isHidden",
            "in": "query",
            "description": "Optional filter by IsHidden=true or false.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by IsHidden=true or false.",
              "nullable": true
            }
          },
          {
            "name": "isDisabled",
            "in": "query",
            "description": "Optional filter by IsDisabled=true or false.",
            "schema": {
              "type": "boolean",
              "description": "Optional filter by IsDisabled=true or false.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Users returned.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UserDto"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UserDto"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UserDto"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Users/{userId}": {
      "get": {
        "tags": [
          "User"
        ],
        "summary": "Gets a user by Id.",
        "operationId": "GetUserById",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "The user id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The user id.",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "User returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserDto"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/UserDto"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/UserDto"
                }
              }
            }
          },
          "404": {
            "description": "User not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "IgnoreParentalControl"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "User"
        ],
        "summary": "Deletes a user.",
        "operationId": "DeleteUser",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "The user id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The user id.",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "User deleted."
          },
          "404": {
            "description": "User not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "User"
        ],
        "summary": "Updates a user.",
        "operationId": "UpdateUser",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "The user id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The user id.",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The updated user model.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UserDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UserDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "User updated."
          },
          "400": {
            "description": "User information was not supplied.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "User update forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Users/{userId}/Authenticate": {
      "post": {
        "tags": [
          "User"
        ],
        "summary": "Authenticates a user.",
        "operationId": "AuthenticateUser",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "The user id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The user id.",
              "format": "uuid"
            }
          },
          {
            "name": "pw",
            "in": "query",
            "description": "The password as plain text.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The password as plain text."
            }
          },
          {
            "name": "password",
            "in": "query",
            "description": "The password sha1-hash.",
            "schema": {
              "type": "string",
              "description": "The password sha1-hash.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "User authenticated.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationResult"
                }
              }
            }
          },
          "403": {
            "description": "Sha1-hashed password only is not allowed.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "User not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/Users/{userId}/Configuration": {
      "post": {
        "tags": [
          "User"
        ],
        "summary": "Updates a user configuration.",
        "operationId": "UpdateUserConfiguration",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "The user id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The user id.",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The new user configuration.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserConfiguration"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UserConfiguration"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UserConfiguration"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "User configuration updated."
          },
          "403": {
            "description": "User configuration update forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Users/{userId}/EasyPassword": {
      "post": {
        "tags": [
          "User"
        ],
        "summary": "Updates a user's easy password.",
        "operationId": "UpdateUserEasyPassword",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "The user id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The user id.",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The M:Jellyfin.Api.Controllers.UserController.UpdateUserEasyPassword(System.Guid,Jellyfin.Api.Models.UserDtos.UpdateUserEasyPassword) request.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateUserEasyPassword"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateUserEasyPassword"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateUserEasyPassword"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Password successfully reset."
          },
          "403": {
            "description": "User is not allowed to update the password.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "User not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Users/{userId}/Password": {
      "post": {
        "tags": [
          "User"
        ],
        "summary": "Updates a user's password.",
        "operationId": "UpdateUserPassword",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "The user id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The user id.",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The M:Jellyfin.Api.Controllers.UserController.UpdateUserPassword(System.Guid,Jellyfin.Api.Models.UserDtos.UpdateUserPassword) request.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateUserPassword"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateUserPassword"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateUserPassword"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Password successfully reset."
          },
          "403": {
            "description": "User is not allowed to update the password.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "User not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Users/{userId}/Policy": {
      "post": {
        "tags": [
          "User"
        ],
        "summary": "Updates a user policy.",
        "operationId": "UpdateUserPolicy",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "The user id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The user id.",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The new user policy.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserPolicy"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UserPolicy"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UserPolicy"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "User policy updated."
          },
          "400": {
            "description": "User policy was not supplied.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "User policy update forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      }
    },
    "/Users/AuthenticateByName": {
      "post": {
        "tags": [
          "User"
        ],
        "summary": "Authenticates a user by name.",
        "operationId": "AuthenticateUserByName",
        "requestBody": {
          "description": "The M:Jellyfin.Api.Controllers.UserController.AuthenticateUserByName(Jellyfin.Api.Models.UserDtos.AuthenticateUserByName) request.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthenticateUserByName"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthenticateUserByName"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AuthenticateUserByName"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "User authenticated.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationResult"
                }
              }
            }
          }
        }
      }
    },
    "/Users/AuthenticateWithQuickConnect": {
      "post": {
        "tags": [
          "User"
        ],
        "summary": "Authenticates a user with quick connect.",
        "operationId": "AuthenticateWithQuickConnect",
        "requestBody": {
          "description": "The Jellyfin.Api.Models.UserDtos.QuickConnectDto request.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuickConnectDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/QuickConnectDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/QuickConnectDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "User authenticated.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationResult"
                }
              }
            }
          },
          "400": {
            "description": "Missing token."
          }
        }
      }
    },
    "/Users/ForgotPassword": {
      "post": {
        "tags": [
          "User"
        ],
        "summary": "Initiates the forgot password process for a local user.",
        "operationId": "ForgotPassword",
        "requestBody": {
          "description": "The forgot password request containing the entered username.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ForgotPasswordDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ForgotPasswordDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ForgotPasswordDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Password reset process started.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ForgotPasswordResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ForgotPasswordResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ForgotPasswordResult"
                }
              }
            }
          }
        }
      }
    },
    "/Users/ForgotPassword/Pin": {
      "post": {
        "tags": [
          "User"
        ],
        "summary": "Redeems a forgot password pin.",
        "operationId": "ForgotPasswordPin",
        "requestBody": {
          "description": "The pin.",
          "content": {
            "application/json": {
              "schema": {
                "type": "string",
                "description": "The pin.",
                "nullable": true
              }
            },
            "text/json": {
              "schema": {
                "type": "string",
                "description": "The pin.",
                "nullable": true
              }
            },
            "application/*+json": {
              "schema": {
                "type": "string",
                "description": "The pin.",
                "nullable": true
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Pin reset process started.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PinRedeemResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/PinRedeemResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/PinRedeemResult"
                }
              }
            }
          }
        }
      }
    },
    "/Users/Me": {
      "get": {
        "tags": [
          "User"
        ],
        "summary": "Gets the user based on auth token.",
        "operationId": "GetCurrentUser",
        "responses": {
          "200": {
            "description": "User returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserDto"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/UserDto"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/UserDto"
                }
              }
            }
          },
          "400": {
            "description": "Token is not owned by a user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Users/New": {
      "post": {
        "tags": [
          "User"
        ],
        "summary": "Creates a user.",
        "operationId": "CreateUserByName",
        "requestBody": {
          "description": "The create user by name request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateUserByName"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateUserByName"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateUserByName"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "User created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserDto"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/UserDto"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/UserDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      }
    },
    "/Users/Public": {
      "get": {
        "tags": [
          "User"
        ],
        "summary": "Gets a list of publicly visible users for display on a login screen.",
        "operationId": "GetPublicUsers",
        "responses": {
          "200": {
            "description": "Public users returned.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UserDto"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UserDto"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UserDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/Users/{userId}/FavoriteItems/{itemId}": {
      "post": {
        "tags": [
          "UserLibrary"
        ],
        "summary": "Marks an item as a favorite.",
        "operationId": "MarkFavoriteItem",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "User id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "User id.",
              "format": "uuid"
            }
          },
          {
            "name": "itemId",
            "in": "path",
            "description": "Item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Item id.",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Item marked as favorite.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserItemDataDto"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/UserItemDataDto"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/UserItemDataDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "UserLibrary"
        ],
        "summary": "Unmarks item as a favorite.",
        "operationId": "UnmarkFavoriteItem",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "User id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "User id.",
              "format": "uuid"
            }
          },
          {
            "name": "itemId",
            "in": "path",
            "description": "Item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Item id.",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Item unmarked as favorite.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserItemDataDto"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/UserItemDataDto"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/UserItemDataDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Users/{userId}/Items/{itemId}": {
      "get": {
        "tags": [
          "UserLibrary"
        ],
        "summary": "Gets an item from a user's library.",
        "operationId": "GetItem",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "User id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "User id.",
              "format": "uuid"
            }
          },
          {
            "name": "itemId",
            "in": "path",
            "description": "Item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Item id.",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Item returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDto"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDto"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Users/{userId}/Items/{itemId}/Intros": {
      "get": {
        "tags": [
          "UserLibrary"
        ],
        "summary": "Gets intros to play before the main media item plays.",
        "operationId": "GetIntros",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "User id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "User id.",
              "format": "uuid"
            }
          },
          {
            "name": "itemId",
            "in": "path",
            "description": "Item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Item id.",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Intros returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Users/{userId}/Items/{itemId}/LocalTrailers": {
      "get": {
        "tags": [
          "UserLibrary"
        ],
        "summary": "Gets local trailers for an item.",
        "operationId": "GetLocalTrailers",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "User id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "User id.",
              "format": "uuid"
            }
          },
          {
            "name": "itemId",
            "in": "path",
            "description": "Item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Item id.",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "An Microsoft.AspNetCore.Mvc.OkResult containing the item's local trailers.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BaseItemDto"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BaseItemDto"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BaseItemDto"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Users/{userId}/Items/{itemId}/Rating": {
      "delete": {
        "tags": [
          "UserLibrary"
        ],
        "summary": "Deletes a user's saved personal rating for an item.",
        "operationId": "DeleteUserItemRating",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "User id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "User id.",
              "format": "uuid"
            }
          },
          {
            "name": "itemId",
            "in": "path",
            "description": "Item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Item id.",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Personal rating removed.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserItemDataDto"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/UserItemDataDto"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/UserItemDataDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "UserLibrary"
        ],
        "summary": "Updates a user's rating for an item.",
        "operationId": "UpdateUserItemRating",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "User id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "User id.",
              "format": "uuid"
            }
          },
          {
            "name": "itemId",
            "in": "path",
            "description": "Item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Item id.",
              "format": "uuid"
            }
          },
          {
            "name": "likes",
            "in": "query",
            "description": "Whether this M:Jellyfin.Api.Controllers.UserLibraryController.UpdateUserItemRating(System.Guid,System.Guid,System.Nullable{System.Boolean}) is likes.",
            "schema": {
              "type": "boolean",
              "description": "Whether this M:Jellyfin.Api.Controllers.UserLibraryController.UpdateUserItemRating(System.Guid,System.Guid,System.Nullable{System.Boolean}) is likes.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Item rating updated.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserItemDataDto"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/UserItemDataDto"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/UserItemDataDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Users/{userId}/Items/{itemId}/SpecialFeatures": {
      "get": {
        "tags": [
          "UserLibrary"
        ],
        "summary": "Gets special features for an item.",
        "operationId": "GetSpecialFeatures",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "User id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "User id.",
              "format": "uuid"
            }
          },
          {
            "name": "itemId",
            "in": "path",
            "description": "Item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Item id.",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Special features returned.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BaseItemDto"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BaseItemDto"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BaseItemDto"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Users/{userId}/Items/Latest": {
      "get": {
        "tags": [
          "UserLibrary"
        ],
        "summary": "Gets latest media.",
        "operationId": "GetLatestMedia",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "User id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "User id.",
              "format": "uuid"
            }
          },
          {
            "name": "parentId",
            "in": "query",
            "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.",
            "schema": {
              "type": "string",
              "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional. Specify additional fields of information to return in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFields"
              },
              "description": "Optional. Specify additional fields of information to return in the output.",
              "nullable": true
            }
          },
          {
            "name": "includeItemTypes",
            "in": "query",
            "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "isPlayed",
            "in": "query",
            "description": "Filter by items that are played, or not.",
            "schema": {
              "type": "boolean",
              "description": "Filter by items that are played, or not.",
              "nullable": true
            }
          },
          {
            "name": "enableImages",
            "in": "query",
            "description": "Optional. include image information in output.",
            "schema": {
              "type": "boolean",
              "description": "Optional. include image information in output.",
              "nullable": true
            }
          },
          {
            "name": "imageTypeLimit",
            "in": "query",
            "description": "Optional. the max number of images to return, per image type.",
            "schema": {
              "type": "integer",
              "description": "Optional. the max number of images to return, per image type.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "enableImageTypes",
            "in": "query",
            "description": "Optional. The image types to include in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ImageType"
              },
              "description": "Optional. The image types to include in the output.",
              "nullable": true
            }
          },
          {
            "name": "enableUserData",
            "in": "query",
            "description": "Optional. include user data.",
            "schema": {
              "type": "boolean",
              "description": "Optional. include user data.",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Return item limit.",
            "schema": {
              "type": "integer",
              "description": "Return item limit.",
              "format": "int32",
              "default": 20
            }
          },
          {
            "name": "groupItems",
            "in": "query",
            "description": "Whether or not to group items into a parent container.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to group items into a parent container.",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Latest media returned.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BaseItemDto"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BaseItemDto"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BaseItemDto"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Users/{userId}/Items/Root": {
      "get": {
        "tags": [
          "UserLibrary"
        ],
        "summary": "Gets the root folder from a user's library.",
        "operationId": "GetRootFolder",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "User id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "User id.",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Root folder returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDto"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDto"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Users/{userId}/GroupingOptions": {
      "get": {
        "tags": [
          "UserViews"
        ],
        "summary": "Get user view grouping options.",
        "operationId": "GetGroupingOptions",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "User id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "User id.",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "User view grouping options returned.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SpecialViewOptionDto"
                  }
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SpecialViewOptionDto"
                  }
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SpecialViewOptionDto"
                  }
                }
              }
            }
          },
          "404": {
            "description": "User not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/Users/{userId}/Views": {
      "get": {
        "tags": [
          "UserViews"
        ],
        "summary": "Get user views.",
        "operationId": "GetUserViews",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "User id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "User id.",
              "format": "uuid"
            }
          },
          {
            "name": "includeExternalContent",
            "in": "query",
            "description": "Whether or not to include external views such as channels or live tv.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to include external views such as channels or live tv.",
              "nullable": true
            }
          },
          {
            "name": "presetViews",
            "in": "query",
            "description": "Preset views.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Preset views.",
              "nullable": true
            }
          },
          {
            "name": "includeHidden",
            "in": "query",
            "description": "Whether or not to include hidden content.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to include hidden content.",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "User views returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          }
        }
      }
    },
    "/Videos/{videoId}/{mediaSourceId}/Attachments/{index}": {
      "get": {
        "tags": [
          "VideoAttachments"
        ],
        "summary": "Get video attachment.",
        "operationId": "GetAttachment",
        "parameters": [
          {
            "name": "videoId",
            "in": "path",
            "description": "Video ID.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Video ID.",
              "format": "uuid"
            }
          },
          {
            "name": "mediaSourceId",
            "in": "path",
            "description": "Media Source ID.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Media Source ID."
            }
          },
          {
            "name": "index",
            "in": "path",
            "description": "Attachment Index.",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Attachment Index.",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Attachment retrieved.",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Video or attachment not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/Videos/{itemId}/live.m3u8": {
      "get": {
        "tags": [
          "VideoHls"
        ],
        "summary": "Gets a hls live stream.",
        "operationId": "GetLiveHlsStream",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "container",
            "in": "query",
            "description": "The audio container.",
            "schema": {
              "type": "string",
              "description": "The audio container.",
              "nullable": true
            }
          },
          {
            "name": "static",
            "in": "query",
            "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
            "schema": {
              "type": "boolean",
              "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
              "nullable": true
            }
          },
          {
            "name": "params",
            "in": "query",
            "description": "The streaming parameters.",
            "schema": {
              "type": "string",
              "description": "The streaming parameters.",
              "nullable": true
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "The tag.",
            "schema": {
              "type": "string",
              "description": "The tag.",
              "nullable": true
            }
          },
          {
            "name": "deviceProfileId",
            "in": "query",
            "description": "Optional. The dlna device profile id to utilize.",
            "schema": {
              "type": "string",
              "description": "Optional. The dlna device profile id to utilize.",
              "nullable": true
            }
          },
          {
            "name": "playSessionId",
            "in": "query",
            "description": "The play session id.",
            "schema": {
              "type": "string",
              "description": "The play session id.",
              "nullable": true
            }
          },
          {
            "name": "segmentContainer",
            "in": "query",
            "description": "The segment container.",
            "schema": {
              "type": "string",
              "description": "The segment container.",
              "nullable": true
            }
          },
          {
            "name": "segmentLength",
            "in": "query",
            "description": "The segment lenght.",
            "schema": {
              "type": "integer",
              "description": "The segment lenght.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "minSegments",
            "in": "query",
            "description": "The minimum number of segments.",
            "schema": {
              "type": "integer",
              "description": "The minimum number of segments.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "mediaSourceId",
            "in": "query",
            "description": "The media version id, if playing an alternate version.",
            "schema": {
              "type": "string",
              "description": "The media version id, if playing an alternate version.",
              "nullable": true
            }
          },
          {
            "name": "deviceId",
            "in": "query",
            "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
            "schema": {
              "type": "string",
              "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
              "nullable": true
            }
          },
          {
            "name": "audioCodec",
            "in": "query",
            "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
              "nullable": true
            }
          },
          {
            "name": "enableAutoStreamCopy",
            "in": "query",
            "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
              "nullable": true
            }
          },
          {
            "name": "allowVideoStreamCopy",
            "in": "query",
            "description": "Whether or not to allow copying of the video stream url.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow copying of the video stream url.",
              "nullable": true
            }
          },
          {
            "name": "allowAudioStreamCopy",
            "in": "query",
            "description": "Whether or not to allow copying of the audio stream url.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow copying of the audio stream url.",
              "nullable": true
            }
          },
          {
            "name": "breakOnNonKeyFrames",
            "in": "query",
            "description": "Optional. Whether to break on non key frames.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to break on non key frames.",
              "nullable": true
            }
          },
          {
            "name": "audioSampleRate",
            "in": "query",
            "description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxAudioBitDepth",
            "in": "query",
            "description": "Optional. The maximum audio bit depth.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum audio bit depth.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "audioBitRate",
            "in": "query",
            "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "audioChannels",
            "in": "query",
            "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxAudioChannels",
            "in": "query",
            "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "profile",
            "in": "query",
            "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
              "nullable": true
            }
          },
          {
            "name": "level",
            "in": "query",
            "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
              "nullable": true
            }
          },
          {
            "name": "framerate",
            "in": "query",
            "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
            "schema": {
              "type": "number",
              "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
              "format": "float",
              "nullable": true
            }
          },
          {
            "name": "maxFramerate",
            "in": "query",
            "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
            "schema": {
              "type": "number",
              "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
              "format": "float",
              "nullable": true
            }
          },
          {
            "name": "copyTimestamps",
            "in": "query",
            "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
              "nullable": true
            }
          },
          {
            "name": "startTimeTicks",
            "in": "query",
            "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "Optional. The fixed horizontal resolution of the encoded video.",
            "schema": {
              "type": "integer",
              "description": "Optional. The fixed horizontal resolution of the encoded video.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "Optional. The fixed vertical resolution of the encoded video.",
            "schema": {
              "type": "integer",
              "description": "Optional. The fixed vertical resolution of the encoded video.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "videoBitRate",
            "in": "query",
            "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "subtitleStreamIndex",
            "in": "query",
            "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "subtitleMethod",
            "in": "query",
            "description": "Optional. Specify the subtitle delivery method.",
            "schema": {
              "$ref": "#/components/schemas/SubtitleDeliveryMethod"
            }
          },
          {
            "name": "maxRefFrames",
            "in": "query",
            "description": "Optional.",
            "schema": {
              "type": "integer",
              "description": "Optional.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxVideoBitDepth",
            "in": "query",
            "description": "Optional. The maximum video bit depth.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum video bit depth.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "requireAvc",
            "in": "query",
            "description": "Optional. Whether to require avc.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to require avc.",
              "nullable": true
            }
          },
          {
            "name": "deInterlace",
            "in": "query",
            "description": "Optional. Whether to deinterlace the video.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to deinterlace the video.",
              "nullable": true
            }
          },
          {
            "name": "requireNonAnamorphic",
            "in": "query",
            "description": "Optional. Whether to require a non anamorphic stream.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to require a non anamorphic stream.",
              "nullable": true
            }
          },
          {
            "name": "transcodingMaxAudioChannels",
            "in": "query",
            "description": "Optional. The maximum number of audio channels to transcode.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of audio channels to transcode.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cpuCoreLimit",
            "in": "query",
            "description": "Optional. The limit of how many cpu cores to use.",
            "schema": {
              "type": "integer",
              "description": "Optional. The limit of how many cpu cores to use.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "liveStreamId",
            "in": "query",
            "description": "The live stream id.",
            "schema": {
              "type": "string",
              "description": "The live stream id.",
              "nullable": true
            }
          },
          {
            "name": "enableMpegtsM2TsMode",
            "in": "query",
            "description": "Optional. Whether to enable the MpegtsM2Ts mode.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to enable the MpegtsM2Ts mode.",
              "nullable": true
            }
          },
          {
            "name": "videoCodec",
            "in": "query",
            "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.",
              "nullable": true
            }
          },
          {
            "name": "subtitleCodec",
            "in": "query",
            "description": "Optional. Specify a subtitle codec to encode to.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a subtitle codec to encode to.",
              "nullable": true
            }
          },
          {
            "name": "transcodeReasons",
            "in": "query",
            "description": "Optional. The transcoding reason.",
            "schema": {
              "type": "string",
              "description": "Optional. The transcoding reason.",
              "nullable": true
            }
          },
          {
            "name": "audioStreamIndex",
            "in": "query",
            "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "videoStreamIndex",
            "in": "query",
            "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "context",
            "in": "query",
            "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.",
            "schema": {
              "$ref": "#/components/schemas/EncodingContext"
            }
          },
          {
            "name": "streamOptions",
            "in": "query",
            "description": "Optional. The streaming options.",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              },
              "description": "Optional. The streaming options.",
              "nullable": true
            }
          },
          {
            "name": "maxWidth",
            "in": "query",
            "description": "Optional. The max width.",
            "schema": {
              "type": "integer",
              "description": "Optional. The max width.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxHeight",
            "in": "query",
            "description": "Optional. The max height.",
            "schema": {
              "type": "integer",
              "description": "Optional. The max height.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "enableSubtitlesInManifest",
            "in": "query",
            "description": "Optional. Whether to enable subtitles in the manifest.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to enable subtitles in the manifest.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Hls live stream retrieved.",
            "content": {
              "application/x-mpegURL": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Videos/{itemId}/{stream}.{container}": {
      "get": {
        "tags": [
          "Videos"
        ],
        "summary": "Gets a video stream.",
        "operationId": "GetVideoStreamByContainer",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "container",
            "in": "path",
            "description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv."
            }
          },
          {
            "name": "static",
            "in": "query",
            "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
            "schema": {
              "type": "boolean",
              "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
              "nullable": true
            }
          },
          {
            "name": "params",
            "in": "query",
            "description": "The streaming parameters.",
            "schema": {
              "type": "string",
              "description": "The streaming parameters.",
              "nullable": true
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "The tag.",
            "schema": {
              "type": "string",
              "description": "The tag.",
              "nullable": true
            }
          },
          {
            "name": "deviceProfileId",
            "in": "query",
            "description": "Optional. The dlna device profile id to utilize.",
            "schema": {
              "type": "string",
              "description": "Optional. The dlna device profile id to utilize.",
              "nullable": true
            }
          },
          {
            "name": "playSessionId",
            "in": "query",
            "description": "The play session id.",
            "schema": {
              "type": "string",
              "description": "The play session id.",
              "nullable": true
            }
          },
          {
            "name": "segmentContainer",
            "in": "query",
            "description": "The segment container.",
            "schema": {
              "type": "string",
              "description": "The segment container.",
              "nullable": true
            }
          },
          {
            "name": "segmentLength",
            "in": "query",
            "description": "The segment lenght.",
            "schema": {
              "type": "integer",
              "description": "The segment lenght.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "minSegments",
            "in": "query",
            "description": "The minimum number of segments.",
            "schema": {
              "type": "integer",
              "description": "The minimum number of segments.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "mediaSourceId",
            "in": "query",
            "description": "The media version id, if playing an alternate version.",
            "schema": {
              "type": "string",
              "description": "The media version id, if playing an alternate version.",
              "nullable": true
            }
          },
          {
            "name": "deviceId",
            "in": "query",
            "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
            "schema": {
              "type": "string",
              "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
              "nullable": true
            }
          },
          {
            "name": "audioCodec",
            "in": "query",
            "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
              "nullable": true
            }
          },
          {
            "name": "enableAutoStreamCopy",
            "in": "query",
            "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
              "nullable": true
            }
          },
          {
            "name": "allowVideoStreamCopy",
            "in": "query",
            "description": "Whether or not to allow copying of the video stream url.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow copying of the video stream url.",
              "nullable": true
            }
          },
          {
            "name": "allowAudioStreamCopy",
            "in": "query",
            "description": "Whether or not to allow copying of the audio stream url.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow copying of the audio stream url.",
              "nullable": true
            }
          },
          {
            "name": "breakOnNonKeyFrames",
            "in": "query",
            "description": "Optional. Whether to break on non key frames.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to break on non key frames.",
              "nullable": true
            }
          },
          {
            "name": "audioSampleRate",
            "in": "query",
            "description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxAudioBitDepth",
            "in": "query",
            "description": "Optional. The maximum audio bit depth.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum audio bit depth.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "audioBitRate",
            "in": "query",
            "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "audioChannels",
            "in": "query",
            "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxAudioChannels",
            "in": "query",
            "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "profile",
            "in": "query",
            "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
              "nullable": true
            }
          },
          {
            "name": "level",
            "in": "query",
            "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
              "nullable": true
            }
          },
          {
            "name": "framerate",
            "in": "query",
            "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
            "schema": {
              "type": "number",
              "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
              "format": "float",
              "nullable": true
            }
          },
          {
            "name": "maxFramerate",
            "in": "query",
            "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
            "schema": {
              "type": "number",
              "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
              "format": "float",
              "nullable": true
            }
          },
          {
            "name": "copyTimestamps",
            "in": "query",
            "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
              "nullable": true
            }
          },
          {
            "name": "startTimeTicks",
            "in": "query",
            "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "Optional. The fixed horizontal resolution of the encoded video.",
            "schema": {
              "type": "integer",
              "description": "Optional. The fixed horizontal resolution of the encoded video.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "Optional. The fixed vertical resolution of the encoded video.",
            "schema": {
              "type": "integer",
              "description": "Optional. The fixed vertical resolution of the encoded video.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "videoBitRate",
            "in": "query",
            "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "subtitleStreamIndex",
            "in": "query",
            "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "subtitleMethod",
            "in": "query",
            "description": "Optional. Specify the subtitle delivery method.",
            "schema": {
              "$ref": "#/components/schemas/SubtitleDeliveryMethod"
            }
          },
          {
            "name": "maxRefFrames",
            "in": "query",
            "description": "Optional.",
            "schema": {
              "type": "integer",
              "description": "Optional.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxVideoBitDepth",
            "in": "query",
            "description": "Optional. The maximum video bit depth.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum video bit depth.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "requireAvc",
            "in": "query",
            "description": "Optional. Whether to require avc.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to require avc.",
              "nullable": true
            }
          },
          {
            "name": "deInterlace",
            "in": "query",
            "description": "Optional. Whether to deinterlace the video.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to deinterlace the video.",
              "nullable": true
            }
          },
          {
            "name": "requireNonAnamorphic",
            "in": "query",
            "description": "Optional. Whether to require a non anamporphic stream.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to require a non anamporphic stream.",
              "nullable": true
            }
          },
          {
            "name": "transcodingMaxAudioChannels",
            "in": "query",
            "description": "Optional. The maximum number of audio channels to transcode.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of audio channels to transcode.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cpuCoreLimit",
            "in": "query",
            "description": "Optional. The limit of how many cpu cores to use.",
            "schema": {
              "type": "integer",
              "description": "Optional. The limit of how many cpu cores to use.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "liveStreamId",
            "in": "query",
            "description": "The live stream id.",
            "schema": {
              "type": "string",
              "description": "The live stream id.",
              "nullable": true
            }
          },
          {
            "name": "enableMpegtsM2TsMode",
            "in": "query",
            "description": "Optional. Whether to enable the MpegtsM2Ts mode.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to enable the MpegtsM2Ts mode.",
              "nullable": true
            }
          },
          {
            "name": "videoCodec",
            "in": "query",
            "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.",
              "nullable": true
            }
          },
          {
            "name": "subtitleCodec",
            "in": "query",
            "description": "Optional. Specify a subtitle codec to encode to.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a subtitle codec to encode to.",
              "nullable": true
            }
          },
          {
            "name": "transcodeReasons",
            "in": "query",
            "description": "Optional. The transcoding reason.",
            "schema": {
              "type": "string",
              "description": "Optional. The transcoding reason.",
              "nullable": true
            }
          },
          {
            "name": "audioStreamIndex",
            "in": "query",
            "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "videoStreamIndex",
            "in": "query",
            "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "context",
            "in": "query",
            "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.",
            "schema": {
              "$ref": "#/components/schemas/EncodingContext"
            }
          },
          {
            "name": "streamOptions",
            "in": "query",
            "description": "Optional. The streaming options.",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              },
              "description": "Optional. The streaming options.",
              "nullable": true
            }
          },
          {
            "name": "stream",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Video stream returned.",
            "content": {
              "video/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        }
      },
      "head": {
        "tags": [
          "Videos"
        ],
        "summary": "Gets a video stream.",
        "operationId": "HeadVideoStreamByContainer",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "container",
            "in": "path",
            "description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv."
            }
          },
          {
            "name": "static",
            "in": "query",
            "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
            "schema": {
              "type": "boolean",
              "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
              "nullable": true
            }
          },
          {
            "name": "params",
            "in": "query",
            "description": "The streaming parameters.",
            "schema": {
              "type": "string",
              "description": "The streaming parameters.",
              "nullable": true
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "The tag.",
            "schema": {
              "type": "string",
              "description": "The tag.",
              "nullable": true
            }
          },
          {
            "name": "deviceProfileId",
            "in": "query",
            "description": "Optional. The dlna device profile id to utilize.",
            "schema": {
              "type": "string",
              "description": "Optional. The dlna device profile id to utilize.",
              "nullable": true
            }
          },
          {
            "name": "playSessionId",
            "in": "query",
            "description": "The play session id.",
            "schema": {
              "type": "string",
              "description": "The play session id.",
              "nullable": true
            }
          },
          {
            "name": "segmentContainer",
            "in": "query",
            "description": "The segment container.",
            "schema": {
              "type": "string",
              "description": "The segment container.",
              "nullable": true
            }
          },
          {
            "name": "segmentLength",
            "in": "query",
            "description": "The segment lenght.",
            "schema": {
              "type": "integer",
              "description": "The segment lenght.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "minSegments",
            "in": "query",
            "description": "The minimum number of segments.",
            "schema": {
              "type": "integer",
              "description": "The minimum number of segments.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "mediaSourceId",
            "in": "query",
            "description": "The media version id, if playing an alternate version.",
            "schema": {
              "type": "string",
              "description": "The media version id, if playing an alternate version.",
              "nullable": true
            }
          },
          {
            "name": "deviceId",
            "in": "query",
            "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
            "schema": {
              "type": "string",
              "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
              "nullable": true
            }
          },
          {
            "name": "audioCodec",
            "in": "query",
            "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
              "nullable": true
            }
          },
          {
            "name": "enableAutoStreamCopy",
            "in": "query",
            "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
              "nullable": true
            }
          },
          {
            "name": "allowVideoStreamCopy",
            "in": "query",
            "description": "Whether or not to allow copying of the video stream url.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow copying of the video stream url.",
              "nullable": true
            }
          },
          {
            "name": "allowAudioStreamCopy",
            "in": "query",
            "description": "Whether or not to allow copying of the audio stream url.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow copying of the audio stream url.",
              "nullable": true
            }
          },
          {
            "name": "breakOnNonKeyFrames",
            "in": "query",
            "description": "Optional. Whether to break on non key frames.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to break on non key frames.",
              "nullable": true
            }
          },
          {
            "name": "audioSampleRate",
            "in": "query",
            "description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxAudioBitDepth",
            "in": "query",
            "description": "Optional. The maximum audio bit depth.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum audio bit depth.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "audioBitRate",
            "in": "query",
            "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "audioChannels",
            "in": "query",
            "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxAudioChannels",
            "in": "query",
            "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "profile",
            "in": "query",
            "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
              "nullable": true
            }
          },
          {
            "name": "level",
            "in": "query",
            "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
              "nullable": true
            }
          },
          {
            "name": "framerate",
            "in": "query",
            "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
            "schema": {
              "type": "number",
              "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
              "format": "float",
              "nullable": true
            }
          },
          {
            "name": "maxFramerate",
            "in": "query",
            "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
            "schema": {
              "type": "number",
              "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
              "format": "float",
              "nullable": true
            }
          },
          {
            "name": "copyTimestamps",
            "in": "query",
            "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
              "nullable": true
            }
          },
          {
            "name": "startTimeTicks",
            "in": "query",
            "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "Optional. The fixed horizontal resolution of the encoded video.",
            "schema": {
              "type": "integer",
              "description": "Optional. The fixed horizontal resolution of the encoded video.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "Optional. The fixed vertical resolution of the encoded video.",
            "schema": {
              "type": "integer",
              "description": "Optional. The fixed vertical resolution of the encoded video.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "videoBitRate",
            "in": "query",
            "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "subtitleStreamIndex",
            "in": "query",
            "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "subtitleMethod",
            "in": "query",
            "description": "Optional. Specify the subtitle delivery method.",
            "schema": {
              "$ref": "#/components/schemas/SubtitleDeliveryMethod"
            }
          },
          {
            "name": "maxRefFrames",
            "in": "query",
            "description": "Optional.",
            "schema": {
              "type": "integer",
              "description": "Optional.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxVideoBitDepth",
            "in": "query",
            "description": "Optional. The maximum video bit depth.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum video bit depth.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "requireAvc",
            "in": "query",
            "description": "Optional. Whether to require avc.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to require avc.",
              "nullable": true
            }
          },
          {
            "name": "deInterlace",
            "in": "query",
            "description": "Optional. Whether to deinterlace the video.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to deinterlace the video.",
              "nullable": true
            }
          },
          {
            "name": "requireNonAnamorphic",
            "in": "query",
            "description": "Optional. Whether to require a non anamporphic stream.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to require a non anamporphic stream.",
              "nullable": true
            }
          },
          {
            "name": "transcodingMaxAudioChannels",
            "in": "query",
            "description": "Optional. The maximum number of audio channels to transcode.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of audio channels to transcode.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cpuCoreLimit",
            "in": "query",
            "description": "Optional. The limit of how many cpu cores to use.",
            "schema": {
              "type": "integer",
              "description": "Optional. The limit of how many cpu cores to use.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "liveStreamId",
            "in": "query",
            "description": "The live stream id.",
            "schema": {
              "type": "string",
              "description": "The live stream id.",
              "nullable": true
            }
          },
          {
            "name": "enableMpegtsM2TsMode",
            "in": "query",
            "description": "Optional. Whether to enable the MpegtsM2Ts mode.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to enable the MpegtsM2Ts mode.",
              "nullable": true
            }
          },
          {
            "name": "videoCodec",
            "in": "query",
            "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.",
              "nullable": true
            }
          },
          {
            "name": "subtitleCodec",
            "in": "query",
            "description": "Optional. Specify a subtitle codec to encode to.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a subtitle codec to encode to.",
              "nullable": true
            }
          },
          {
            "name": "transcodeReasons",
            "in": "query",
            "description": "Optional. The transcoding reason.",
            "schema": {
              "type": "string",
              "description": "Optional. The transcoding reason.",
              "nullable": true
            }
          },
          {
            "name": "audioStreamIndex",
            "in": "query",
            "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "videoStreamIndex",
            "in": "query",
            "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "context",
            "in": "query",
            "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.",
            "schema": {
              "$ref": "#/components/schemas/EncodingContext"
            }
          },
          {
            "name": "streamOptions",
            "in": "query",
            "description": "Optional. The streaming options.",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              },
              "description": "Optional. The streaming options.",
              "nullable": true
            }
          },
          {
            "name": "stream",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Video stream returned.",
            "content": {
              "video/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        }
      }
    },
    "/Videos/{itemId}/AdditionalParts": {
      "get": {
        "tags": [
          "Videos"
        ],
        "summary": "Gets additional parts for a video.",
        "operationId": "GetAdditionalPart",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. Filter by user id, and attach user data.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by user id, and attach user data.",
              "format": "uuid",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Additional parts returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Videos/{itemId}/AlternateSources": {
      "delete": {
        "tags": [
          "Videos"
        ],
        "summary": "Removes alternate video sources.",
        "operationId": "DeleteAlternateSources",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Alternate sources deleted."
          },
          "404": {
            "description": "Video not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      }
    },
    "/Videos/{itemId}/stream": {
      "get": {
        "tags": [
          "Videos"
        ],
        "summary": "Gets a video stream.",
        "operationId": "GetVideoStream",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "container",
            "in": "query",
            "description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.",
            "schema": {
              "type": "string",
              "description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.",
              "nullable": true
            }
          },
          {
            "name": "static",
            "in": "query",
            "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
            "schema": {
              "type": "boolean",
              "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
              "nullable": true
            }
          },
          {
            "name": "params",
            "in": "query",
            "description": "The streaming parameters.",
            "schema": {
              "type": "string",
              "description": "The streaming parameters.",
              "nullable": true
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "The tag.",
            "schema": {
              "type": "string",
              "description": "The tag.",
              "nullable": true
            }
          },
          {
            "name": "deviceProfileId",
            "in": "query",
            "description": "Optional. The dlna device profile id to utilize.",
            "schema": {
              "type": "string",
              "description": "Optional. The dlna device profile id to utilize.",
              "nullable": true
            }
          },
          {
            "name": "playSessionId",
            "in": "query",
            "description": "The play session id.",
            "schema": {
              "type": "string",
              "description": "The play session id.",
              "nullable": true
            }
          },
          {
            "name": "segmentContainer",
            "in": "query",
            "description": "The segment container.",
            "schema": {
              "type": "string",
              "description": "The segment container.",
              "nullable": true
            }
          },
          {
            "name": "segmentLength",
            "in": "query",
            "description": "The segment length.",
            "schema": {
              "type": "integer",
              "description": "The segment length.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "minSegments",
            "in": "query",
            "description": "The minimum number of segments.",
            "schema": {
              "type": "integer",
              "description": "The minimum number of segments.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "mediaSourceId",
            "in": "query",
            "description": "The media version id, if playing an alternate version.",
            "schema": {
              "type": "string",
              "description": "The media version id, if playing an alternate version.",
              "nullable": true
            }
          },
          {
            "name": "deviceId",
            "in": "query",
            "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
            "schema": {
              "type": "string",
              "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
              "nullable": true
            }
          },
          {
            "name": "audioCodec",
            "in": "query",
            "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
              "nullable": true
            }
          },
          {
            "name": "enableAutoStreamCopy",
            "in": "query",
            "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
              "nullable": true
            }
          },
          {
            "name": "allowVideoStreamCopy",
            "in": "query",
            "description": "Whether or not to allow copying of the video stream url.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow copying of the video stream url.",
              "nullable": true
            }
          },
          {
            "name": "allowAudioStreamCopy",
            "in": "query",
            "description": "Whether or not to allow copying of the audio stream url.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow copying of the audio stream url.",
              "nullable": true
            }
          },
          {
            "name": "breakOnNonKeyFrames",
            "in": "query",
            "description": "Optional. Whether to break on non key frames.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to break on non key frames.",
              "nullable": true
            }
          },
          {
            "name": "audioSampleRate",
            "in": "query",
            "description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxAudioBitDepth",
            "in": "query",
            "description": "Optional. The maximum audio bit depth.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum audio bit depth.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "audioBitRate",
            "in": "query",
            "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "audioChannels",
            "in": "query",
            "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxAudioChannels",
            "in": "query",
            "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "profile",
            "in": "query",
            "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
              "nullable": true
            }
          },
          {
            "name": "level",
            "in": "query",
            "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
              "nullable": true
            }
          },
          {
            "name": "framerate",
            "in": "query",
            "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
            "schema": {
              "type": "number",
              "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
              "format": "float",
              "nullable": true
            }
          },
          {
            "name": "maxFramerate",
            "in": "query",
            "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
            "schema": {
              "type": "number",
              "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
              "format": "float",
              "nullable": true
            }
          },
          {
            "name": "copyTimestamps",
            "in": "query",
            "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
              "nullable": true
            }
          },
          {
            "name": "startTimeTicks",
            "in": "query",
            "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "Optional. The fixed horizontal resolution of the encoded video.",
            "schema": {
              "type": "integer",
              "description": "Optional. The fixed horizontal resolution of the encoded video.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "Optional. The fixed vertical resolution of the encoded video.",
            "schema": {
              "type": "integer",
              "description": "Optional. The fixed vertical resolution of the encoded video.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "videoBitRate",
            "in": "query",
            "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "subtitleStreamIndex",
            "in": "query",
            "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "subtitleMethod",
            "in": "query",
            "description": "Optional. Specify the subtitle delivery method.",
            "schema": {
              "$ref": "#/components/schemas/SubtitleDeliveryMethod"
            }
          },
          {
            "name": "maxRefFrames",
            "in": "query",
            "description": "Optional.",
            "schema": {
              "type": "integer",
              "description": "Optional.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxVideoBitDepth",
            "in": "query",
            "description": "Optional. The maximum video bit depth.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum video bit depth.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "requireAvc",
            "in": "query",
            "description": "Optional. Whether to require avc.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to require avc.",
              "nullable": true
            }
          },
          {
            "name": "deInterlace",
            "in": "query",
            "description": "Optional. Whether to deinterlace the video.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to deinterlace the video.",
              "nullable": true
            }
          },
          {
            "name": "requireNonAnamorphic",
            "in": "query",
            "description": "Optional. Whether to require a non anamorphic stream.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to require a non anamorphic stream.",
              "nullable": true
            }
          },
          {
            "name": "transcodingMaxAudioChannels",
            "in": "query",
            "description": "Optional. The maximum number of audio channels to transcode.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of audio channels to transcode.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cpuCoreLimit",
            "in": "query",
            "description": "Optional. The limit of how many cpu cores to use.",
            "schema": {
              "type": "integer",
              "description": "Optional. The limit of how many cpu cores to use.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "liveStreamId",
            "in": "query",
            "description": "The live stream id.",
            "schema": {
              "type": "string",
              "description": "The live stream id.",
              "nullable": true
            }
          },
          {
            "name": "enableMpegtsM2TsMode",
            "in": "query",
            "description": "Optional. Whether to enable the MpegtsM2Ts mode.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to enable the MpegtsM2Ts mode.",
              "nullable": true
            }
          },
          {
            "name": "videoCodec",
            "in": "query",
            "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.",
              "nullable": true
            }
          },
          {
            "name": "subtitleCodec",
            "in": "query",
            "description": "Optional. Specify a subtitle codec to encode to.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a subtitle codec to encode to.",
              "nullable": true
            }
          },
          {
            "name": "transcodeReasons",
            "in": "query",
            "description": "Optional. The transcoding reason.",
            "schema": {
              "type": "string",
              "description": "Optional. The transcoding reason.",
              "nullable": true
            }
          },
          {
            "name": "audioStreamIndex",
            "in": "query",
            "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "videoStreamIndex",
            "in": "query",
            "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "context",
            "in": "query",
            "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.",
            "schema": {
              "$ref": "#/components/schemas/EncodingContext"
            }
          },
          {
            "name": "streamOptions",
            "in": "query",
            "description": "Optional. The streaming options.",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              },
              "description": "Optional. The streaming options.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Video stream returned.",
            "content": {
              "video/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        }
      },
      "head": {
        "tags": [
          "Videos"
        ],
        "summary": "Gets a video stream.",
        "operationId": "HeadVideoStream",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "The item id.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The item id.",
              "format": "uuid"
            }
          },
          {
            "name": "container",
            "in": "query",
            "description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.",
            "schema": {
              "type": "string",
              "description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.",
              "nullable": true
            }
          },
          {
            "name": "static",
            "in": "query",
            "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
            "schema": {
              "type": "boolean",
              "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
              "nullable": true
            }
          },
          {
            "name": "params",
            "in": "query",
            "description": "The streaming parameters.",
            "schema": {
              "type": "string",
              "description": "The streaming parameters.",
              "nullable": true
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "The tag.",
            "schema": {
              "type": "string",
              "description": "The tag.",
              "nullable": true
            }
          },
          {
            "name": "deviceProfileId",
            "in": "query",
            "description": "Optional. The dlna device profile id to utilize.",
            "schema": {
              "type": "string",
              "description": "Optional. The dlna device profile id to utilize.",
              "nullable": true
            }
          },
          {
            "name": "playSessionId",
            "in": "query",
            "description": "The play session id.",
            "schema": {
              "type": "string",
              "description": "The play session id.",
              "nullable": true
            }
          },
          {
            "name": "segmentContainer",
            "in": "query",
            "description": "The segment container.",
            "schema": {
              "type": "string",
              "description": "The segment container.",
              "nullable": true
            }
          },
          {
            "name": "segmentLength",
            "in": "query",
            "description": "The segment length.",
            "schema": {
              "type": "integer",
              "description": "The segment length.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "minSegments",
            "in": "query",
            "description": "The minimum number of segments.",
            "schema": {
              "type": "integer",
              "description": "The minimum number of segments.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "mediaSourceId",
            "in": "query",
            "description": "The media version id, if playing an alternate version.",
            "schema": {
              "type": "string",
              "description": "The media version id, if playing an alternate version.",
              "nullable": true
            }
          },
          {
            "name": "deviceId",
            "in": "query",
            "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
            "schema": {
              "type": "string",
              "description": "The device id of the client requesting. Used to stop encoding processes when needed.",
              "nullable": true
            }
          },
          {
            "name": "audioCodec",
            "in": "query",
            "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
              "nullable": true
            }
          },
          {
            "name": "enableAutoStreamCopy",
            "in": "query",
            "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
              "nullable": true
            }
          },
          {
            "name": "allowVideoStreamCopy",
            "in": "query",
            "description": "Whether or not to allow copying of the video stream url.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow copying of the video stream url.",
              "nullable": true
            }
          },
          {
            "name": "allowAudioStreamCopy",
            "in": "query",
            "description": "Whether or not to allow copying of the audio stream url.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to allow copying of the audio stream url.",
              "nullable": true
            }
          },
          {
            "name": "breakOnNonKeyFrames",
            "in": "query",
            "description": "Optional. Whether to break on non key frames.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to break on non key frames.",
              "nullable": true
            }
          },
          {
            "name": "audioSampleRate",
            "in": "query",
            "description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxAudioBitDepth",
            "in": "query",
            "description": "Optional. The maximum audio bit depth.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum audio bit depth.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "audioBitRate",
            "in": "query",
            "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "audioChannels",
            "in": "query",
            "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxAudioChannels",
            "in": "query",
            "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "profile",
            "in": "query",
            "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
              "nullable": true
            }
          },
          {
            "name": "level",
            "in": "query",
            "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
              "nullable": true
            }
          },
          {
            "name": "framerate",
            "in": "query",
            "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
            "schema": {
              "type": "number",
              "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
              "format": "float",
              "nullable": true
            }
          },
          {
            "name": "maxFramerate",
            "in": "query",
            "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
            "schema": {
              "type": "number",
              "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
              "format": "float",
              "nullable": true
            }
          },
          {
            "name": "copyTimestamps",
            "in": "query",
            "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
              "nullable": true
            }
          },
          {
            "name": "startTimeTicks",
            "in": "query",
            "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "Optional. The fixed horizontal resolution of the encoded video.",
            "schema": {
              "type": "integer",
              "description": "Optional. The fixed horizontal resolution of the encoded video.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "Optional. The fixed vertical resolution of the encoded video.",
            "schema": {
              "type": "integer",
              "description": "Optional. The fixed vertical resolution of the encoded video.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "videoBitRate",
            "in": "query",
            "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
            "schema": {
              "type": "integer",
              "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "subtitleStreamIndex",
            "in": "query",
            "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "subtitleMethod",
            "in": "query",
            "description": "Optional. Specify the subtitle delivery method.",
            "schema": {
              "$ref": "#/components/schemas/SubtitleDeliveryMethod"
            }
          },
          {
            "name": "maxRefFrames",
            "in": "query",
            "description": "Optional.",
            "schema": {
              "type": "integer",
              "description": "Optional.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "maxVideoBitDepth",
            "in": "query",
            "description": "Optional. The maximum video bit depth.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum video bit depth.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "requireAvc",
            "in": "query",
            "description": "Optional. Whether to require avc.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to require avc.",
              "nullable": true
            }
          },
          {
            "name": "deInterlace",
            "in": "query",
            "description": "Optional. Whether to deinterlace the video.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to deinterlace the video.",
              "nullable": true
            }
          },
          {
            "name": "requireNonAnamorphic",
            "in": "query",
            "description": "Optional. Whether to require a non anamorphic stream.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to require a non anamorphic stream.",
              "nullable": true
            }
          },
          {
            "name": "transcodingMaxAudioChannels",
            "in": "query",
            "description": "Optional. The maximum number of audio channels to transcode.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of audio channels to transcode.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "cpuCoreLimit",
            "in": "query",
            "description": "Optional. The limit of how many cpu cores to use.",
            "schema": {
              "type": "integer",
              "description": "Optional. The limit of how many cpu cores to use.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "liveStreamId",
            "in": "query",
            "description": "The live stream id.",
            "schema": {
              "type": "string",
              "description": "The live stream id.",
              "nullable": true
            }
          },
          {
            "name": "enableMpegtsM2TsMode",
            "in": "query",
            "description": "Optional. Whether to enable the MpegtsM2Ts mode.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Whether to enable the MpegtsM2Ts mode.",
              "nullable": true
            }
          },
          {
            "name": "videoCodec",
            "in": "query",
            "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.",
              "nullable": true
            }
          },
          {
            "name": "subtitleCodec",
            "in": "query",
            "description": "Optional. Specify a subtitle codec to encode to.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify a subtitle codec to encode to.",
              "nullable": true
            }
          },
          {
            "name": "transcodeReasons",
            "in": "query",
            "description": "Optional. The transcoding reason.",
            "schema": {
              "type": "string",
              "description": "Optional. The transcoding reason.",
              "nullable": true
            }
          },
          {
            "name": "audioStreamIndex",
            "in": "query",
            "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "videoStreamIndex",
            "in": "query",
            "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
            "schema": {
              "type": "integer",
              "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "context",
            "in": "query",
            "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.",
            "schema": {
              "$ref": "#/components/schemas/EncodingContext"
            }
          },
          {
            "name": "streamOptions",
            "in": "query",
            "description": "Optional. The streaming options.",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              },
              "description": "Optional. The streaming options.",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Video stream returned.",
            "content": {
              "video/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        }
      }
    },
    "/Videos/MergeVersions": {
      "post": {
        "tags": [
          "Videos"
        ],
        "summary": "Merges videos into a single record.",
        "operationId": "MergeVersions",
        "parameters": [
          {
            "name": "ids",
            "in": "query",
            "description": "Item id list. This allows multiple, comma delimited.",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "Item id list. This allows multiple, comma delimited."
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Videos merged."
          },
          "400": {
            "description": "Supply at least 2 video ids.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "RequiresElevation"
            ]
          }
        ]
      }
    },
    "/Years": {
      "get": {
        "tags": [
          "Years"
        ],
        "summary": "Get years.",
        "operationId": "GetYears",
        "parameters": [
          {
            "name": "startIndex",
            "in": "query",
            "description": "Skips over a given number of items within the results. Use for paging.",
            "schema": {
              "type": "integer",
              "description": "Skips over a given number of items within the results. Use for paging.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Optional. The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "description": "Optional. The maximum number of records to return.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "sortOrder",
            "in": "query",
            "description": "Sort Order - Ascending,Descending.",
            "schema": {
              "type": "string",
              "description": "Sort Order - Ascending,Descending.",
              "nullable": true
            }
          },
          {
            "name": "parentId",
            "in": "query",
            "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.",
            "schema": {
              "type": "string",
              "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional. Specify additional fields of information to return in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ItemFields"
              },
              "description": "Optional. Specify additional fields of information to return in the output.",
              "nullable": true
            }
          },
          {
            "name": "excludeItemTypes",
            "in": "query",
            "description": "Optional. If specified, results will be excluded based on item type. This allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be excluded based on item type. This allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "includeItemTypes",
            "in": "query",
            "description": "Optional. If specified, results will be included based on item type. This allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. If specified, results will be included based on item type. This allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "mediaTypes",
            "in": "query",
            "description": "Optional. Filter by MediaType. Allows multiple, comma delimited.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional. Filter by MediaType. Allows multiple, comma delimited.",
              "nullable": true
            }
          },
          {
            "name": "sortBy",
            "in": "query",
            "description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.",
            "schema": {
              "type": "string",
              "description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.",
              "nullable": true
            }
          },
          {
            "name": "enableUserData",
            "in": "query",
            "description": "Optional. Include user data.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Include user data.",
              "nullable": true
            }
          },
          {
            "name": "imageTypeLimit",
            "in": "query",
            "description": "Optional. The max number of images to return, per image type.",
            "schema": {
              "type": "integer",
              "description": "Optional. The max number of images to return, per image type.",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "enableImageTypes",
            "in": "query",
            "description": "Optional. The image types to include in the output.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ImageType"
              },
              "description": "Optional. The image types to include in the output.",
              "nullable": true
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "User Id.",
            "schema": {
              "type": "string",
              "description": "User Id.",
              "format": "uuid",
              "nullable": true
            }
          },
          {
            "name": "recursive",
            "in": "query",
            "description": "Search recursively.",
            "schema": {
              "type": "boolean",
              "description": "Search recursively.",
              "default": true
            }
          },
          {
            "name": "enableImages",
            "in": "query",
            "description": "Optional. Include image information in output.",
            "schema": {
              "type": "boolean",
              "description": "Optional. Include image information in output.",
              "default": true,
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Year query returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDtoQueryResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    },
    "/Years/{year}": {
      "get": {
        "tags": [
          "Years"
        ],
        "summary": "Gets a year.",
        "operationId": "GetYear",
        "parameters": [
          {
            "name": "year",
            "in": "path",
            "description": "The year.",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "The year.",
              "format": "int32"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "Optional. Filter by user id, and attach user data.",
            "schema": {
              "type": "string",
              "description": "Optional. Filter by user id, and attach user data.",
              "format": "uuid",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Year returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDto"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDto"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/BaseItemDto"
                }
              }
            }
          },
          "404": {
            "description": "Year not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"CamelCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; profile=\"PascalCase\"": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "CustomAuthentication": [
              "DefaultAuthorization"
            ]
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "LogLevel": {
        "enum": [
          "Trace",
          "Debug",
          "Information",
          "Warning",
          "Error",
          "Critical",
          "None"
        ],
        "type": "string"
      },
      "ActivityLogEntry": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Gets or sets the identifier.",
            "format": "int64"
          },
          "Name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "Overview": {
            "type": "string",
            "description": "Gets or sets the overview.",
            "nullable": true
          },
          "ShortOverview": {
            "type": "string",
            "description": "Gets or sets the short overview.",
            "nullable": true
          },
          "Type": {
            "type": "string",
            "description": "Gets or sets the type.",
            "nullable": true
          },
          "ItemId": {
            "type": "string",
            "description": "Gets or sets the item identifier.",
            "nullable": true
          },
          "Date": {
            "type": "string",
            "description": "Gets or sets the date.",
            "format": "date-time"
          },
          "UserId": {
            "type": "string",
            "description": "Gets or sets the user identifier.",
            "format": "uuid"
          },
          "UserPrimaryImageTag": {
            "type": "string",
            "description": "Gets or sets the user primary image tag.",
            "nullable": true,
            "deprecated": true
          },
          "Severity": {
            "$ref": "#/components/schemas/LogLevel"
          }
        },
        "additionalProperties": false
      },
      "ActivityLogEntryQueryResult": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ActivityLogEntry"
            },
            "description": "Gets or sets the items.",
            "nullable": true
          },
          "TotalRecordCount": {
            "type": "integer",
            "description": "The total number of records available.",
            "format": "int32"
          },
          "StartIndex": {
            "type": "integer",
            "description": "The index of the first record in Items.",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "AuthenticationInfo": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Gets or sets the identifier.",
            "format": "int64"
          },
          "AccessToken": {
            "type": "string",
            "description": "Gets or sets the access token.",
            "nullable": true
          },
          "DeviceId": {
            "type": "string",
            "description": "Gets or sets the device identifier.",
            "nullable": true
          },
          "AppName": {
            "type": "string",
            "description": "Gets or sets the name of the application.",
            "nullable": true
          },
          "AppVersion": {
            "type": "string",
            "description": "Gets or sets the application version.",
            "nullable": true
          },
          "DeviceName": {
            "type": "string",
            "description": "Gets or sets the name of the device.",
            "nullable": true
          },
          "UserId": {
            "type": "string",
            "description": "Gets or sets the user identifier.",
            "format": "uuid"
          },
          "IsActive": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is active."
          },
          "DateCreated": {
            "type": "string",
            "description": "Gets or sets the date created.",
            "format": "date-time"
          },
          "DateRevoked": {
            "type": "string",
            "description": "Gets or sets the date revoked.",
            "format": "date-time",
            "nullable": true
          },
          "DateLastActivity": {
            "type": "string",
            "format": "date-time"
          },
          "UserName": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AuthenticationInfoQueryResult": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AuthenticationInfo"
            },
            "description": "Gets or sets the items.",
            "nullable": true
          },
          "TotalRecordCount": {
            "type": "integer",
            "description": "The total number of records available.",
            "format": "int32"
          },
          "StartIndex": {
            "type": "integer",
            "description": "The index of the first record in Items.",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ItemFields": {
        "enum": [
          "AirTime",
          "CanDelete",
          "CanDownload",
          "ChannelInfo",
          "Chapters",
          "ChildCount",
          "CumulativeRunTimeTicks",
          "CustomRating",
          "DateCreated",
          "DateLastMediaAdded",
          "DisplayPreferencesId",
          "Etag",
          "ExternalUrls",
          "Genres",
          "HomePageUrl",
          "ItemCounts",
          "MediaSourceCount",
          "MediaSources",
          "OriginalTitle",
          "Overview",
          "ParentId",
          "Path",
          "People",
          "PlayAccess",
          "ProductionLocations",
          "ProviderIds",
          "PrimaryImageAspectRatio",
          "RecursiveItemCount",
          "Settings",
          "ScreenshotImageTags",
          "SeriesPrimaryImage",
          "SeriesStudio",
          "SortName",
          "SpecialEpisodeNumbers",
          "Studios",
          "BasicSyncInfo",
          "SyncInfo",
          "Taglines",
          "Tags",
          "RemoteTrailers",
          "MediaStreams",
          "SeasonUserData",
          "ServiceName",
          "ThemeSongIds",
          "ThemeVideoIds",
          "ExternalEtag",
          "PresentationUniqueKey",
          "InheritedParentalRatingValue",
          "ExternalSeriesId",
          "SeriesPresentationUniqueKey",
          "DateLastRefreshed",
          "DateLastSaved",
          "RefreshState",
          "ChannelImage",
          "EnableMediaSourceDisplay",
          "Width",
          "Height",
          "ExtraIds",
          "LocalTrailerCount",
          "IsHD",
          "SpecialFeatureCount"
        ],
        "type": "string",
        "description": "Used to control the data that gets attached to DtoBaseItems."
      },
      "ItemFilter": {
        "enum": [
          "IsFolder",
          "IsNotFolder",
          "IsUnplayed",
          "IsPlayed",
          "IsFavorite",
          "IsResumable",
          "Likes",
          "Dislikes",
          "IsFavoriteOrLikes"
        ],
        "type": "string",
        "description": "Enum ItemFilter."
      },
      "ImageType": {
        "enum": [
          "Primary",
          "Art",
          "Backdrop",
          "Banner",
          "Logo",
          "Thumb",
          "Disc",
          "Box",
          "Screenshot",
          "Menu",
          "Chapter",
          "BoxRear",
          "Profile"
        ],
        "type": "string",
        "description": "Enum ImageType."
      },
      "Video3DFormat": {
        "enum": [
          "HalfSideBySide",
          "FullSideBySide",
          "FullTopAndBottom",
          "HalfTopAndBottom",
          "MVC"
        ],
        "type": "string"
      },
      "ExternalUrl": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "Url": {
            "type": "string",
            "description": "Gets or sets the type of the item.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MediaProtocol": {
        "enum": [
          "File",
          "Http",
          "Rtmp",
          "Rtsp",
          "Udp",
          "Rtp",
          "Ftp"
        ],
        "type": "string"
      },
      "MediaSourceType": {
        "enum": [
          "Default",
          "Grouping",
          "Placeholder"
        ],
        "type": "string"
      },
      "VideoType": {
        "enum": [
          "VideoFile",
          "Iso",
          "Dvd",
          "BluRay"
        ],
        "type": "string",
        "description": "Enum VideoType."
      },
      "IsoType": {
        "enum": [
          "Dvd",
          "BluRay"
        ],
        "type": "string",
        "description": "Enum IsoType."
      },
      "MediaStreamType": {
        "enum": [
          "Audio",
          "Video",
          "Subtitle",
          "EmbeddedImage"
        ],
        "type": "string",
        "description": "Enum MediaStreamType."
      },
      "SubtitleDeliveryMethod": {
        "enum": [
          "Encode",
          "Embed",
          "External",
          "Hls"
        ],
        "type": "string"
      },
      "MediaStream": {
        "type": "object",
        "properties": {
          "Codec": {
            "type": "string",
            "description": "Gets or sets the codec.",
            "nullable": true
          },
          "CodecTag": {
            "type": "string",
            "description": "Gets or sets the codec tag.",
            "nullable": true
          },
          "Language": {
            "type": "string",
            "description": "Gets or sets the language.",
            "nullable": true
          },
          "ColorRange": {
            "type": "string",
            "description": "Gets or sets the color range.",
            "nullable": true
          },
          "ColorSpace": {
            "type": "string",
            "description": "Gets or sets the color space.",
            "nullable": true
          },
          "ColorTransfer": {
            "type": "string",
            "description": "Gets or sets the color transfer.",
            "nullable": true
          },
          "ColorPrimaries": {
            "type": "string",
            "description": "Gets or sets the color primaries.",
            "nullable": true
          },
          "Comment": {
            "type": "string",
            "description": "Gets or sets the comment.",
            "nullable": true
          },
          "TimeBase": {
            "type": "string",
            "description": "Gets or sets the time base.",
            "nullable": true
          },
          "CodecTimeBase": {
            "type": "string",
            "description": "Gets or sets the codec time base.",
            "nullable": true
          },
          "Title": {
            "type": "string",
            "description": "Gets or sets the title.",
            "nullable": true
          },
          "VideoRange": {
            "type": "string",
            "description": "Gets or sets the video range.",
            "nullable": true,
            "readOnly": true
          },
          "localizedUndefined": {
            "type": "string",
            "nullable": true
          },
          "localizedDefault": {
            "type": "string",
            "nullable": true
          },
          "localizedForced": {
            "type": "string",
            "nullable": true
          },
          "DisplayTitle": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "NalLengthSize": {
            "type": "string",
            "nullable": true
          },
          "IsInterlaced": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is interlaced."
          },
          "IsAVC": {
            "type": "boolean",
            "nullable": true
          },
          "ChannelLayout": {
            "type": "string",
            "description": "Gets or sets the channel layout.",
            "nullable": true
          },
          "BitRate": {
            "type": "integer",
            "description": "Gets or sets the bit rate.",
            "format": "int32",
            "nullable": true
          },
          "BitDepth": {
            "type": "integer",
            "description": "Gets or sets the bit depth.",
            "format": "int32",
            "nullable": true
          },
          "RefFrames": {
            "type": "integer",
            "description": "Gets or sets the reference frames.",
            "format": "int32",
            "nullable": true
          },
          "PacketLength": {
            "type": "integer",
            "description": "Gets or sets the length of the packet.",
            "format": "int32",
            "nullable": true
          },
          "Channels": {
            "type": "integer",
            "description": "Gets or sets the channels.",
            "format": "int32",
            "nullable": true
          },
          "SampleRate": {
            "type": "integer",
            "description": "Gets or sets the sample rate.",
            "format": "int32",
            "nullable": true
          },
          "IsDefault": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is default."
          },
          "IsForced": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is forced."
          },
          "Height": {
            "type": "integer",
            "description": "Gets or sets the height.",
            "format": "int32",
            "nullable": true
          },
          "Width": {
            "type": "integer",
            "description": "Gets or sets the width.",
            "format": "int32",
            "nullable": true
          },
          "AverageFrameRate": {
            "type": "number",
            "description": "Gets or sets the average frame rate.",
            "format": "float",
            "nullable": true
          },
          "RealFrameRate": {
            "type": "number",
            "description": "Gets or sets the real frame rate.",
            "format": "float",
            "nullable": true
          },
          "Profile": {
            "type": "string",
            "description": "Gets or sets the profile.",
            "nullable": true
          },
          "Type": {
            "$ref": "#/components/schemas/MediaStreamType"
          },
          "AspectRatio": {
            "type": "string",
            "description": "Gets or sets the aspect ratio.",
            "nullable": true
          },
          "Index": {
            "type": "integer",
            "description": "Gets or sets the index.",
            "format": "int32"
          },
          "Score": {
            "type": "integer",
            "description": "Gets or sets the score.",
            "format": "int32",
            "nullable": true
          },
          "IsExternal": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is external."
          },
          "DeliveryMethod": {
            "$ref": "#/components/schemas/SubtitleDeliveryMethod"
          },
          "DeliveryUrl": {
            "type": "string",
            "description": "Gets or sets the delivery URL.",
            "nullable": true
          },
          "IsExternalUrl": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is external URL.",
            "nullable": true
          },
          "IsTextSubtitleStream": {
            "type": "boolean",
            "readOnly": true
          },
          "SupportsExternalStream": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether [supports external stream]."
          },
          "Path": {
            "type": "string",
            "description": "Gets or sets the filename.",
            "nullable": true
          },
          "PixelFormat": {
            "type": "string",
            "description": "Gets or sets the pixel format.",
            "nullable": true
          },
          "Level": {
            "type": "number",
            "description": "Gets or sets the level.",
            "format": "double",
            "nullable": true
          },
          "IsAnamorphic": {
            "type": "boolean",
            "description": "Gets a value indicating whether this instance is anamorphic.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Class MediaStream."
      },
      "MediaAttachment": {
        "type": "object",
        "properties": {
          "Codec": {
            "type": "string",
            "description": "Gets or sets the codec.",
            "nullable": true
          },
          "CodecTag": {
            "type": "string",
            "description": "Gets or sets the codec tag.",
            "nullable": true
          },
          "Comment": {
            "type": "string",
            "description": "Gets or sets the comment.",
            "nullable": true
          },
          "Index": {
            "type": "integer",
            "description": "Gets or sets the index.",
            "format": "int32"
          },
          "FileName": {
            "type": "string",
            "description": "Gets or sets the filename.",
            "nullable": true
          },
          "MimeType": {
            "type": "string",
            "description": "Gets or sets the MIME type.",
            "nullable": true
          },
          "DeliveryUrl": {
            "type": "string",
            "description": "Gets or sets the delivery URL.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Class MediaAttachment."
      },
      "TransportStreamTimestamp": {
        "enum": [
          "None",
          "Zero",
          "Valid"
        ],
        "type": "string"
      },
      "MediaSourceInfo": {
        "type": "object",
        "properties": {
          "Protocol": {
            "$ref": "#/components/schemas/MediaProtocol"
          },
          "Id": {
            "type": "string",
            "nullable": true
          },
          "Path": {
            "type": "string",
            "nullable": true
          },
          "EncoderPath": {
            "type": "string",
            "nullable": true
          },
          "EncoderProtocol": {
            "$ref": "#/components/schemas/MediaProtocol"
          },
          "Type": {
            "$ref": "#/components/schemas/MediaSourceType"
          },
          "Container": {
            "type": "string",
            "nullable": true
          },
          "Size": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "IsRemote": {
            "type": "boolean",
            "description": "Differentiate internet url vs local network."
          },
          "ETag": {
            "type": "string",
            "nullable": true
          },
          "RunTimeTicks": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "ReadAtNativeFramerate": {
            "type": "boolean"
          },
          "IgnoreDts": {
            "type": "boolean"
          },
          "IgnoreIndex": {
            "type": "boolean"
          },
          "GenPtsInput": {
            "type": "boolean"
          },
          "SupportsTranscoding": {
            "type": "boolean"
          },
          "SupportsDirectStream": {
            "type": "boolean"
          },
          "SupportsDirectPlay": {
            "type": "boolean"
          },
          "IsInfiniteStream": {
            "type": "boolean"
          },
          "RequiresOpening": {
            "type": "boolean"
          },
          "OpenToken": {
            "type": "string",
            "nullable": true
          },
          "RequiresClosing": {
            "type": "boolean"
          },
          "LiveStreamId": {
            "type": "string",
            "nullable": true
          },
          "BufferMs": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "RequiresLooping": {
            "type": "boolean"
          },
          "SupportsProbing": {
            "type": "boolean"
          },
          "VideoType": {
            "$ref": "#/components/schemas/VideoType"
          },
          "IsoType": {
            "$ref": "#/components/schemas/IsoType"
          },
          "Video3DFormat": {
            "$ref": "#/components/schemas/Video3DFormat"
          },
          "MediaStreams": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaStream"
            },
            "nullable": true
          },
          "MediaAttachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaAttachment"
            },
            "nullable": true
          },
          "Formats": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "Bitrate": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Timestamp": {
            "$ref": "#/components/schemas/TransportStreamTimestamp"
          },
          "RequiredHttpHeaders": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "nullable": true
          },
          "TranscodingUrl": {
            "type": "string",
            "nullable": true
          },
          "TranscodingSubProtocol": {
            "type": "string",
            "nullable": true
          },
          "TranscodingContainer": {
            "type": "string",
            "nullable": true
          },
          "AnalyzeDurationMs": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "DefaultAudioStreamIndex": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "DefaultSubtitleStreamIndex": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PlayAccess": {
        "enum": [
          "Full",
          "None"
        ],
        "type": "string"
      },
      "MediaUrl": {
        "type": "object",
        "properties": {
          "Url": {
            "type": "string",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BaseItemPerson": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "Id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "nullable": true
          },
          "Role": {
            "type": "string",
            "description": "Gets or sets the role.",
            "nullable": true
          },
          "Type": {
            "type": "string",
            "description": "Gets or sets the type.",
            "nullable": true
          },
          "PrimaryImageTag": {
            "type": "string",
            "description": "Gets or sets the primary image tag.",
            "nullable": true
          },
          "ImageBlurHashes": {
            "type": "object",
            "properties": {
              "Primary": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "Art": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "Backdrop": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "Banner": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "Logo": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "Thumb": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "Disc": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "Box": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "Screenshot": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "Menu": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "Chapter": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "BoxRear": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "Profile": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              }
            },
            "description": "Gets or sets the primary image blurhash.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "This is used by the api to get information about a Person within a BaseItem."
      },
      "NameGuidPair": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "nullable": true
          },
          "Id": {
            "type": "string",
            "format": "uuid"
          }
        },
        "additionalProperties": false
      },
      "UserItemDataDto": {
        "type": "object",
        "properties": {
          "Rating": {
            "type": "number",
            "description": "Gets or sets the rating.",
            "format": "double",
            "nullable": true
          },
          "PlayedPercentage": {
            "type": "number",
            "description": "Gets or sets the played percentage.",
            "format": "double",
            "nullable": true
          },
          "UnplayedItemCount": {
            "type": "integer",
            "description": "Gets or sets the unplayed item count.",
            "format": "int32",
            "nullable": true
          },
          "PlaybackPositionTicks": {
            "type": "integer",
            "description": "Gets or sets the playback position ticks.",
            "format": "int64"
          },
          "PlayCount": {
            "type": "integer",
            "description": "Gets or sets the play count.",
            "format": "int32"
          },
          "IsFavorite": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is favorite."
          },
          "Likes": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this MediaBrowser.Model.Dto.UserItemDataDto is likes.",
            "nullable": true
          },
          "LastPlayedDate": {
            "type": "string",
            "description": "Gets or sets the last played date.",
            "format": "date-time",
            "nullable": true
          },
          "Played": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this MediaBrowser.Model.Dto.UserItemDataDto is played."
          },
          "Key": {
            "type": "string",
            "description": "Gets or sets the key.",
            "nullable": true
          },
          "ItemId": {
            "type": "string",
            "description": "Gets or sets the item identifier.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Class UserItemDataDto."
      },
      "DayOfWeek": {
        "enum": [
          "Sunday",
          "Monday",
          "Tuesday",
          "Wednesday",
          "Thursday",
          "Friday",
          "Saturday"
        ],
        "type": "string"
      },
      "ChapterInfo": {
        "type": "object",
        "properties": {
          "StartPositionTicks": {
            "type": "integer",
            "description": "Gets or sets the start position ticks.",
            "format": "int64"
          },
          "Name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "ImagePath": {
            "type": "string",
            "description": "Gets or sets the image path.",
            "nullable": true
          },
          "ImageDateModified": {
            "type": "string",
            "format": "date-time"
          },
          "ImageTag": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Class ChapterInfo."
      },
      "LocationType": {
        "enum": [
          "FileSystem",
          "Remote",
          "Virtual",
          "Offline"
        ],
        "type": "string",
        "description": "Enum LocationType."
      },
      "MetadataField": {
        "enum": [
          "Cast",
          "Genres",
          "ProductionLocations",
          "Studios",
          "Tags",
          "Name",
          "Overview",
          "Runtime",
          "OfficialRating"
        ],
        "type": "string",
        "description": "Enum MetadataFields."
      },
      "ImageOrientation": {
        "enum": [
          "TopLeft",
          "TopRight",
          "BottomRight",
          "BottomLeft",
          "LeftTop",
          "RightTop",
          "RightBottom",
          "LeftBottom"
        ],
        "type": "string"
      },
      "ChannelType": {
        "enum": [
          "TV",
          "Radio"
        ],
        "type": "string",
        "description": "Enum ChannelType."
      },
      "ProgramAudio": {
        "enum": [
          "Mono",
          "Stereo",
          "Dolby",
          "DolbyDigital",
          "Thx",
          "Atmos"
        ],
        "type": "string"
      },
      "BaseItemDto": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "OriginalTitle": {
            "type": "string",
            "nullable": true
          },
          "ServerId": {
            "type": "string",
            "description": "Gets or sets the server identifier.",
            "nullable": true
          },
          "Id": {
            "type": "string",
            "description": "Gets or sets the id.",
            "format": "uuid"
          },
          "Etag": {
            "type": "string",
            "description": "Gets or sets the etag.",
            "nullable": true
          },
          "SourceType": {
            "type": "string",
            "description": "Gets or sets the type of the source.",
            "nullable": true
          },
          "PlaylistItemId": {
            "type": "string",
            "description": "Gets or sets the playlist item identifier.",
            "nullable": true
          },
          "DateCreated": {
            "type": "string",
            "description": "Gets or sets the date created.",
            "format": "date-time",
            "nullable": true
          },
          "DateLastMediaAdded": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "ExtraType": {
            "type": "string",
            "nullable": true
          },
          "AirsBeforeSeasonNumber": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "AirsAfterSeasonNumber": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "AirsBeforeEpisodeNumber": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "CanDelete": {
            "type": "boolean",
            "nullable": true
          },
          "CanDownload": {
            "type": "boolean",
            "nullable": true
          },
          "HasSubtitles": {
            "type": "boolean",
            "nullable": true
          },
          "PreferredMetadataLanguage": {
            "type": "string",
            "nullable": true
          },
          "PreferredMetadataCountryCode": {
            "type": "string",
            "nullable": true
          },
          "SupportsSync": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether [supports synchronize].",
            "nullable": true
          },
          "Container": {
            "type": "string",
            "nullable": true
          },
          "SortName": {
            "type": "string",
            "description": "Gets or sets the name of the sort.",
            "nullable": true
          },
          "ForcedSortName": {
            "type": "string",
            "nullable": true
          },
          "Video3DFormat": {
            "$ref": "#/components/schemas/Video3DFormat"
          },
          "PremiereDate": {
            "type": "string",
            "description": "Gets or sets the premiere date.",
            "format": "date-time",
            "nullable": true
          },
          "ExternalUrls": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExternalUrl"
            },
            "description": "Gets or sets the external urls.",
            "nullable": true
          },
          "MediaSources": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaSourceInfo"
            },
            "description": "Gets or sets the media versions.",
            "nullable": true
          },
          "CriticRating": {
            "type": "number",
            "description": "Gets or sets the critic rating.",
            "format": "float",
            "nullable": true
          },
          "ProductionLocations": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "Path": {
            "type": "string",
            "description": "Gets or sets the path.",
            "nullable": true
          },
          "EnableMediaSourceDisplay": {
            "type": "boolean",
            "nullable": true
          },
          "OfficialRating": {
            "type": "string",
            "description": "Gets or sets the official rating.",
            "nullable": true
          },
          "CustomRating": {
            "type": "string",
            "description": "Gets or sets the custom rating.",
            "nullable": true
          },
          "ChannelId": {
            "type": "string",
            "description": "Gets or sets the channel identifier.",
            "format": "uuid",
            "nullable": true
          },
          "ChannelName": {
            "type": "string",
            "nullable": true
          },
          "Overview": {
            "type": "string",
            "description": "Gets or sets the overview.",
            "nullable": true
          },
          "Taglines": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the taglines.",
            "nullable": true
          },
          "Genres": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the genres.",
            "nullable": true
          },
          "CommunityRating": {
            "type": "number",
            "description": "Gets or sets the community rating.",
            "format": "float",
            "nullable": true
          },
          "CumulativeRunTimeTicks": {
            "type": "integer",
            "description": "Gets or sets the cumulative run time ticks.",
            "format": "int64",
            "nullable": true
          },
          "RunTimeTicks": {
            "type": "integer",
            "description": "Gets or sets the run time ticks.",
            "format": "int64",
            "nullable": true
          },
          "PlayAccess": {
            "$ref": "#/components/schemas/PlayAccess"
          },
          "AspectRatio": {
            "type": "string",
            "description": "Gets or sets the aspect ratio.",
            "nullable": true
          },
          "ProductionYear": {
            "type": "integer",
            "description": "Gets or sets the production year.",
            "format": "int32",
            "nullable": true
          },
          "IsPlaceHolder": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is place holder.",
            "nullable": true
          },
          "Number": {
            "type": "string",
            "description": "Gets or sets the number.",
            "nullable": true
          },
          "ChannelNumber": {
            "type": "string",
            "nullable": true
          },
          "IndexNumber": {
            "type": "integer",
            "description": "Gets or sets the index number.",
            "format": "int32",
            "nullable": true
          },
          "IndexNumberEnd": {
            "type": "integer",
            "description": "Gets or sets the index number end.",
            "format": "int32",
            "nullable": true
          },
          "ParentIndexNumber": {
            "type": "integer",
            "description": "Gets or sets the parent index number.",
            "format": "int32",
            "nullable": true
          },
          "RemoteTrailers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaUrl"
            },
            "description": "Gets or sets the trailer urls.",
            "nullable": true
          },
          "ProviderIds": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Gets or sets the provider ids.",
            "nullable": true
          },
          "IsHD": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is HD.",
            "nullable": true
          },
          "IsFolder": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is folder.",
            "nullable": true
          },
          "ParentId": {
            "type": "string",
            "description": "Gets or sets the parent id.",
            "format": "uuid",
            "nullable": true
          },
          "Type": {
            "type": "string",
            "description": "Gets or sets the type.",
            "nullable": true
          },
          "People": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BaseItemPerson"
            },
            "description": "Gets or sets the people.",
            "nullable": true
          },
          "Studios": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NameGuidPair"
            },
            "description": "Gets or sets the studios.",
            "nullable": true
          },
          "GenreItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NameGuidPair"
            },
            "nullable": true
          },
          "ParentLogoItemId": {
            "type": "string",
            "description": "If the item does not have a logo, this will hold the Id of the Parent that has one.",
            "nullable": true
          },
          "ParentBackdropItemId": {
            "type": "string",
            "description": "If the item does not have any backdrops, this will hold the Id of the Parent that has one.",
            "nullable": true
          },
          "ParentBackdropImageTags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the parent backdrop image tags.",
            "nullable": true
          },
          "LocalTrailerCount": {
            "type": "integer",
            "description": "Gets or sets the local trailer count.",
            "format": "int32",
            "nullable": true
          },
          "UserData": {
            "$ref": "#/components/schemas/UserItemDataDto"
          },
          "RecursiveItemCount": {
            "type": "integer",
            "description": "Gets or sets the recursive item count.",
            "format": "int32",
            "nullable": true
          },
          "ChildCount": {
            "type": "integer",
            "description": "Gets or sets the child count.",
            "format": "int32",
            "nullable": true
          },
          "SeriesName": {
            "type": "string",
            "description": "Gets or sets the name of the series.",
            "nullable": true
          },
          "SeriesId": {
            "type": "string",
            "description": "Gets or sets the series id.",
            "format": "uuid",
            "nullable": true
          },
          "SeasonId": {
            "type": "string",
            "description": "Gets or sets the season identifier.",
            "format": "uuid",
            "nullable": true
          },
          "SpecialFeatureCount": {
            "type": "integer",
            "description": "Gets or sets the special feature count.",
            "format": "int32",
            "nullable": true
          },
          "DisplayPreferencesId": {
            "type": "string",
            "description": "Gets or sets the display preferences id.",
            "nullable": true
          },
          "Status": {
            "type": "string",
            "description": "Gets or sets the status.",
            "nullable": true
          },
          "AirTime": {
            "type": "string",
            "description": "Gets or sets the air time.",
            "nullable": true
          },
          "AirDays": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DayOfWeek"
            },
            "description": "Gets or sets the air days.",
            "nullable": true
          },
          "Tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the tags.",
            "nullable": true
          },
          "PrimaryImageAspectRatio": {
            "type": "number",
            "description": "Gets or sets the primary image aspect ratio, after image enhancements.",
            "format": "double",
            "nullable": true
          },
          "Artists": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the artists.",
            "nullable": true
          },
          "ArtistItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NameGuidPair"
            },
            "description": "Gets or sets the artist items.",
            "nullable": true
          },
          "Album": {
            "type": "string",
            "description": "Gets or sets the album.",
            "nullable": true
          },
          "CollectionType": {
            "type": "string",
            "description": "Gets or sets the type of the collection.",
            "nullable": true
          },
          "DisplayOrder": {
            "type": "string",
            "description": "Gets or sets the display order.",
            "nullable": true
          },
          "AlbumId": {
            "type": "string",
            "description": "Gets or sets the album id.",
            "format": "uuid",
            "nullable": true
          },
          "AlbumPrimaryImageTag": {
            "type": "string",
            "description": "Gets or sets the album image tag.",
            "nullable": true
          },
          "SeriesPrimaryImageTag": {
            "type": "string",
            "description": "Gets or sets the series primary image tag.",
            "nullable": true
          },
          "AlbumArtist": {
            "type": "string",
            "description": "Gets or sets the album artist.",
            "nullable": true
          },
          "AlbumArtists": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NameGuidPair"
            },
            "description": "Gets or sets the album artists.",
            "nullable": true
          },
          "SeasonName": {
            "type": "string",
            "description": "Gets or sets the name of the season.",
            "nullable": true
          },
          "MediaStreams": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaStream"
            },
            "description": "Gets or sets the media streams.",
            "nullable": true
          },
          "VideoType": {
            "$ref": "#/components/schemas/VideoType"
          },
          "PartCount": {
            "type": "integer",
            "description": "Gets or sets the part count.",
            "format": "int32",
            "nullable": true
          },
          "MediaSourceCount": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "ImageTags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Gets or sets the image tags.",
            "nullable": true
          },
          "BackdropImageTags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the backdrop image tags.",
            "nullable": true
          },
          "ScreenshotImageTags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the screenshot image tags.",
            "nullable": true
          },
          "ParentLogoImageTag": {
            "type": "string",
            "description": "Gets or sets the parent logo image tag.",
            "nullable": true
          },
          "ParentArtItemId": {
            "type": "string",
            "description": "If the item does not have a art, this will hold the Id of the Parent that has one.",
            "nullable": true
          },
          "ParentArtImageTag": {
            "type": "string",
            "description": "Gets or sets the parent art image tag.",
            "nullable": true
          },
          "SeriesThumbImageTag": {
            "type": "string",
            "description": "Gets or sets the series thumb image tag.",
            "nullable": true
          },
          "ImageBlurHashes": {
            "type": "object",
            "properties": {
              "Primary": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "Art": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "Backdrop": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "Banner": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "Logo": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "Thumb": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "Disc": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "Box": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "Screenshot": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "Menu": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "Chapter": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "BoxRear": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "Profile": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              }
            },
            "description": "Gets or sets the blurhashes for the image tags.\r\nMaps image type to dictionary mapping image tag to blurhash value.",
            "nullable": true
          },
          "SeriesStudio": {
            "type": "string",
            "description": "Gets or sets the series studio.",
            "nullable": true
          },
          "ParentThumbItemId": {
            "type": "string",
            "description": "Gets or sets the parent thumb item id.",
            "nullable": true
          },
          "ParentThumbImageTag": {
            "type": "string",
            "description": "Gets or sets the parent thumb image tag.",
            "nullable": true
          },
          "ParentPrimaryImageItemId": {
            "type": "string",
            "description": "Gets or sets the parent primary image item identifier.",
            "nullable": true
          },
          "ParentPrimaryImageTag": {
            "type": "string",
            "description": "Gets or sets the parent primary image tag.",
            "nullable": true
          },
          "Chapters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ChapterInfo"
            },
            "description": "Gets or sets the chapters.",
            "nullable": true
          },
          "LocationType": {
            "$ref": "#/components/schemas/LocationType"
          },
          "IsoType": {
            "$ref": "#/components/schemas/IsoType"
          },
          "MediaType": {
            "type": "string",
            "description": "Gets or sets the type of the media.",
            "nullable": true
          },
          "EndDate": {
            "type": "string",
            "description": "Gets or sets the end date.",
            "format": "date-time",
            "nullable": true
          },
          "LockedFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MetadataField"
            },
            "description": "Gets or sets the locked fields.",
            "nullable": true
          },
          "TrailerCount": {
            "type": "integer",
            "description": "Gets or sets the trailer count.",
            "format": "int32",
            "nullable": true
          },
          "MovieCount": {
            "type": "integer",
            "description": "Gets or sets the movie count.",
            "format": "int32",
            "nullable": true
          },
          "SeriesCount": {
            "type": "integer",
            "description": "Gets or sets the series count.",
            "format": "int32",
            "nullable": true
          },
          "ProgramCount": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "EpisodeCount": {
            "type": "integer",
            "description": "Gets or sets the episode count.",
            "format": "int32",
            "nullable": true
          },
          "SongCount": {
            "type": "integer",
            "description": "Gets or sets the song count.",
            "format": "int32",
            "nullable": true
          },
          "AlbumCount": {
            "type": "integer",
            "description": "Gets or sets the album count.",
            "format": "int32",
            "nullable": true
          },
          "ArtistCount": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "MusicVideoCount": {
            "type": "integer",
            "description": "Gets or sets the music video count.",
            "format": "int32",
            "nullable": true
          },
          "LockData": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether [enable internet providers].",
            "nullable": true
          },
          "Width": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Height": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "CameraMake": {
            "type": "string",
            "nullable": true
          },
          "CameraModel": {
            "type": "string",
            "nullable": true
          },
          "Software": {
            "type": "string",
            "nullable": true
          },
          "ExposureTime": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "FocalLength": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "ImageOrientation": {
            "$ref": "#/components/schemas/ImageOrientation"
          },
          "Aperture": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "ShutterSpeed": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "Latitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "Longitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "Altitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "IsoSpeedRating": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "SeriesTimerId": {
            "type": "string",
            "description": "Gets or sets the series timer identifier.",
            "nullable": true
          },
          "ProgramId": {
            "type": "string",
            "description": "Gets or sets the program identifier.",
            "nullable": true
          },
          "ChannelPrimaryImageTag": {
            "type": "string",
            "description": "Gets or sets the channel primary image tag.",
            "nullable": true
          },
          "StartDate": {
            "type": "string",
            "description": "The start date of the recording, in UTC.",
            "format": "date-time",
            "nullable": true
          },
          "CompletionPercentage": {
            "type": "number",
            "description": "Gets or sets the completion percentage.",
            "format": "double",
            "nullable": true
          },
          "IsRepeat": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is repeat.",
            "nullable": true
          },
          "EpisodeTitle": {
            "type": "string",
            "description": "Gets or sets the episode title.",
            "nullable": true
          },
          "ChannelType": {
            "$ref": "#/components/schemas/ChannelType"
          },
          "Audio": {
            "$ref": "#/components/schemas/ProgramAudio"
          },
          "IsMovie": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is movie.",
            "nullable": true
          },
          "IsSports": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is sports.",
            "nullable": true
          },
          "IsSeries": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is series.",
            "nullable": true
          },
          "IsLive": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is live.",
            "nullable": true
          },
          "IsNews": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is news.",
            "nullable": true
          },
          "IsKids": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is kids.",
            "nullable": true
          },
          "IsPremiere": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is premiere.",
            "nullable": true
          },
          "TimerId": {
            "type": "string",
            "description": "Gets or sets the timer identifier.",
            "nullable": true
          },
          "CurrentProgram": {
            "$ref": "#/components/schemas/BaseItemDto"
          }
        },
        "additionalProperties": false,
        "description": "This is strictly used as a data transfer object from the api layer.\r\nThis holds information about a BaseItem in a format that is convenient for the client."
      },
      "BaseItemDtoQueryResult": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BaseItemDto"
            },
            "description": "Gets or sets the items.",
            "nullable": true
          },
          "TotalRecordCount": {
            "type": "integer",
            "description": "The total number of records available.",
            "format": "int32"
          },
          "StartIndex": {
            "type": "integer",
            "description": "The index of the first record in Items.",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "EncodingContext": {
        "enum": [
          "Streaming",
          "Static"
        ],
        "type": "string"
      },
      "BrandingOptions": {
        "type": "object",
        "properties": {
          "LoginDisclaimer": {
            "type": "string",
            "description": "Gets or sets the login disclaimer.",
            "nullable": true
          },
          "CustomCss": {
            "type": "string",
            "description": "Gets or sets the custom CSS.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ChannelMediaType": {
        "enum": [
          "Audio",
          "Video",
          "Photo"
        ],
        "type": "string"
      },
      "ChannelMediaContentType": {
        "enum": [
          "Clip",
          "Podcast",
          "Trailer",
          "Movie",
          "Episode",
          "Song",
          "MovieExtra",
          "TvExtra"
        ],
        "type": "string"
      },
      "ChannelItemSortField": {
        "enum": [
          "Name",
          "CommunityRating",
          "PremiereDate",
          "DateCreated",
          "Runtime",
          "PlayCount",
          "CommunityPlayCount"
        ],
        "type": "string"
      },
      "ChannelFeatures": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "Id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "nullable": true
          },
          "CanSearch": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance can search."
          },
          "MediaTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ChannelMediaType"
            },
            "description": "Gets or sets the media types.",
            "nullable": true
          },
          "ContentTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ChannelMediaContentType"
            },
            "description": "Gets or sets the content types.",
            "nullable": true
          },
          "MaxPageSize": {
            "type": "integer",
            "description": "Represents the maximum number of records the channel allows retrieving at a time.",
            "format": "int32",
            "nullable": true
          },
          "AutoRefreshLevels": {
            "type": "integer",
            "description": "Gets or sets the automatic refresh levels.",
            "format": "int32",
            "nullable": true
          },
          "DefaultSortFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ChannelItemSortField"
            },
            "description": "Gets or sets the default sort orders.",
            "nullable": true
          },
          "SupportsSortOrderToggle": {
            "type": "boolean",
            "description": "Indicates if a sort ascending/descending toggle is supported or not."
          },
          "SupportsLatestMedia": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether [supports latest media]."
          },
          "CanFilter": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance can filter."
          },
          "SupportsContentDownloading": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether [supports content downloading]."
          }
        },
        "additionalProperties": false
      },
      "CollectionCreationResult": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "format": "uuid"
          }
        },
        "additionalProperties": false
      },
      "Version": {
        "type": "object",
        "properties": {
          "Major": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "Minor": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "Build": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "Revision": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "MajorRevision": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "MinorRevision": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "ImageSavingConvention": {
        "enum": [
          "Legacy",
          "Compatible"
        ],
        "type": "string"
      },
      "MetadataOptions": {
        "type": "object",
        "properties": {
          "ItemType": {
            "type": "string",
            "nullable": true
          },
          "DisabledMetadataSavers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "LocalMetadataReaderOrder": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "DisabledMetadataFetchers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "MetadataFetcherOrder": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "DisabledImageFetchers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "ImageFetcherOrder": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Class MetadataOptions."
      },
      "NameValuePair": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "Value": {
            "type": "string",
            "description": "Gets or sets the value.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RepositoryInfo": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "Url": {
            "type": "string",
            "description": "Gets or sets the URL.",
            "nullable": true
          },
          "Enabled": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the repository is enabled."
          }
        },
        "additionalProperties": false,
        "description": "Class RepositoryInfo."
      },
      "PathSubstitution": {
        "type": "object",
        "properties": {
          "From": {
            "type": "string",
            "description": "Gets or sets the value to substitute.",
            "nullable": true
          },
          "To": {
            "type": "string",
            "description": "Gets or sets the value to substitution with.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Defines the MediaBrowser.Model.Configuration.PathSubstitution."
      },
      "ServerConfiguration": {
        "type": "object",
        "properties": {
          "LogFileRetentionDays": {
            "type": "integer",
            "description": "Gets or sets the number of days we should retain log files.",
            "format": "int32"
          },
          "IsStartupWizardCompleted": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is first run."
          },
          "CachePath": {
            "type": "string",
            "description": "Gets or sets the cache path.",
            "nullable": true
          },
          "PreviousVersion": {
            "$ref": "#/components/schemas/Version"
          },
          "PreviousVersionStr": {
            "type": "string",
            "description": "Gets or sets the stringified PreviousVersion to be stored/loaded,\r\nbecause System.Version itself isn't xml-serializable.",
            "nullable": true
          },
          "EnableUPnP": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether to enable automatic port forwarding."
          },
          "EnableMetrics": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether to enable prometheus metrics exporting."
          },
          "PublicPort": {
            "type": "integer",
            "description": "Gets or sets the public mapped port.",
            "format": "int32"
          },
          "UPnPCreateHttpPortMap": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the http port should be mapped as part of UPnP automatic port forwarding."
          },
          "UDPPortRange": {
            "type": "string",
            "description": "Gets or sets client udp port range.",
            "nullable": true
          },
          "EnableIPV6": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether IPV6 capability is enabled."
          },
          "EnableIPV4": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether IPV4 capability is enabled."
          },
          "EnableSSDPTracing": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether detailed ssdp logs are sent to the console/log.\r\n\"Emby.Dlna\": \"Debug\" must be set in logging.default.json for this property to work."
          },
          "SSDPTracingFilter": {
            "type": "string",
            "description": "Gets or sets a value indicating whether an IP address is to be used to filter the detailed ssdp logs that are being sent to the console/log.\r\nIf the setting \"Emby.Dlna\": \"Debug\" msut be set in logging.default.json for this property to work.",
            "nullable": true
          },
          "UDPSendCount": {
            "type": "integer",
            "description": "Gets or sets the number of times SSDP UDP messages are sent.",
            "format": "int32"
          },
          "UDPSendDelay": {
            "type": "integer",
            "description": "Gets or sets the delay between each groups of SSDP messages (in ms).",
            "format": "int32"
          },
          "IgnoreVirtualInterfaces": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether address names that match MediaBrowser.Model.Configuration.ServerConfiguration.VirtualInterfaceNames should be Ignore for the purposes of binding."
          },
          "VirtualInterfaceNames": {
            "type": "string",
            "description": "Gets or sets a value indicating the interfaces that should be ignored. The list can be comma separated. <seealso cref=\"P:MediaBrowser.Model.Configuration.ServerConfiguration.IgnoreVirtualInterfaces\" />.",
            "nullable": true
          },
          "GatewayMonitorPeriod": {
            "type": "integer",
            "description": "Gets or sets the time (in seconds) between the pings of SSDP gateway monitor.",
            "format": "int32"
          },
          "EnableMultiSocketBinding": {
            "type": "boolean",
            "description": "Gets a value indicating whether multi-socket binding is available.",
            "readOnly": true
          },
          "TrustAllIP6Interfaces": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether all IPv6 interfaces should be treated as on the internal network.\r\nDepending on the address range implemented ULA ranges might not be used."
          },
          "HDHomerunPortRange": {
            "type": "string",
            "description": "Gets or sets the ports that HDHomerun uses.",
            "nullable": true
          },
          "PublishedServerUriBySubnet": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets PublishedServerUri to advertise for specific subnets.",
            "nullable": true
          },
          "AutoDiscoveryTracing": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether Autodiscovery tracing is enabled."
          },
          "AutoDiscovery": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether Autodiscovery is enabled."
          },
          "PublicHttpsPort": {
            "type": "integer",
            "description": "Gets or sets the public HTTPS port.",
            "format": "int32"
          },
          "HttpServerPortNumber": {
            "type": "integer",
            "description": "Gets or sets the HTTP server port number.",
            "format": "int32"
          },
          "HttpsPortNumber": {
            "type": "integer",
            "description": "Gets or sets the HTTPS server port number.",
            "format": "int32"
          },
          "EnableHttps": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether to use HTTPS."
          },
          "EnableNormalizedItemByNameIds": {
            "type": "boolean"
          },
          "CertificatePath": {
            "type": "string",
            "description": "Gets or sets the filesystem path of an X.509 certificate to use for SSL.",
            "nullable": true
          },
          "CertificatePassword": {
            "type": "string",
            "description": "Gets or sets the password required to access the X.509 certificate data in the file specified by MediaBrowser.Model.Configuration.ServerConfiguration.CertificatePath.",
            "nullable": true
          },
          "IsPortAuthorized": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is port authorized."
          },
          "QuickConnectAvailable": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether quick connect is available for use on this server."
          },
          "EnableRemoteAccess": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether access outside of the LAN is permitted."
          },
          "EnableCaseSensitiveItemIds": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether [enable case sensitive item ids]."
          },
          "DisableLiveTvChannelUserDataName": {
            "type": "boolean"
          },
          "MetadataPath": {
            "type": "string",
            "description": "Gets or sets the metadata path.",
            "nullable": true
          },
          "MetadataNetworkPath": {
            "type": "string",
            "nullable": true
          },
          "PreferredMetadataLanguage": {
            "type": "string",
            "description": "Gets or sets the preferred metadata language.",
            "nullable": true
          },
          "MetadataCountryCode": {
            "type": "string",
            "description": "Gets or sets the metadata country code.",
            "nullable": true
          },
          "SortReplaceCharacters": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets characters to be replaced with a ' ' in strings to create a sort name.",
            "nullable": true
          },
          "SortRemoveCharacters": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets characters to be removed from strings to create a sort name.",
            "nullable": true
          },
          "SortRemoveWords": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets words to be removed from strings to create a sort name.",
            "nullable": true
          },
          "MinResumePct": {
            "type": "integer",
            "description": "Gets or sets the minimum percentage of an item that must be played in order for playstate to be updated.",
            "format": "int32"
          },
          "MaxResumePct": {
            "type": "integer",
            "description": "Gets or sets the maximum percentage of an item that can be played while still saving playstate. If this percentage is crossed playstate will be reset to the beginning and the item will be marked watched.",
            "format": "int32"
          },
          "MinResumeDurationSeconds": {
            "type": "integer",
            "description": "Gets or sets the minimum duration that an item must have in order to be eligible for playstate updates..",
            "format": "int32"
          },
          "MinAudiobookResume": {
            "type": "integer",
            "description": "Gets or sets the minimum minutes of a book that must be played in order for playstate to be updated.",
            "format": "int32"
          },
          "MaxAudiobookResume": {
            "type": "integer",
            "description": "Gets or sets the remaining minutes of a book that can be played while still saving playstate. If this percentage is crossed playstate will be reset to the beginning and the item will be marked watched.",
            "format": "int32"
          },
          "LibraryMonitorDelay": {
            "type": "integer",
            "description": "Gets or sets the delay in seconds that we will wait after a file system change to try and discover what has been added/removed\r\nSome delay is necessary with some items because their creation is not atomic.  It involves the creation of several\r\ndifferent directories and files.",
            "format": "int32"
          },
          "EnableDashboardResponseCaching": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether [enable dashboard response caching].\r\nAllows potential contributors without visual studio to modify production dashboard code and test changes."
          },
          "ImageSavingConvention": {
            "$ref": "#/components/schemas/ImageSavingConvention"
          },
          "MetadataOptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MetadataOptions"
            },
            "nullable": true
          },
          "SkipDeserializationForBasicTypes": {
            "type": "boolean"
          },
          "ServerName": {
            "type": "string",
            "nullable": true
          },
          "BaseUrl": {
            "type": "string",
            "nullable": true
          },
          "UICulture": {
            "type": "string",
            "nullable": true
          },
          "SaveMetadataHidden": {
            "type": "boolean"
          },
          "ContentTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NameValuePair"
            },
            "nullable": true
          },
          "RemoteClientBitrateLimit": {
            "type": "integer",
            "format": "int32"
          },
          "EnableFolderView": {
            "type": "boolean"
          },
          "EnableGroupingIntoCollections": {
            "type": "boolean"
          },
          "DisplaySpecialsWithinSeasons": {
            "type": "boolean"
          },
          "LocalNetworkSubnets": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the subnets that are deemed to make up the LAN.",
            "nullable": true
          },
          "LocalNetworkAddresses": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the interface addresses which Jellyfin will bind to. If empty, all interfaces will be used.",
            "nullable": true
          },
          "CodecsUsed": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "PluginRepositories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RepositoryInfo"
            },
            "nullable": true
          },
          "EnableExternalContentInSuggestions": {
            "type": "boolean"
          },
          "RequireHttps": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the server should force connections over HTTPS."
          },
          "EnableNewOmdbSupport": {
            "type": "boolean"
          },
          "RemoteIPFilter": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the filter for remote IP connectivity. Used in conjuntion with <seealso cref=\"P:MediaBrowser.Model.Configuration.ServerConfiguration.IsRemoteIPFilterBlacklist\" />.",
            "nullable": true
          },
          "IsRemoteIPFilterBlacklist": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether <seealso cref=\"P:MediaBrowser.Model.Configuration.ServerConfiguration.RemoteIPFilter\" /> contains a blacklist or a whitelist. Default is a whitelist."
          },
          "ImageExtractionTimeoutMs": {
            "type": "integer",
            "format": "int32"
          },
          "PathSubstitutions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PathSubstitution"
            },
            "nullable": true
          },
          "EnableSimpleArtistDetection": {
            "type": "boolean"
          },
          "UninstalledPlugins": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "EnableSlowResponseWarning": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether slow server responses should be logged as a warning."
          },
          "SlowResponseThresholdMs": {
            "type": "integer",
            "description": "Gets or sets the threshold for the slow response time warning in ms.",
            "format": "int64"
          },
          "CorsHosts": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the cors hosts.",
            "nullable": true
          },
          "KnownProxies": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the known proxies.",
            "nullable": true
          },
          "ActivityLogRetentionDays": {
            "type": "integer",
            "description": "Gets or sets the number of days we should retain activity logs.",
            "format": "int32",
            "nullable": true
          },
          "LibraryScanFanoutConcurrency": {
            "type": "integer",
            "description": "Gets or sets the how the library scan fans out.",
            "format": "int32"
          },
          "LibraryMetadataRefreshConcurrency": {
            "type": "integer",
            "description": "Gets or sets the how many metadata refreshes can run concurrently.",
            "format": "int32"
          },
          "RemoveOldPlugins": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether older plugins should automatically be deleted from the plugin folder."
          },
          "DisablePluginImages": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether plugin image should be disabled."
          }
        },
        "additionalProperties": false,
        "description": "Represents the server configuration."
      },
      "MediaEncoderPathDto": {
        "type": "object",
        "properties": {
          "Path": {
            "type": "string",
            "description": "Gets or sets media encoder path.",
            "nullable": true
          },
          "PathType": {
            "type": "string",
            "description": "Gets or sets media encoder path type.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Media Encoder Path Dto."
      },
      "ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": { }
      },
      "ConfigurationPageType": {
        "enum": [
          "PluginConfiguration",
          "None"
        ],
        "type": "string",
        "description": "Enum ConfigurationPageType."
      },
      "ConfigurationPageInfo": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "EnableInMainMenu": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the configurations page is enabled in the main menu."
          },
          "MenuSection": {
            "type": "string",
            "description": "Gets or sets the menu section.",
            "nullable": true
          },
          "MenuIcon": {
            "type": "string",
            "description": "Gets or sets the menu icon.",
            "nullable": true
          },
          "DisplayName": {
            "type": "string",
            "description": "Gets or sets the display name.",
            "nullable": true
          },
          "ConfigurationPageType": {
            "$ref": "#/components/schemas/ConfigurationPageType"
          },
          "PluginId": {
            "type": "string",
            "description": "Gets or sets the plugin id.",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The configuration page info."
      },
      "GeneralCommandType": {
        "enum": [
          "MoveUp",
          "MoveDown",
          "MoveLeft",
          "MoveRight",
          "PageUp",
          "PageDown",
          "PreviousLetter",
          "NextLetter",
          "ToggleOsd",
          "ToggleContextMenu",
          "Select",
          "Back",
          "TakeScreenshot",
          "SendKey",
          "SendString",
          "GoHome",
          "GoToSettings",
          "VolumeUp",
          "VolumeDown",
          "Mute",
          "Unmute",
          "ToggleMute",
          "SetVolume",
          "SetAudioStreamIndex",
          "SetSubtitleStreamIndex",
          "ToggleFullscreen",
          "DisplayContent",
          "GoToSearch",
          "DisplayMessage",
          "SetRepeatMode",
          "ChannelUp",
          "ChannelDown",
          "Guide",
          "ToggleStats",
          "PlayMediaSource",
          "PlayTrailers",
          "SetShuffleQueue",
          "PlayState",
          "PlayNext",
          "ToggleOsdMenu",
          "Play"
        ],
        "type": "string",
        "description": "This exists simply to identify a set of known commands."
      },
      "HeaderMatchType": {
        "enum": [
          "Equals",
          "Regex",
          "Substring"
        ],
        "type": "string"
      },
      "HttpHeaderInfo": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "nullable": true
          },
          "Value": {
            "type": "string",
            "nullable": true
          },
          "Match": {
            "$ref": "#/components/schemas/HeaderMatchType"
          }
        },
        "additionalProperties": false
      },
      "DeviceIdentification": {
        "type": "object",
        "properties": {
          "FriendlyName": {
            "type": "string",
            "description": "Gets or sets the name of the friendly.",
            "nullable": true
          },
          "ModelNumber": {
            "type": "string",
            "description": "Gets or sets the model number.",
            "nullable": true
          },
          "SerialNumber": {
            "type": "string",
            "description": "Gets or sets the serial number.",
            "nullable": true
          },
          "ModelName": {
            "type": "string",
            "description": "Gets or sets the name of the model.",
            "nullable": true
          },
          "ModelDescription": {
            "type": "string",
            "description": "Gets or sets the model description.",
            "nullable": true
          },
          "ModelUrl": {
            "type": "string",
            "description": "Gets or sets the model URL.",
            "nullable": true
          },
          "Manufacturer": {
            "type": "string",
            "description": "Gets or sets the manufacturer.",
            "nullable": true
          },
          "ManufacturerUrl": {
            "type": "string",
            "description": "Gets or sets the manufacturer URL.",
            "nullable": true
          },
          "Headers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HttpHeaderInfo"
            },
            "description": "Gets or sets the headers.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "XmlAttribute": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets or sets the name of the attribute.",
            "nullable": true
          },
          "Value": {
            "type": "string",
            "description": "Gets or sets the value of the attribute.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Defines the MediaBrowser.Model.Dlna.XmlAttribute."
      },
      "DlnaProfileType": {
        "enum": [
          "Audio",
          "Video",
          "Photo"
        ],
        "type": "string"
      },
      "DirectPlayProfile": {
        "type": "object",
        "properties": {
          "Container": {
            "type": "string",
            "nullable": true
          },
          "AudioCodec": {
            "type": "string",
            "nullable": true
          },
          "VideoCodec": {
            "type": "string",
            "nullable": true
          },
          "Type": {
            "$ref": "#/components/schemas/DlnaProfileType"
          }
        },
        "additionalProperties": false
      },
      "TranscodeSeekInfo": {
        "enum": [
          "Auto",
          "Bytes"
        ],
        "type": "string"
      },
      "TranscodingProfile": {
        "type": "object",
        "properties": {
          "Container": {
            "type": "string",
            "nullable": true
          },
          "Type": {
            "$ref": "#/components/schemas/DlnaProfileType"
          },
          "VideoCodec": {
            "type": "string",
            "nullable": true
          },
          "AudioCodec": {
            "type": "string",
            "nullable": true
          },
          "Protocol": {
            "type": "string",
            "nullable": true
          },
          "EstimateContentLength": {
            "type": "boolean"
          },
          "EnableMpegtsM2TsMode": {
            "type": "boolean"
          },
          "TranscodeSeekInfo": {
            "$ref": "#/components/schemas/TranscodeSeekInfo"
          },
          "CopyTimestamps": {
            "type": "boolean"
          },
          "Context": {
            "$ref": "#/components/schemas/EncodingContext"
          },
          "EnableSubtitlesInManifest": {
            "type": "boolean"
          },
          "MaxAudioChannels": {
            "type": "string",
            "nullable": true
          },
          "MinSegments": {
            "type": "integer",
            "format": "int32"
          },
          "SegmentLength": {
            "type": "integer",
            "format": "int32"
          },
          "BreakOnNonKeyFrames": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ProfileConditionType": {
        "enum": [
          "Equals",
          "NotEquals",
          "LessThanEqual",
          "GreaterThanEqual",
          "EqualsAny"
        ],
        "type": "string"
      },
      "ProfileConditionValue": {
        "enum": [
          "AudioChannels",
          "AudioBitrate",
          "AudioProfile",
          "Width",
          "Height",
          "Has64BitOffsets",
          "PacketLength",
          "VideoBitDepth",
          "VideoBitrate",
          "VideoFramerate",
          "VideoLevel",
          "VideoProfile",
          "VideoTimestamp",
          "IsAnamorphic",
          "RefFrames",
          "NumAudioStreams",
          "NumVideoStreams",
          "IsSecondaryAudio",
          "VideoCodecTag",
          "IsAvc",
          "IsInterlaced",
          "AudioSampleRate",
          "AudioBitDepth"
        ],
        "type": "string"
      },
      "ProfileCondition": {
        "type": "object",
        "properties": {
          "Condition": {
            "$ref": "#/components/schemas/ProfileConditionType"
          },
          "Property": {
            "$ref": "#/components/schemas/ProfileConditionValue"
          },
          "Value": {
            "type": "string",
            "nullable": true
          },
          "IsRequired": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ContainerProfile": {
        "type": "object",
        "properties": {
          "Type": {
            "$ref": "#/components/schemas/DlnaProfileType"
          },
          "Conditions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProfileCondition"
            },
            "nullable": true
          },
          "Container": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CodecType": {
        "enum": [
          "Video",
          "VideoAudio",
          "Audio"
        ],
        "type": "string"
      },
      "CodecProfile": {
        "type": "object",
        "properties": {
          "Type": {
            "$ref": "#/components/schemas/CodecType"
          },
          "Conditions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProfileCondition"
            },
            "nullable": true
          },
          "ApplyConditions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProfileCondition"
            },
            "nullable": true
          },
          "Codec": {
            "type": "string",
            "nullable": true
          },
          "Container": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ResponseProfile": {
        "type": "object",
        "properties": {
          "Container": {
            "type": "string",
            "nullable": true
          },
          "AudioCodec": {
            "type": "string",
            "nullable": true
          },
          "VideoCodec": {
            "type": "string",
            "nullable": true
          },
          "Type": {
            "$ref": "#/components/schemas/DlnaProfileType"
          },
          "OrgPn": {
            "type": "string",
            "nullable": true
          },
          "MimeType": {
            "type": "string",
            "nullable": true
          },
          "Conditions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProfileCondition"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SubtitleProfile": {
        "type": "object",
        "properties": {
          "Format": {
            "type": "string",
            "nullable": true
          },
          "Method": {
            "$ref": "#/components/schemas/SubtitleDeliveryMethod"
          },
          "DidlMode": {
            "type": "string",
            "nullable": true
          },
          "Language": {
            "type": "string",
            "nullable": true
          },
          "Container": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DeviceProfile": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets or sets the Name.",
            "nullable": true
          },
          "Id": {
            "type": "string",
            "description": "Gets or sets the Id.",
            "nullable": true
          },
          "Identification": {
            "$ref": "#/components/schemas/DeviceIdentification"
          },
          "FriendlyName": {
            "type": "string",
            "description": "Gets or sets the FriendlyName.",
            "nullable": true
          },
          "Manufacturer": {
            "type": "string",
            "description": "Gets or sets the Manufacturer.",
            "nullable": true
          },
          "ManufacturerUrl": {
            "type": "string",
            "description": "Gets or sets the ManufacturerUrl.",
            "nullable": true
          },
          "ModelName": {
            "type": "string",
            "description": "Gets or sets the ModelName.",
            "nullable": true
          },
          "ModelDescription": {
            "type": "string",
            "description": "Gets or sets the ModelDescription.",
            "nullable": true
          },
          "ModelNumber": {
            "type": "string",
            "description": "Gets or sets the ModelNumber.",
            "nullable": true
          },
          "ModelUrl": {
            "type": "string",
            "description": "Gets or sets the ModelUrl.",
            "nullable": true
          },
          "SerialNumber": {
            "type": "string",
            "description": "Gets or sets the SerialNumber.",
            "nullable": true
          },
          "EnableAlbumArtInDidl": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether EnableAlbumArtInDidl."
          },
          "EnableSingleAlbumArtLimit": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether EnableSingleAlbumArtLimit."
          },
          "EnableSingleSubtitleLimit": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether EnableSingleSubtitleLimit."
          },
          "SupportedMediaTypes": {
            "type": "string",
            "description": "Gets or sets the SupportedMediaTypes.",
            "nullable": true
          },
          "UserId": {
            "type": "string",
            "description": "Gets or sets the UserId.",
            "nullable": true
          },
          "AlbumArtPn": {
            "type": "string",
            "description": "Gets or sets the AlbumArtPn.",
            "nullable": true
          },
          "MaxAlbumArtWidth": {
            "type": "integer",
            "description": "Gets or sets the MaxAlbumArtWidth.",
            "format": "int32"
          },
          "MaxAlbumArtHeight": {
            "type": "integer",
            "description": "Gets or sets the MaxAlbumArtHeight.",
            "format": "int32"
          },
          "MaxIconWidth": {
            "type": "integer",
            "description": "Gets or sets the MaxIconWidth.",
            "format": "int32",
            "nullable": true
          },
          "MaxIconHeight": {
            "type": "integer",
            "description": "Gets or sets the MaxIconHeight.",
            "format": "int32",
            "nullable": true
          },
          "MaxStreamingBitrate": {
            "type": "integer",
            "description": "Gets or sets the MaxStreamingBitrate.",
            "format": "int32",
            "nullable": true
          },
          "MaxStaticBitrate": {
            "type": "integer",
            "description": "Gets or sets the MaxStaticBitrate.",
            "format": "int32",
            "nullable": true
          },
          "MusicStreamingTranscodingBitrate": {
            "type": "integer",
            "description": "Gets or sets the MusicStreamingTranscodingBitrate.",
            "format": "int32",
            "nullable": true
          },
          "MaxStaticMusicBitrate": {
            "type": "integer",
            "description": "Gets or sets the MaxStaticMusicBitrate.",
            "format": "int32",
            "nullable": true
          },
          "SonyAggregationFlags": {
            "type": "string",
            "description": "Gets or sets the content of the aggregationFlags element in the urn:schemas-sonycom:av namespace.",
            "nullable": true
          },
          "ProtocolInfo": {
            "type": "string",
            "description": "Gets or sets the ProtocolInfo.",
            "nullable": true
          },
          "TimelineOffsetSeconds": {
            "type": "integer",
            "description": "Gets or sets the TimelineOffsetSeconds.",
            "format": "int32"
          },
          "RequiresPlainVideoItems": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether RequiresPlainVideoItems."
          },
          "RequiresPlainFolders": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether RequiresPlainFolders."
          },
          "EnableMSMediaReceiverRegistrar": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether EnableMSMediaReceiverRegistrar."
          },
          "IgnoreTranscodeByteRangeRequests": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether IgnoreTranscodeByteRangeRequests."
          },
          "XmlRootAttributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/XmlAttribute"
            },
            "description": "Gets or sets the XmlRootAttributes.",
            "nullable": true
          },
          "DirectPlayProfiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DirectPlayProfile"
            },
            "description": "Gets or sets the direct play profiles.",
            "nullable": true
          },
          "TranscodingProfiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TranscodingProfile"
            },
            "description": "Gets or sets the transcoding profiles.",
            "nullable": true
          },
          "ContainerProfiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContainerProfile"
            },
            "description": "Gets or sets the ContainerProfiles.",
            "nullable": true
          },
          "CodecProfiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CodecProfile"
            },
            "description": "Gets or sets the CodecProfiles.",
            "nullable": true
          },
          "ResponseProfiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResponseProfile"
            },
            "description": "Gets or sets the ResponseProfiles.",
            "nullable": true
          },
          "SubtitleProfiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubtitleProfile"
            },
            "description": "Gets or sets the SubtitleProfiles.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Defines the MediaBrowser.Model.Dlna.DeviceProfile."
      },
      "ClientCapabilities": {
        "type": "object",
        "properties": {
          "PlayableMediaTypes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "SupportedCommands": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GeneralCommandType"
            },
            "nullable": true
          },
          "SupportsMediaControl": {
            "type": "boolean"
          },
          "SupportsContentUploading": {
            "type": "boolean"
          },
          "MessageCallbackUrl": {
            "type": "string",
            "nullable": true
          },
          "SupportsPersistentIdentifier": {
            "type": "boolean"
          },
          "SupportsSync": {
            "type": "boolean"
          },
          "DeviceProfile": {
            "$ref": "#/components/schemas/DeviceProfile"
          },
          "AppStoreUrl": {
            "type": "string",
            "nullable": true
          },
          "IconUrl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DeviceInfo": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "nullable": true
          },
          "Id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "nullable": true
          },
          "LastUserName": {
            "type": "string",
            "description": "Gets or sets the last name of the user.",
            "nullable": true
          },
          "AppName": {
            "type": "string",
            "description": "Gets or sets the name of the application.",
            "nullable": true
          },
          "AppVersion": {
            "type": "string",
            "description": "Gets or sets the application version.",
            "nullable": true
          },
          "LastUserId": {
            "type": "string",
            "description": "Gets or sets the last user identifier.",
            "format": "uuid"
          },
          "DateLastActivity": {
            "type": "string",
            "description": "Gets or sets the date last modified.",
            "format": "date-time"
          },
          "Capabilities": {
            "$ref": "#/components/schemas/ClientCapabilities"
          },
          "IconUrl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DeviceInfoQueryResult": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DeviceInfo"
            },
            "description": "Gets or sets the items.",
            "nullable": true
          },
          "TotalRecordCount": {
            "type": "integer",
            "description": "The total number of records available.",
            "format": "int32"
          },
          "StartIndex": {
            "type": "integer",
            "description": "The index of the first record in Items.",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "DeviceOptions": {
        "type": "object",
        "properties": {
          "CustomName": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ScrollDirection": {
        "enum": [
          "Horizontal",
          "Vertical"
        ],
        "type": "string",
        "description": "An enum representing the axis that should be scrolled."
      },
      "SortOrder": {
        "enum": [
          "Ascending",
          "Descending"
        ],
        "type": "string",
        "description": "An enum representing the sorting order."
      },
      "DisplayPreferencesDto": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "description": "Gets or sets the user id.",
            "nullable": true
          },
          "ViewType": {
            "type": "string",
            "description": "Gets or sets the type of the view.",
            "nullable": true
          },
          "SortBy": {
            "type": "string",
            "description": "Gets or sets the sort by.",
            "nullable": true
          },
          "IndexBy": {
            "type": "string",
            "description": "Gets or sets the index by.",
            "nullable": true
          },
          "RememberIndexing": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether [remember indexing]."
          },
          "PrimaryImageHeight": {
            "type": "integer",
            "description": "Gets or sets the height of the primary image.",
            "format": "int32"
          },
          "PrimaryImageWidth": {
            "type": "integer",
            "description": "Gets or sets the width of the primary image.",
            "format": "int32"
          },
          "CustomPrefs": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Gets or sets the custom prefs.",
            "nullable": true
          },
          "ScrollDirection": {
            "$ref": "#/components/schemas/ScrollDirection"
          },
          "ShowBackdrop": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether to show backdrops on this item."
          },
          "RememberSorting": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether [remember sorting]."
          },
          "SortOrder": {
            "$ref": "#/components/schemas/SortOrder"
          },
          "ShowSidebar": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether [show sidebar]."
          },
          "Client": {
            "type": "string",
            "description": "Gets or sets the client.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Defines the display preferences for any item that supports them (usually Folders)."
      },
      "DeviceProfileType": {
        "enum": [
          "System",
          "User"
        ],
        "type": "string"
      },
      "DeviceProfileInfo": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "Type": {
            "$ref": "#/components/schemas/DeviceProfileType"
          }
        },
        "additionalProperties": false
      },
      "ControlResponse": {
        "type": "object",
        "properties": {
          "Headers": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "nullable": true,
            "readOnly": true
          },
          "Xml": {
            "type": "string",
            "nullable": true
          },
          "IsSuccessful": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "DefaultDirectoryBrowserInfoDto": {
        "type": "object",
        "properties": {
          "Path": {
            "type": "string",
            "description": "Gets or sets the path.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Default directory browser info."
      },
      "FileSystemEntryType": {
        "enum": [
          "File",
          "Directory",
          "NetworkComputer",
          "NetworkShare"
        ],
        "type": "string",
        "description": "Enum FileSystemEntryType."
      },
      "FileSystemEntryInfo": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets the name.",
            "nullable": true,
            "readOnly": true
          },
          "Path": {
            "type": "string",
            "description": "Gets the path.",
            "nullable": true,
            "readOnly": true
          },
          "Type": {
            "$ref": "#/components/schemas/FileSystemEntryType"
          }
        },
        "additionalProperties": false,
        "description": "Class FileSystemEntryInfo."
      },
      "ValidatePathDto": {
        "type": "object",
        "properties": {
          "ValidateWritable": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether validate if path is writable."
          },
          "Path": {
            "type": "string",
            "description": "Gets or sets the path.",
            "nullable": true
          },
          "IsFile": {
            "type": "boolean",
            "description": "Gets or sets is path file.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Validate path object."
      },
      "QueryFiltersLegacy": {
        "type": "object",
        "properties": {
          "Genres": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "Tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "OfficialRatings": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "Years": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QueryFilters": {
        "type": "object",
        "properties": {
          "Genres": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NameGuidPair"
            },
            "nullable": true
          },
          "Tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ImageFormat": {
        "enum": [
          "Bmp",
          "Gif",
          "Jpg",
          "Png",
          "Webp"
        ],
        "type": "string",
        "description": "Enum ImageOutputFormat."
      },
      "ImageInfo": {
        "type": "object",
        "properties": {
          "ImageType": {
            "$ref": "#/components/schemas/ImageType"
          },
          "ImageIndex": {
            "type": "integer",
            "description": "Gets or sets the index of the image.",
            "format": "int32",
            "nullable": true
          },
          "ImageTag": {
            "type": "string",
            "description": "Gets or sets the image tag.",
            "nullable": true
          },
          "Path": {
            "type": "string",
            "description": "Gets or sets the path.",
            "nullable": true
          },
          "BlurHash": {
            "type": "string",
            "description": "Gets or sets the blurhash.",
            "nullable": true
          },
          "Height": {
            "type": "integer",
            "description": "Gets or sets the height.",
            "format": "int32",
            "nullable": true
          },
          "Width": {
            "type": "integer",
            "description": "Gets or sets the width.",
            "format": "int32",
            "nullable": true
          },
          "Size": {
            "type": "integer",
            "description": "Gets or sets the size.",
            "format": "int64"
          }
        },
        "additionalProperties": false,
        "description": "Class ImageInfo."
      },
      "ImageByNameInfo": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "Theme": {
            "type": "string",
            "description": "Gets or sets the theme.",
            "nullable": true
          },
          "Context": {
            "type": "string",
            "description": "Gets or sets the context.",
            "nullable": true
          },
          "FileLength": {
            "type": "integer",
            "description": "Gets or sets the length of the file.",
            "format": "int64"
          },
          "Format": {
            "type": "string",
            "description": "Gets or sets the format.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExternalIdMediaType": {
        "enum": [
          "Album",
          "AlbumArtist",
          "Artist",
          "BoxSet",
          "Episode",
          "Movie",
          "OtherArtist",
          "Person",
          "ReleaseGroup",
          "Season",
          "Series",
          "Track"
        ],
        "type": "string",
        "description": "The specific media type of an MediaBrowser.Model.Providers.ExternalIdInfo."
      },
      "ExternalIdInfo": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets or sets the display name of the external id provider (IE: IMDB, MusicBrainz, etc).",
            "nullable": true
          },
          "Key": {
            "type": "string",
            "description": "Gets or sets the unique key for this id. This key should be unique across all providers.",
            "nullable": true
          },
          "Type": {
            "$ref": "#/components/schemas/ExternalIdMediaType"
          },
          "UrlFormatString": {
            "type": "string",
            "description": "Gets or sets the URL format string.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents the external id information for serialization to the client."
      },
      "RemoteSearchResult": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "ProviderIds": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Gets or sets the provider ids.",
            "nullable": true
          },
          "ProductionYear": {
            "type": "integer",
            "description": "Gets or sets the year.",
            "format": "int32",
            "nullable": true
          },
          "IndexNumber": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "IndexNumberEnd": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "ParentIndexNumber": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "PremiereDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "ImageUrl": {
            "type": "string",
            "nullable": true
          },
          "SearchProviderName": {
            "type": "string",
            "nullable": true
          },
          "Overview": {
            "type": "string",
            "nullable": true
          },
          "AlbumArtist": {
            "$ref": "#/components/schemas/RemoteSearchResult"
          },
          "Artists": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RemoteSearchResult"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BookInfo": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "Path": {
            "type": "string",
            "description": "Gets or sets the path.",
            "nullable": true
          },
          "MetadataLanguage": {
            "type": "string",
            "description": "Gets or sets the metadata language.",
            "nullable": true
          },
          "MetadataCountryCode": {
            "type": "string",
            "description": "Gets or sets the metadata country code.",
            "nullable": true
          },
          "ProviderIds": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Gets or sets the provider ids.",
            "nullable": true
          },
          "Year": {
            "type": "integer",
            "description": "Gets or sets the year.",
            "format": "int32",
            "nullable": true
          },
          "IndexNumber": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "ParentIndexNumber": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "PremiereDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "IsAutomated": {
            "type": "boolean"
          },
          "SeriesName": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BookInfoRemoteSearchQuery": {
        "type": "object",
        "properties": {
          "SearchInfo": {
            "$ref": "#/components/schemas/BookInfo"
          },
          "ItemId": {
            "type": "string",
            "format": "uuid"
          },
          "SearchProviderName": {
            "type": "string",
            "description": "Will only search within the given provider when set.",
            "nullable": true
          },
          "IncludeDisabledProviders": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether disabled providers should be included."
          }
        },
        "additionalProperties": false
      },
      "BoxSetInfo": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "Path": {
            "type": "string",
            "description": "Gets or sets the path.",
            "nullable": true
          },
          "MetadataLanguage": {
            "type": "string",
            "description": "Gets or sets the metadata language.",
            "nullable": true
          },
          "MetadataCountryCode": {
            "type": "string",
            "description": "Gets or sets the metadata country code.",
            "nullable": true
          },
          "ProviderIds": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Gets or sets the provider ids.",
            "nullable": true
          },
          "Year": {
            "type": "integer",
            "description": "Gets or sets the year.",
            "format": "int32",
            "nullable": true
          },
          "IndexNumber": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "ParentIndexNumber": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "PremiereDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "IsAutomated": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "BoxSetInfoRemoteSearchQuery": {
        "type": "object",
        "properties": {
          "SearchInfo": {
            "$ref": "#/components/schemas/BoxSetInfo"
          },
          "ItemId": {
            "type": "string",
            "format": "uuid"
          },
          "SearchProviderName": {
            "type": "string",
            "description": "Will only search within the given provider when set.",
            "nullable": true
          },
          "IncludeDisabledProviders": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether disabled providers should be included."
          }
        },
        "additionalProperties": false
      },
      "MovieInfo": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "Path": {
            "type": "string",
            "description": "Gets or sets the path.",
            "nullable": true
          },
          "MetadataLanguage": {
            "type": "string",
            "description": "Gets or sets the metadata language.",
            "nullable": true
          },
          "MetadataCountryCode": {
            "type": "string",
            "description": "Gets or sets the metadata country code.",
            "nullable": true
          },
          "ProviderIds": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Gets or sets the provider ids.",
            "nullable": true
          },
          "Year": {
            "type": "integer",
            "description": "Gets or sets the year.",
            "format": "int32",
            "nullable": true
          },
          "IndexNumber": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "ParentIndexNumber": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "PremiereDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "IsAutomated": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "MovieInfoRemoteSearchQuery": {
        "type": "object",
        "properties": {
          "SearchInfo": {
            "$ref": "#/components/schemas/MovieInfo"
          },
          "ItemId": {
            "type": "string",
            "format": "uuid"
          },
          "SearchProviderName": {
            "type": "string",
            "description": "Will only search within the given provider when set.",
            "nullable": true
          },
          "IncludeDisabledProviders": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether disabled providers should be included."
          }
        },
        "additionalProperties": false
      },
      "SongInfo": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "Path": {
            "type": "string",
            "description": "Gets or sets the path.",
            "nullable": true
          },
          "MetadataLanguage": {
            "type": "string",
            "description": "Gets or sets the metadata language.",
            "nullable": true
          },
          "MetadataCountryCode": {
            "type": "string",
            "description": "Gets or sets the metadata country code.",
            "nullable": true
          },
          "ProviderIds": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Gets or sets the provider ids.",
            "nullable": true
          },
          "Year": {
            "type": "integer",
            "description": "Gets or sets the year.",
            "format": "int32",
            "nullable": true
          },
          "IndexNumber": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "ParentIndexNumber": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "PremiereDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "IsAutomated": {
            "type": "boolean"
          },
          "AlbumArtists": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "Album": {
            "type": "string",
            "nullable": true
          },
          "Artists": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AlbumInfo": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "Path": {
            "type": "string",
            "description": "Gets or sets the path.",
            "nullable": true
          },
          "MetadataLanguage": {
            "type": "string",
            "description": "Gets or sets the metadata language.",
            "nullable": true
          },
          "MetadataCountryCode": {
            "type": "string",
            "description": "Gets or sets the metadata country code.",
            "nullable": true
          },
          "ProviderIds": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Gets or sets the provider ids.",
            "nullable": true
          },
          "Year": {
            "type": "integer",
            "description": "Gets or sets the year.",
            "format": "int32",
            "nullable": true
          },
          "IndexNumber": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "ParentIndexNumber": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "PremiereDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "IsAutomated": {
            "type": "boolean"
          },
          "AlbumArtists": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the album artist.",
            "nullable": true
          },
          "ArtistProviderIds": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Gets or sets the artist provider ids.",
            "nullable": true
          },
          "SongInfos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SongInfo"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AlbumInfoRemoteSearchQuery": {
        "type": "object",
        "properties": {
          "SearchInfo": {
            "$ref": "#/components/schemas/AlbumInfo"
          },
          "ItemId": {
            "type": "string",
            "format": "uuid"
          },
          "SearchProviderName": {
            "type": "string",
            "description": "Will only search within the given provider when set.",
            "nullable": true
          },
          "IncludeDisabledProviders": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether disabled providers should be included."
          }
        },
        "additionalProperties": false
      },
      "ArtistInfo": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "Path": {
            "type": "string",
            "description": "Gets or sets the path.",
            "nullable": true
          },
          "MetadataLanguage": {
            "type": "string",
            "description": "Gets or sets the metadata language.",
            "nullable": true
          },
          "MetadataCountryCode": {
            "type": "string",
            "description": "Gets or sets the metadata country code.",
            "nullable": true
          },
          "ProviderIds": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Gets or sets the provider ids.",
            "nullable": true
          },
          "Year": {
            "type": "integer",
            "description": "Gets or sets the year.",
            "format": "int32",
            "nullable": true
          },
          "IndexNumber": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "ParentIndexNumber": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "PremiereDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "IsAutomated": {
            "type": "boolean"
          },
          "SongInfos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SongInfo"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ArtistInfoRemoteSearchQuery": {
        "type": "object",
        "properties": {
          "SearchInfo": {
            "$ref": "#/components/schemas/ArtistInfo"
          },
          "ItemId": {
            "type": "string",
            "format": "uuid"
          },
          "SearchProviderName": {
            "type": "string",
            "description": "Will only search within the given provider when set.",
            "nullable": true
          },
          "IncludeDisabledProviders": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether disabled providers should be included."
          }
        },
        "additionalProperties": false
      },
      "MusicVideoInfo": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "Path": {
            "type": "string",
            "description": "Gets or sets the path.",
            "nullable": true
          },
          "MetadataLanguage": {
            "type": "string",
            "description": "Gets or sets the metadata language.",
            "nullable": true
          },
          "MetadataCountryCode": {
            "type": "string",
            "description": "Gets or sets the metadata country code.",
            "nullable": true
          },
          "ProviderIds": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Gets or sets the provider ids.",
            "nullable": true
          },
          "Year": {
            "type": "integer",
            "description": "Gets or sets the year.",
            "format": "int32",
            "nullable": true
          },
          "IndexNumber": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "ParentIndexNumber": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "PremiereDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "IsAutomated": {
            "type": "boolean"
          },
          "Artists": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MusicVideoInfoRemoteSearchQuery": {
        "type": "object",
        "properties": {
          "SearchInfo": {
            "$ref": "#/components/schemas/MusicVideoInfo"
          },
          "ItemId": {
            "type": "string",
            "format": "uuid"
          },
          "SearchProviderName": {
            "type": "string",
            "description": "Will only search within the given provider when set.",
            "nullable": true
          },
          "IncludeDisabledProviders": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether disabled providers should be included."
          }
        },
        "additionalProperties": false
      },
      "PersonLookupInfo": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "Path": {
            "type": "string",
            "description": "Gets or sets the path.",
            "nullable": true
          },
          "MetadataLanguage": {
            "type": "string",
            "description": "Gets or sets the metadata language.",
            "nullable": true
          },
          "MetadataCountryCode": {
            "type": "string",
            "description": "Gets or sets the metadata country code.",
            "nullable": true
          },
          "ProviderIds": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Gets or sets the provider ids.",
            "nullable": true
          },
          "Year": {
            "type": "integer",
            "description": "Gets or sets the year.",
            "format": "int32",
            "nullable": true
          },
          "IndexNumber": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "ParentIndexNumber": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "PremiereDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "IsAutomated": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "PersonLookupInfoRemoteSearchQuery": {
        "type": "object",
        "properties": {
          "SearchInfo": {
            "$ref": "#/components/schemas/PersonLookupInfo"
          },
          "ItemId": {
            "type": "string",
            "format": "uuid"
          },
          "SearchProviderName": {
            "type": "string",
            "description": "Will only search within the given provider when set.",
            "nullable": true
          },
          "IncludeDisabledProviders": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether disabled providers should be included."
          }
        },
        "additionalProperties": false
      },
      "SeriesInfo": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "Path": {
            "type": "string",
            "description": "Gets or sets the path.",
            "nullable": true
          },
          "MetadataLanguage": {
            "type": "string",
            "description": "Gets or sets the metadata language.",
            "nullable": true
          },
          "MetadataCountryCode": {
            "type": "string",
            "description": "Gets or sets the metadata country code.",
            "nullable": true
          },
          "ProviderIds": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Gets or sets the provider ids.",
            "nullable": true
          },
          "Year": {
            "type": "integer",
            "description": "Gets or sets the year.",
            "format": "int32",
            "nullable": true
          },
          "IndexNumber": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "ParentIndexNumber": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "PremiereDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "IsAutomated": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "SeriesInfoRemoteSearchQuery": {
        "type": "object",
        "properties": {
          "SearchInfo": {
            "$ref": "#/components/schemas/SeriesInfo"
          },
          "ItemId": {
            "type": "string",
            "format": "uuid"
          },
          "SearchProviderName": {
            "type": "string",
            "description": "Will only search within the given provider when set.",
            "nullable": true
          },
          "IncludeDisabledProviders": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether disabled providers should be included."
          }
        },
        "additionalProperties": false
      },
      "TrailerInfo": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "Path": {
            "type": "string",
            "description": "Gets or sets the path.",
            "nullable": true
          },
          "MetadataLanguage": {
            "type": "string",
            "description": "Gets or sets the metadata language.",
            "nullable": true
          },
          "MetadataCountryCode": {
            "type": "string",
            "description": "Gets or sets the metadata country code.",
            "nullable": true
          },
          "ProviderIds": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Gets or sets the provider ids.",
            "nullable": true
          },
          "Year": {
            "type": "integer",
            "description": "Gets or sets the year.",
            "format": "int32",
            "nullable": true
          },
          "IndexNumber": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "ParentIndexNumber": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "PremiereDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "IsAutomated": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "TrailerInfoRemoteSearchQuery": {
        "type": "object",
        "properties": {
          "SearchInfo": {
            "$ref": "#/components/schemas/TrailerInfo"
          },
          "ItemId": {
            "type": "string",
            "format": "uuid"
          },
          "SearchProviderName": {
            "type": "string",
            "description": "Will only search within the given provider when set.",
            "nullable": true
          },
          "IncludeDisabledProviders": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether disabled providers should be included."
          }
        },
        "additionalProperties": false
      },
      "MetadataRefreshMode": {
        "enum": [
          "None",
          "ValidationOnly",
          "Default",
          "FullRefresh"
        ],
        "type": "string"
      },
      "SeriesStatus": {
        "enum": [
          "Continuing",
          "Ended"
        ],
        "type": "string",
        "description": "Enum SeriesStatus."
      },
      "ParentalRating": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "Value": {
            "type": "integer",
            "description": "Gets or sets the value.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Class ParentalRating."
      },
      "CountryInfo": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "DisplayName": {
            "type": "string",
            "description": "Gets or sets the display name.",
            "nullable": true
          },
          "TwoLetterISORegionName": {
            "type": "string",
            "description": "Gets or sets the name of the two letter ISO region.",
            "nullable": true
          },
          "ThreeLetterISORegionName": {
            "type": "string",
            "description": "Gets or sets the name of the three letter ISO region.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Class CountryInfo."
      },
      "CultureDto": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "DisplayName": {
            "type": "string",
            "description": "Gets or sets the display name.",
            "nullable": true
          },
          "TwoLetterISOLanguageName": {
            "type": "string",
            "description": "Gets or sets the name of the two letter ISO language.",
            "nullable": true
          },
          "ThreeLetterISOLanguageName": {
            "type": "string",
            "description": "Gets or sets the name of the three letter ISO language.",
            "nullable": true,
            "readOnly": true
          },
          "ThreeLetterISOLanguageNames": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Class CultureDto."
      },
      "MetadataEditorInfo": {
        "type": "object",
        "properties": {
          "ParentalRatingOptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ParentalRating"
            },
            "nullable": true
          },
          "Countries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CountryInfo"
            },
            "nullable": true
          },
          "Cultures": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CultureDto"
            },
            "nullable": true
          },
          "ExternalIdInfos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExternalIdInfo"
            },
            "nullable": true
          },
          "ContentType": {
            "type": "string",
            "nullable": true
          },
          "ContentTypeOptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NameValuePair"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ThemeMediaResult": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BaseItemDto"
            },
            "description": "Gets or sets the items.",
            "nullable": true
          },
          "TotalRecordCount": {
            "type": "integer",
            "description": "The total number of records available.",
            "format": "int32"
          },
          "StartIndex": {
            "type": "integer",
            "description": "The index of the first record in Items.",
            "format": "int32"
          },
          "OwnerId": {
            "type": "string",
            "description": "Gets or sets the owner id.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "Class ThemeMediaResult."
      },
      "AllThemeMediaResult": {
        "type": "object",
        "properties": {
          "ThemeVideosResult": {
            "$ref": "#/components/schemas/ThemeMediaResult"
          },
          "ThemeSongsResult": {
            "$ref": "#/components/schemas/ThemeMediaResult"
          },
          "SoundtrackSongsResult": {
            "$ref": "#/components/schemas/ThemeMediaResult"
          }
        },
        "additionalProperties": false
      },
      "ItemCounts": {
        "type": "object",
        "properties": {
          "MovieCount": {
            "type": "integer",
            "description": "Gets or sets the movie count.",
            "format": "int32"
          },
          "SeriesCount": {
            "type": "integer",
            "description": "Gets or sets the series count.",
            "format": "int32"
          },
          "EpisodeCount": {
            "type": "integer",
            "description": "Gets or sets the episode count.",
            "format": "int32"
          },
          "ArtistCount": {
            "type": "integer",
            "description": "Gets or sets the artist count.",
            "format": "int32"
          },
          "ProgramCount": {
            "type": "integer",
            "description": "Gets or sets the program count.",
            "format": "int32"
          },
          "TrailerCount": {
            "type": "integer",
            "description": "Gets or sets the trailer count.",
            "format": "int32"
          },
          "SongCount": {
            "type": "integer",
            "description": "Gets or sets the song count.",
            "format": "int32"
          },
          "AlbumCount": {
            "type": "integer",
            "description": "Gets or sets the album count.",
            "format": "int32"
          },
          "MusicVideoCount": {
            "type": "integer",
            "description": "Gets or sets the music video count.",
            "format": "int32"
          },
          "BoxSetCount": {
            "type": "integer",
            "description": "Gets or sets the box set count.",
            "format": "int32"
          },
          "BookCount": {
            "type": "integer",
            "description": "Gets or sets the book count.",
            "format": "int32"
          },
          "ItemCount": {
            "type": "integer",
            "description": "Gets or sets the item count.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Class LibrarySummary."
      },
      "LibraryOptionInfoDto": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets or sets name.",
            "nullable": true
          },
          "DefaultEnabled": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether default enabled."
          }
        },
        "additionalProperties": false,
        "description": "Library option info dto."
      },
      "ImageOption": {
        "type": "object",
        "properties": {
          "Type": {
            "$ref": "#/components/schemas/ImageType"
          },
          "Limit": {
            "type": "integer",
            "description": "Gets or sets the limit.",
            "format": "int32"
          },
          "MinWidth": {
            "type": "integer",
            "description": "Gets or sets the minimum width.",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "LibraryTypeOptionsDto": {
        "type": "object",
        "properties": {
          "Type": {
            "type": "string",
            "description": "Gets or sets the type.",
            "nullable": true
          },
          "MetadataFetchers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LibraryOptionInfoDto"
            },
            "description": "Gets or sets the metadata fetchers.",
            "nullable": true
          },
          "ImageFetchers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LibraryOptionInfoDto"
            },
            "description": "Gets or sets the image fetchers.",
            "nullable": true
          },
          "SupportedImageTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ImageType"
            },
            "description": "Gets or sets the supported image types.",
            "nullable": true
          },
          "DefaultImageOptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ImageOption"
            },
            "description": "Gets or sets the default image options.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Library type options dto."
      },
      "LibraryOptionsResultDto": {
        "type": "object",
        "properties": {
          "MetadataSavers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LibraryOptionInfoDto"
            },
            "description": "Gets or sets the metadata savers.",
            "nullable": true
          },
          "MetadataReaders": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LibraryOptionInfoDto"
            },
            "description": "Gets or sets the metadata readers.",
            "nullable": true
          },
          "SubtitleFetchers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LibraryOptionInfoDto"
            },
            "description": "Gets or sets the subtitle fetchers.",
            "nullable": true
          },
          "TypeOptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LibraryTypeOptionsDto"
            },
            "description": "Gets or sets the type options.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Library options result dto."
      },
      "MediaUpdateInfoDto": {
        "type": "object",
        "properties": {
          "Path": {
            "type": "string",
            "description": "Gets or sets media path.",
            "nullable": true
          },
          "UpdateType": {
            "type": "string",
            "description": "Gets or sets media update type.\r\nCreated, Modified, Deleted.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Media Update Info Dto."
      },
      "MediaPathInfo": {
        "type": "object",
        "properties": {
          "Path": {
            "type": "string",
            "nullable": true
          },
          "NetworkPath": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TypeOptions": {
        "type": "object",
        "properties": {
          "Type": {
            "type": "string",
            "nullable": true
          },
          "MetadataFetchers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "MetadataFetcherOrder": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "ImageFetchers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "ImageFetcherOrder": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "ImageOptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ImageOption"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LibraryOptions": {
        "type": "object",
        "properties": {
          "EnablePhotos": {
            "type": "boolean"
          },
          "EnableRealtimeMonitor": {
            "type": "boolean"
          },
          "EnableChapterImageExtraction": {
            "type": "boolean"
          },
          "ExtractChapterImagesDuringLibraryScan": {
            "type": "boolean"
          },
          "PathInfos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaPathInfo"
            },
            "nullable": true
          },
          "SaveLocalMetadata": {
            "type": "boolean"
          },
          "EnableInternetProviders": {
            "type": "boolean"
          },
          "EnableAutomaticSeriesGrouping": {
            "type": "boolean"
          },
          "EnableEmbeddedTitles": {
            "type": "boolean"
          },
          "EnableEmbeddedEpisodeInfos": {
            "type": "boolean"
          },
          "AutomaticRefreshIntervalDays": {
            "type": "integer",
            "format": "int32"
          },
          "PreferredMetadataLanguage": {
            "type": "string",
            "description": "Gets or sets the preferred metadata language.",
            "nullable": true
          },
          "MetadataCountryCode": {
            "type": "string",
            "description": "Gets or sets the metadata country code.",
            "nullable": true
          },
          "SeasonZeroDisplayName": {
            "type": "string",
            "nullable": true
          },
          "MetadataSavers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "DisabledLocalMetadataReaders": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "LocalMetadataReaderOrder": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "DisabledSubtitleFetchers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "SubtitleFetcherOrder": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "SkipSubtitlesIfEmbeddedSubtitlesPresent": {
            "type": "boolean"
          },
          "SkipSubtitlesIfAudioTrackMatches": {
            "type": "boolean"
          },
          "SubtitleDownloadLanguages": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "RequirePerfectSubtitleMatch": {
            "type": "boolean"
          },
          "SaveSubtitlesWithMedia": {
            "type": "boolean"
          },
          "TypeOptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TypeOptions"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "VirtualFolderInfo": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "Locations": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the locations.",
            "nullable": true
          },
          "CollectionType": {
            "type": "string",
            "description": "Gets or sets the type of the collection.",
            "nullable": true
          },
          "LibraryOptions": {
            "$ref": "#/components/schemas/LibraryOptions"
          },
          "ItemId": {
            "type": "string",
            "description": "Gets or sets the item identifier.",
            "nullable": true
          },
          "PrimaryImageItemId": {
            "type": "string",
            "description": "Gets or sets the primary image item identifier.",
            "nullable": true
          },
          "RefreshProgress": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "RefreshStatus": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Used to hold information about a user's list of configured virtual folders."
      },
      "AddVirtualFolderDto": {
        "type": "object",
        "properties": {
          "LibraryOptions": {
            "$ref": "#/components/schemas/LibraryOptions"
          }
        },
        "additionalProperties": false,
        "description": "Add virtual folder dto."
      },
      "UpdateLibraryOptionsDto": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "description": "Gets or sets the library item id.",
            "format": "uuid"
          },
          "LibraryOptions": {
            "$ref": "#/components/schemas/LibraryOptions"
          }
        },
        "additionalProperties": false,
        "description": "Update library options dto."
      },
      "MediaPathDto": {
        "required": [
          "Name"
        ],
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets or sets the name of the library."
          },
          "Path": {
            "type": "string",
            "description": "Gets or sets the path to add.",
            "nullable": true
          },
          "PathInfo": {
            "$ref": "#/components/schemas/MediaPathInfo"
          }
        },
        "additionalProperties": false,
        "description": "Media Path dto."
      },
      "TunerChannelMapping": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "nullable": true
          },
          "ProviderChannelName": {
            "type": "string",
            "nullable": true
          },
          "ProviderChannelId": {
            "type": "string",
            "nullable": true
          },
          "Id": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "NameIdPair": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "Id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ChannelMappingOptionsDto": {
        "type": "object",
        "properties": {
          "TunerChannels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TunerChannelMapping"
            },
            "description": "Gets or sets list of tuner channels.",
            "nullable": true
          },
          "ProviderChannels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NameIdPair"
            },
            "description": "Gets or sets list of provider channels.",
            "nullable": true
          },
          "Mappings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NameValuePair"
            },
            "description": "Gets or sets list of mappings.",
            "nullable": true
          },
          "ProviderName": {
            "type": "string",
            "description": "Gets or sets provider name.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Channel mapping options dto."
      },
      "SetChannelMappingDto": {
        "required": [
          "ProviderChannelId",
          "ProviderId",
          "TunerChannelId"
        ],
        "type": "object",
        "properties": {
          "ProviderId": {
            "type": "string",
            "description": "Gets or sets the provider id."
          },
          "TunerChannelId": {
            "type": "string",
            "description": "Gets or sets the tuner channel id."
          },
          "ProviderChannelId": {
            "type": "string",
            "description": "Gets or sets the provider channel id."
          }
        },
        "additionalProperties": false,
        "description": "Set channel mapping dto."
      },
      "GuideInfo": {
        "type": "object",
        "properties": {
          "StartDate": {
            "type": "string",
            "description": "Gets or sets the start date.",
            "format": "date-time"
          },
          "EndDate": {
            "type": "string",
            "description": "Gets or sets the end date.",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "LiveTvServiceStatus": {
        "enum": [
          "Ok",
          "Unavailable"
        ],
        "type": "string"
      },
      "LiveTvServiceInfo": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "HomePageUrl": {
            "type": "string",
            "description": "Gets or sets the home page URL.",
            "nullable": true
          },
          "Status": {
            "$ref": "#/components/schemas/LiveTvServiceStatus"
          },
          "StatusMessage": {
            "type": "string",
            "description": "Gets or sets the status message.",
            "nullable": true
          },
          "Version": {
            "type": "string",
            "description": "Gets or sets the version.",
            "nullable": true
          },
          "HasUpdateAvailable": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance has update available."
          },
          "IsVisible": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is visible."
          },
          "Tuners": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Class ServiceInfo."
      },
      "LiveTvInfo": {
        "type": "object",
        "properties": {
          "Services": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LiveTvServiceInfo"
            },
            "description": "Gets or sets the services.",
            "nullable": true
          },
          "IsEnabled": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is enabled."
          },
          "EnabledUsers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the enabled users.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ListingsProviderInfo": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "nullable": true
          },
          "Type": {
            "type": "string",
            "nullable": true
          },
          "Username": {
            "type": "string",
            "nullable": true
          },
          "Password": {
            "type": "string",
            "nullable": true
          },
          "ListingsId": {
            "type": "string",
            "nullable": true
          },
          "ZipCode": {
            "type": "string",
            "nullable": true
          },
          "Country": {
            "type": "string",
            "nullable": true
          },
          "Path": {
            "type": "string",
            "nullable": true
          },
          "EnabledTuners": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "EnableAllTuners": {
            "type": "boolean"
          },
          "NewsCategories": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "SportsCategories": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "KidsCategories": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "MovieCategories": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "ChannelMappings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NameValuePair"
            },
            "nullable": true
          },
          "MoviePrefix": {
            "type": "string",
            "nullable": true
          },
          "PreferredLanguage": {
            "type": "string",
            "nullable": true
          },
          "UserAgent": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GetProgramsDto": {
        "type": "object",
        "properties": {
          "ChannelIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Gets or sets the channels to return guide information for.",
            "nullable": true
          },
          "UserId": {
            "type": "string",
            "description": "Gets or sets optional. Filter by user id.",
            "format": "uuid"
          },
          "MinStartDate": {
            "type": "string",
            "description": "Gets or sets the minimum premiere start date.\r\nOptional.",
            "format": "date-time",
            "nullable": true
          },
          "HasAired": {
            "type": "boolean",
            "description": "Gets or sets filter by programs that have completed airing, or not.\r\nOptional.",
            "nullable": true
          },
          "IsAiring": {
            "type": "boolean",
            "description": "Gets or sets filter by programs that are currently airing, or not.\r\nOptional.",
            "nullable": true
          },
          "MaxStartDate": {
            "type": "string",
            "description": "Gets or sets the maximum premiere start date.\r\nOptional.",
            "format": "date-time",
            "nullable": true
          },
          "MinEndDate": {
            "type": "string",
            "description": "Gets or sets the minimum premiere end date.\r\nOptional.",
            "format": "date-time",
            "nullable": true
          },
          "MaxEndDate": {
            "type": "string",
            "description": "Gets or sets the maximum premiere end date.\r\nOptional.",
            "format": "date-time",
            "nullable": true
          },
          "IsMovie": {
            "type": "boolean",
            "description": "Gets or sets filter for movies.\r\nOptional.",
            "nullable": true
          },
          "IsSeries": {
            "type": "boolean",
            "description": "Gets or sets filter for series.\r\nOptional.",
            "nullable": true
          },
          "IsNews": {
            "type": "boolean",
            "description": "Gets or sets filter for news.\r\nOptional.",
            "nullable": true
          },
          "IsKids": {
            "type": "boolean",
            "description": "Gets or sets filter for kids.\r\nOptional.",
            "nullable": true
          },
          "IsSports": {
            "type": "boolean",
            "description": "Gets or sets filter for sports.\r\nOptional.",
            "nullable": true
          },
          "StartIndex": {
            "type": "integer",
            "description": "Gets or sets the record index to start at. All items with a lower index will be dropped from the results.\r\nOptional.",
            "format": "int32",
            "nullable": true
          },
          "Limit": {
            "type": "integer",
            "description": "Gets or sets the maximum number of records to return.\r\nOptional.",
            "format": "int32",
            "nullable": true
          },
          "SortBy": {
            "type": "string",
            "description": "Gets or sets specify one or more sort orders, comma delimited. Options: Name, StartDate.\r\nOptional.",
            "nullable": true
          },
          "SortOrder": {
            "type": "string",
            "description": "Gets or sets sort Order - Ascending,Descending.",
            "nullable": true
          },
          "Genres": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the genres to return guide information for.",
            "nullable": true
          },
          "GenreIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Gets or sets the genre ids to return guide information for.",
            "nullable": true
          },
          "EnableImages": {
            "type": "boolean",
            "description": "Gets or sets include image information in output.\r\nOptional.",
            "nullable": true
          },
          "EnableTotalRecordCount": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether retrieve total record count."
          },
          "ImageTypeLimit": {
            "type": "integer",
            "description": "Gets or sets the max number of images to return, per image type.\r\nOptional.",
            "format": "int32",
            "nullable": true
          },
          "EnableImageTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ImageType"
            },
            "description": "Gets or sets the image types to include in the output.\r\nOptional.",
            "nullable": true
          },
          "EnableUserData": {
            "type": "boolean",
            "description": "Gets or sets include user data.\r\nOptional.",
            "nullable": true
          },
          "SeriesTimerId": {
            "type": "string",
            "description": "Gets or sets filter by series timer id.\r\nOptional.",
            "nullable": true
          },
          "LibrarySeriesId": {
            "type": "string",
            "description": "Gets or sets filter by library series id.\r\nOptional.",
            "format": "uuid"
          },
          "Fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ItemFields"
            },
            "description": "Gets or sets specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines.\r\nOptional.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Get programs dto."
      },
      "RecordingStatus": {
        "enum": [
          "New",
          "InProgress",
          "Completed",
          "Cancelled",
          "ConflictedOk",
          "ConflictedNotOk",
          "Error"
        ],
        "type": "string"
      },
      "KeepUntil": {
        "enum": [
          "UntilDeleted",
          "UntilSpaceNeeded",
          "UntilWatched",
          "UntilDate"
        ],
        "type": "string"
      },
      "DayPattern": {
        "enum": [
          "Daily",
          "Weekdays",
          "Weekends"
        ],
        "type": "string"
      },
      "SeriesTimerInfoDto": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "description": "Id of the recording.",
            "nullable": true
          },
          "Type": {
            "type": "string",
            "nullable": true
          },
          "ServerId": {
            "type": "string",
            "description": "Gets or sets the server identifier.",
            "nullable": true
          },
          "ExternalId": {
            "type": "string",
            "description": "Gets or sets the external identifier.",
            "nullable": true
          },
          "ChannelId": {
            "type": "string",
            "description": "ChannelId of the recording.",
            "format": "uuid"
          },
          "ExternalChannelId": {
            "type": "string",
            "description": "Gets or sets the external channel identifier.",
            "nullable": true
          },
          "ChannelName": {
            "type": "string",
            "description": "ChannelName of the recording.",
            "nullable": true
          },
          "ChannelPrimaryImageTag": {
            "type": "string",
            "nullable": true
          },
          "ProgramId": {
            "type": "string",
            "description": "Gets or sets the program identifier.",
            "nullable": true
          },
          "ExternalProgramId": {
            "type": "string",
            "description": "Gets or sets the external program identifier.",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "description": "Name of the recording.",
            "nullable": true
          },
          "Overview": {
            "type": "string",
            "description": "Description of the recording.",
            "nullable": true
          },
          "StartDate": {
            "type": "string",
            "description": "The start date of the recording, in UTC.",
            "format": "date-time"
          },
          "EndDate": {
            "type": "string",
            "description": "The end date of the recording, in UTC.",
            "format": "date-time"
          },
          "ServiceName": {
            "type": "string",
            "description": "Gets or sets the name of the service.",
            "nullable": true
          },
          "Priority": {
            "type": "integer",
            "description": "Gets or sets the priority.",
            "format": "int32"
          },
          "PrePaddingSeconds": {
            "type": "integer",
            "description": "Gets or sets the pre padding seconds.",
            "format": "int32"
          },
          "PostPaddingSeconds": {
            "type": "integer",
            "description": "Gets or sets the post padding seconds.",
            "format": "int32"
          },
          "IsPrePaddingRequired": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is pre padding required."
          },
          "ParentBackdropItemId": {
            "type": "string",
            "description": "If the item does not have any backdrops, this will hold the Id of the Parent that has one.",
            "nullable": true
          },
          "ParentBackdropImageTags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the parent backdrop image tags.",
            "nullable": true
          },
          "IsPostPaddingRequired": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is post padding required."
          },
          "KeepUntil": {
            "$ref": "#/components/schemas/KeepUntil"
          },
          "RecordAnyTime": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether [record any time]."
          },
          "SkipEpisodesInLibrary": {
            "type": "boolean"
          },
          "RecordAnyChannel": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether [record any channel]."
          },
          "KeepUpTo": {
            "type": "integer",
            "format": "int32"
          },
          "RecordNewOnly": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether [record new only]."
          },
          "Days": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DayOfWeek"
            },
            "description": "Gets or sets the days.",
            "nullable": true
          },
          "DayPattern": {
            "$ref": "#/components/schemas/DayPattern"
          },
          "ImageTags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Gets or sets the image tags.",
            "nullable": true
          },
          "ParentThumbItemId": {
            "type": "string",
            "description": "Gets or sets the parent thumb item id.",
            "nullable": true
          },
          "ParentThumbImageTag": {
            "type": "string",
            "description": "Gets or sets the parent thumb image tag.",
            "nullable": true
          },
          "ParentPrimaryImageItemId": {
            "type": "string",
            "description": "Gets or sets the parent primary image item identifier.",
            "nullable": true
          },
          "ParentPrimaryImageTag": {
            "type": "string",
            "description": "Gets or sets the parent primary image tag.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Class SeriesTimerInfoDto."
      },
      "SeriesTimerInfoDtoQueryResult": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SeriesTimerInfoDto"
            },
            "description": "Gets or sets the items.",
            "nullable": true
          },
          "TotalRecordCount": {
            "type": "integer",
            "description": "The total number of records available.",
            "format": "int32"
          },
          "StartIndex": {
            "type": "integer",
            "description": "The index of the first record in Items.",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "TimerInfoDto": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "description": "Id of the recording.",
            "nullable": true
          },
          "Type": {
            "type": "string",
            "nullable": true
          },
          "ServerId": {
            "type": "string",
            "description": "Gets or sets the server identifier.",
            "nullable": true
          },
          "ExternalId": {
            "type": "string",
            "description": "Gets or sets the external identifier.",
            "nullable": true
          },
          "ChannelId": {
            "type": "string",
            "description": "ChannelId of the recording.",
            "format": "uuid"
          },
          "ExternalChannelId": {
            "type": "string",
            "description": "Gets or sets the external channel identifier.",
            "nullable": true
          },
          "ChannelName": {
            "type": "string",
            "description": "ChannelName of the recording.",
            "nullable": true
          },
          "ChannelPrimaryImageTag": {
            "type": "string",
            "nullable": true
          },
          "ProgramId": {
            "type": "string",
            "description": "Gets or sets the program identifier.",
            "nullable": true
          },
          "ExternalProgramId": {
            "type": "string",
            "description": "Gets or sets the external program identifier.",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "description": "Name of the recording.",
            "nullable": true
          },
          "Overview": {
            "type": "string",
            "description": "Description of the recording.",
            "nullable": true
          },
          "StartDate": {
            "type": "string",
            "description": "The start date of the recording, in UTC.",
            "format": "date-time"
          },
          "EndDate": {
            "type": "string",
            "description": "The end date of the recording, in UTC.",
            "format": "date-time"
          },
          "ServiceName": {
            "type": "string",
            "description": "Gets or sets the name of the service.",
            "nullable": true
          },
          "Priority": {
            "type": "integer",
            "description": "Gets or sets the priority.",
            "format": "int32"
          },
          "PrePaddingSeconds": {
            "type": "integer",
            "description": "Gets or sets the pre padding seconds.",
            "format": "int32"
          },
          "PostPaddingSeconds": {
            "type": "integer",
            "description": "Gets or sets the post padding seconds.",
            "format": "int32"
          },
          "IsPrePaddingRequired": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is pre padding required."
          },
          "ParentBackdropItemId": {
            "type": "string",
            "description": "If the item does not have any backdrops, this will hold the Id of the Parent that has one.",
            "nullable": true
          },
          "ParentBackdropImageTags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the parent backdrop image tags.",
            "nullable": true
          },
          "IsPostPaddingRequired": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is post padding required."
          },
          "KeepUntil": {
            "$ref": "#/components/schemas/KeepUntil"
          },
          "Status": {
            "$ref": "#/components/schemas/RecordingStatus"
          },
          "SeriesTimerId": {
            "type": "string",
            "description": "Gets or sets the series timer identifier.",
            "nullable": true
          },
          "ExternalSeriesTimerId": {
            "type": "string",
            "description": "Gets or sets the external series timer identifier.",
            "nullable": true
          },
          "RunTimeTicks": {
            "type": "integer",
            "description": "Gets or sets the run time ticks.",
            "format": "int64",
            "nullable": true
          },
          "ProgramInfo": {
            "$ref": "#/components/schemas/BaseItemDto"
          }
        },
        "additionalProperties": false
      },
      "TimerInfoDtoQueryResult": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TimerInfoDto"
            },
            "description": "Gets or sets the items.",
            "nullable": true
          },
          "TotalRecordCount": {
            "type": "integer",
            "description": "The total number of records available.",
            "format": "int32"
          },
          "StartIndex": {
            "type": "integer",
            "description": "The index of the first record in Items.",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "TunerHostInfo": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "nullable": true
          },
          "Url": {
            "type": "string",
            "nullable": true
          },
          "Type": {
            "type": "string",
            "nullable": true
          },
          "DeviceId": {
            "type": "string",
            "nullable": true
          },
          "FriendlyName": {
            "type": "string",
            "nullable": true
          },
          "ImportFavoritesOnly": {
            "type": "boolean"
          },
          "AllowHWTranscoding": {
            "type": "boolean"
          },
          "EnableStreamLooping": {
            "type": "boolean"
          },
          "Source": {
            "type": "string",
            "nullable": true
          },
          "TunerCount": {
            "type": "integer",
            "format": "int32"
          },
          "UserAgent": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LocalizationOption": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "nullable": true
          },
          "Value": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PlaybackErrorCode": {
        "enum": [
          "NotAllowed",
          "NoCompatibleStream",
          "RateLimitExceeded"
        ],
        "type": "string"
      },
      "PlaybackInfoResponse": {
        "type": "object",
        "properties": {
          "MediaSources": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaSourceInfo"
            },
            "description": "Gets or sets the media sources.",
            "nullable": true
          },
          "PlaySessionId": {
            "type": "string",
            "description": "Gets or sets the play session identifier.",
            "nullable": true
          },
          "ErrorCode": {
            "$ref": "#/components/schemas/PlaybackErrorCode"
          }
        },
        "additionalProperties": false,
        "description": "Class PlaybackInfoResponse."
      },
      "PlaybackInfoDto": {
        "type": "object",
        "properties": {
          "UserId": {
            "type": "string",
            "description": "Gets or sets the playback userId.",
            "format": "uuid",
            "nullable": true
          },
          "MaxStreamingBitrate": {
            "type": "integer",
            "description": "Gets or sets the max streaming bitrate.",
            "format": "int32",
            "nullable": true
          },
          "StartTimeTicks": {
            "type": "integer",
            "description": "Gets or sets the start time in ticks.",
            "format": "int64",
            "nullable": true
          },
          "AudioStreamIndex": {
            "type": "integer",
            "description": "Gets or sets the audio stream index.",
            "format": "int32",
            "nullable": true
          },
          "SubtitleStreamIndex": {
            "type": "integer",
            "description": "Gets or sets the subtitle stream index.",
            "format": "int32",
            "nullable": true
          },
          "MaxAudioChannels": {
            "type": "integer",
            "description": "Gets or sets the max audio channels.",
            "format": "int32",
            "nullable": true
          },
          "MediaSourceId": {
            "type": "string",
            "description": "Gets or sets the media source id.",
            "nullable": true
          },
          "LiveStreamId": {
            "type": "string",
            "description": "Gets or sets the live stream id.",
            "nullable": true
          },
          "DeviceProfile": {
            "$ref": "#/components/schemas/DeviceProfile"
          },
          "EnableDirectPlay": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether to enable direct play.",
            "nullable": true
          },
          "EnableDirectStream": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether to enable direct stream.",
            "nullable": true
          },
          "EnableTranscoding": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether to enable transcoding.",
            "nullable": true
          },
          "AllowVideoStreamCopy": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether to enable video stream copy.",
            "nullable": true
          },
          "AllowAudioStreamCopy": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether to allow audio stream copy.",
            "nullable": true
          },
          "AutoOpenLiveStream": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether to auto open the live stream.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Plabyback info dto."
      },
      "OpenLiveStreamDto": {
        "type": "object",
        "properties": {
          "OpenToken": {
            "type": "string",
            "description": "Gets or sets the open token.",
            "nullable": true
          },
          "UserId": {
            "type": "string",
            "description": "Gets or sets the user id.",
            "format": "uuid",
            "nullable": true
          },
          "PlaySessionId": {
            "type": "string",
            "description": "Gets or sets the play session id.",
            "nullable": true
          },
          "MaxStreamingBitrate": {
            "type": "integer",
            "description": "Gets or sets the max streaming bitrate.",
            "format": "int32",
            "nullable": true
          },
          "StartTimeTicks": {
            "type": "integer",
            "description": "Gets or sets the start time in ticks.",
            "format": "int64",
            "nullable": true
          },
          "AudioStreamIndex": {
            "type": "integer",
            "description": "Gets or sets the audio stream index.",
            "format": "int32",
            "nullable": true
          },
          "SubtitleStreamIndex": {
            "type": "integer",
            "description": "Gets or sets the subtitle stream index.",
            "format": "int32",
            "nullable": true
          },
          "MaxAudioChannels": {
            "type": "integer",
            "description": "Gets or sets the max audio channels.",
            "format": "int32",
            "nullable": true
          },
          "ItemId": {
            "type": "string",
            "description": "Gets or sets the item id.",
            "format": "uuid",
            "nullable": true
          },
          "EnableDirectPlay": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether to enable direct play.",
            "nullable": true
          },
          "EnableDirectStream": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether to enale direct stream.",
            "nullable": true
          },
          "DeviceProfile": {
            "$ref": "#/components/schemas/DeviceProfile"
          },
          "DirectPlayProtocols": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaProtocol"
            },
            "description": "Gets or sets the device play protocols.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Open live stream dto."
      },
      "LiveStreamResponse": {
        "type": "object",
        "properties": {
          "MediaSource": {
            "$ref": "#/components/schemas/MediaSourceInfo"
          }
        },
        "additionalProperties": false
      },
      "RecommendationType": {
        "enum": [
          "SimilarToRecentlyPlayed",
          "SimilarToLikedItem",
          "HasDirectorFromRecentlyPlayed",
          "HasActorFromRecentlyPlayed",
          "HasLikedDirector",
          "HasLikedActor"
        ],
        "type": "string"
      },
      "RecommendationDto": {
        "type": "object",
        "properties": {
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BaseItemDto"
            },
            "nullable": true
          },
          "RecommendationType": {
            "$ref": "#/components/schemas/RecommendationType"
          },
          "BaselineItemName": {
            "type": "string",
            "nullable": true
          },
          "CategoryId": {
            "type": "string",
            "format": "uuid"
          }
        },
        "additionalProperties": false
      },
      "NotificationLevel": {
        "enum": [
          "Normal",
          "Warning",
          "Error"
        ],
        "type": "string"
      },
      "NotificationDto": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "description": "Gets or sets the notification ID. Defaults to an empty string.",
            "nullable": true
          },
          "UserId": {
            "type": "string",
            "description": "Gets or sets the notification's user ID. Defaults to an empty string.",
            "nullable": true
          },
          "Date": {
            "type": "string",
            "description": "Gets or sets the notification date.",
            "format": "date-time"
          },
          "IsRead": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the notification has been read. Defaults to false."
          },
          "Name": {
            "type": "string",
            "description": "Gets or sets the notification's name. Defaults to an empty string.",
            "nullable": true
          },
          "Description": {
            "type": "string",
            "description": "Gets or sets the notification's description. Defaults to an empty string.",
            "nullable": true
          },
          "Url": {
            "type": "string",
            "description": "Gets or sets the notification's URL. Defaults to an empty string.",
            "nullable": true
          },
          "Level": {
            "$ref": "#/components/schemas/NotificationLevel"
          }
        },
        "additionalProperties": false,
        "description": "The notification DTO."
      },
      "NotificationResultDto": {
        "type": "object",
        "properties": {
          "Notifications": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NotificationDto"
            },
            "description": "Gets or sets the current page of notifications.",
            "nullable": true
          },
          "TotalRecordCount": {
            "type": "integer",
            "description": "Gets or sets the total number of notifications.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "A list of notifications with the total record count for pagination."
      },
      "NotificationsSummaryDto": {
        "type": "object",
        "properties": {
          "UnreadCount": {
            "type": "integer",
            "description": "Gets or sets the number of unread notifications.",
            "format": "int32"
          },
          "MaxUnreadNotificationLevel": {
            "$ref": "#/components/schemas/NotificationLevel"
          }
        },
        "additionalProperties": false,
        "description": "The notification summary DTO."
      },
      "NotificationTypeInfo": {
        "type": "object",
        "properties": {
          "Type": {
            "type": "string",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "Enabled": {
            "type": "boolean"
          },
          "Category": {
            "type": "string",
            "nullable": true
          },
          "IsBasedOnUserEvent": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "VersionInfo": {
        "type": "object",
        "properties": {
          "version": {
            "type": "string",
            "description": "Gets or sets the version.",
            "nullable": true
          },
          "VersionNumber": {
            "$ref": "#/components/schemas/Version"
          },
          "changelog": {
            "type": "string",
            "description": "Gets or sets the changelog for this version.",
            "nullable": true
          },
          "targetAbi": {
            "type": "string",
            "description": "Gets or sets the ABI that this version was built against.",
            "nullable": true
          },
          "sourceUrl": {
            "type": "string",
            "description": "Gets or sets the source URL.",
            "nullable": true
          },
          "checksum": {
            "type": "string",
            "description": "Gets or sets a checksum for the binary.",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "Gets or sets a timestamp of when the binary was built.",
            "nullable": true
          },
          "repositoryName": {
            "type": "string",
            "description": "Gets or sets the repository name.",
            "nullable": true
          },
          "repositoryUrl": {
            "type": "string",
            "description": "Gets or sets the repository url.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Defines the MediaBrowser.Model.Updates.VersionInfo class."
      },
      "PackageInfo": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "Gets or sets a long description of the plugin containing features or helpful explanations.",
            "nullable": true
          },
          "overview": {
            "type": "string",
            "description": "Gets or sets a short overview of what the plugin does.",
            "nullable": true
          },
          "owner": {
            "type": "string",
            "description": "Gets or sets the owner.",
            "nullable": true
          },
          "category": {
            "type": "string",
            "description": "Gets or sets the category.",
            "nullable": true
          },
          "guid": {
            "type": "string",
            "description": "Gets or sets the guid of the assembly associated with this plugin.\r\nThis is used to identify the proper item for automatic updates.",
            "nullable": true
          },
          "versions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VersionInfo"
            },
            "description": "Gets or sets the versions.",
            "nullable": true
          },
          "imageUrl": {
            "type": "string",
            "description": "Gets or sets the image url for the package.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Class PackageInfo."
      },
      "CreatePlaylistDto": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets or sets the name of the new playlist.",
            "nullable": true
          },
          "Ids": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Gets or sets item ids to add to the playlist.",
            "nullable": true
          },
          "UserId": {
            "type": "string",
            "description": "Gets or sets the user id.",
            "format": "uuid",
            "nullable": true
          },
          "MediaType": {
            "type": "string",
            "description": "Gets or sets the media type.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Create new playlist dto."
      },
      "PlaylistCreationResult": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "PlayMethod": {
        "enum": [
          "Transcode",
          "DirectStream",
          "DirectPlay"
        ],
        "type": "string"
      },
      "RepeatMode": {
        "enum": [
          "RepeatNone",
          "RepeatAll",
          "RepeatOne"
        ],
        "type": "string"
      },
      "QueueItem": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "format": "uuid"
          },
          "PlaylistItemId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PlaybackStartInfo": {
        "type": "object",
        "properties": {
          "CanSeek": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance can seek."
          },
          "Item": {
            "$ref": "#/components/schemas/BaseItemDto"
          },
          "ItemId": {
            "type": "string",
            "description": "Gets or sets the item identifier.",
            "format": "uuid"
          },
          "SessionId": {
            "type": "string",
            "description": "Gets or sets the session id.",
            "nullable": true
          },
          "MediaSourceId": {
            "type": "string",
            "description": "Gets or sets the media version identifier.",
            "nullable": true
          },
          "AudioStreamIndex": {
            "type": "integer",
            "description": "Gets or sets the index of the audio stream.",
            "format": "int32",
            "nullable": true
          },
          "SubtitleStreamIndex": {
            "type": "integer",
            "description": "Gets or sets the index of the subtitle stream.",
            "format": "int32",
            "nullable": true
          },
          "IsPaused": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is paused."
          },
          "IsMuted": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is muted."
          },
          "PositionTicks": {
            "type": "integer",
            "description": "Gets or sets the position ticks.",
            "format": "int64",
            "nullable": true
          },
          "PlaybackStartTimeTicks": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "VolumeLevel": {
            "type": "integer",
            "description": "Gets or sets the volume level.",
            "format": "int32",
            "nullable": true
          },
          "Brightness": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "AspectRatio": {
            "type": "string",
            "nullable": true
          },
          "PlayMethod": {
            "$ref": "#/components/schemas/PlayMethod"
          },
          "LiveStreamId": {
            "type": "string",
            "description": "Gets or sets the live stream identifier.",
            "nullable": true
          },
          "PlaySessionId": {
            "type": "string",
            "description": "Gets or sets the play session identifier.",
            "nullable": true
          },
          "RepeatMode": {
            "$ref": "#/components/schemas/RepeatMode"
          },
          "NowPlayingQueue": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QueueItem"
            },
            "nullable": true
          },
          "PlaylistItemId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Class PlaybackStartInfo."
      },
      "PlaybackProgressInfo": {
        "type": "object",
        "properties": {
          "CanSeek": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance can seek."
          },
          "Item": {
            "$ref": "#/components/schemas/BaseItemDto"
          },
          "ItemId": {
            "type": "string",
            "description": "Gets or sets the item identifier.",
            "format": "uuid"
          },
          "SessionId": {
            "type": "string",
            "description": "Gets or sets the session id.",
            "nullable": true
          },
          "MediaSourceId": {
            "type": "string",
            "description": "Gets or sets the media version identifier.",
            "nullable": true
          },
          "AudioStreamIndex": {
            "type": "integer",
            "description": "Gets or sets the index of the audio stream.",
            "format": "int32",
            "nullable": true
          },
          "SubtitleStreamIndex": {
            "type": "integer",
            "description": "Gets or sets the index of the subtitle stream.",
            "format": "int32",
            "nullable": true
          },
          "IsPaused": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is paused."
          },
          "IsMuted": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is muted."
          },
          "PositionTicks": {
            "type": "integer",
            "description": "Gets or sets the position ticks.",
            "format": "int64",
            "nullable": true
          },
          "PlaybackStartTimeTicks": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "VolumeLevel": {
            "type": "integer",
            "description": "Gets or sets the volume level.",
            "format": "int32",
            "nullable": true
          },
          "Brightness": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "AspectRatio": {
            "type": "string",
            "nullable": true
          },
          "PlayMethod": {
            "$ref": "#/components/schemas/PlayMethod"
          },
          "LiveStreamId": {
            "type": "string",
            "description": "Gets or sets the live stream identifier.",
            "nullable": true
          },
          "PlaySessionId": {
            "type": "string",
            "description": "Gets or sets the play session identifier.",
            "nullable": true
          },
          "RepeatMode": {
            "$ref": "#/components/schemas/RepeatMode"
          },
          "NowPlayingQueue": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QueueItem"
            },
            "nullable": true
          },
          "PlaylistItemId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Class PlaybackProgressInfo."
      },
      "PlaybackStopInfo": {
        "type": "object",
        "properties": {
          "Item": {
            "$ref": "#/components/schemas/BaseItemDto"
          },
          "ItemId": {
            "type": "string",
            "description": "Gets or sets the item identifier.",
            "format": "uuid"
          },
          "SessionId": {
            "type": "string",
            "description": "Gets or sets the session id.",
            "nullable": true
          },
          "MediaSourceId": {
            "type": "string",
            "description": "Gets or sets the media version identifier.",
            "nullable": true
          },
          "PositionTicks": {
            "type": "integer",
            "description": "Gets or sets the position ticks.",
            "format": "int64",
            "nullable": true
          },
          "LiveStreamId": {
            "type": "string",
            "description": "Gets or sets the live stream identifier.",
            "nullable": true
          },
          "PlaySessionId": {
            "type": "string",
            "description": "Gets or sets the play session identifier.",
            "nullable": true
          },
          "Failed": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this MediaBrowser.Model.Session.PlaybackStopInfo is failed."
          },
          "NextMediaType": {
            "type": "string",
            "nullable": true
          },
          "PlaylistItemId": {
            "type": "string",
            "nullable": true
          },
          "NowPlayingQueue": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QueueItem"
            },
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Class PlaybackStopInfo."
      },
      "PluginStatus": {
        "enum": [
          "Active",
          "Restart",
          "Deleted",
          "Superceded",
          "Malfunctioned",
          "NotSupported",
          "Disabled"
        ],
        "type": "string",
        "description": "Plugin load status."
      },
      "PluginInfo": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "Version": {
            "$ref": "#/components/schemas/Version"
          },
          "ConfigurationFileName": {
            "type": "string",
            "description": "Gets or sets the name of the configuration file.",
            "nullable": true
          },
          "Description": {
            "type": "string",
            "description": "Gets or sets the description.",
            "nullable": true
          },
          "Id": {
            "type": "string",
            "description": "Gets or sets the unique id.",
            "format": "uuid"
          },
          "CanUninstall": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the plugin can be uninstalled."
          },
          "HasImage": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this plugin has a valid image."
          },
          "Status": {
            "$ref": "#/components/schemas/PluginStatus"
          }
        },
        "additionalProperties": false,
        "description": "This is a serializable stub class that is used by the api to provide information about installed plugins."
      },
      "BasePluginConfiguration": {
        "type": "object",
        "additionalProperties": false,
        "description": "Class BasePluginConfiguration."
      },
      "PluginSecurityInfo": {
        "type": "object",
        "properties": {
          "SupporterKey": {
            "type": "string",
            "description": "Gets or sets the supporter key.",
            "nullable": true
          },
          "IsMbSupporter": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether is mb supporter."
          }
        },
        "additionalProperties": false,
        "description": "Plugin security info."
      },
      "QuickConnectState": {
        "enum": [
          "Unavailable",
          "Available",
          "Active"
        ],
        "type": "string",
        "description": "Quick connect state."
      },
      "QuickConnectResult": {
        "type": "object",
        "properties": {
          "Authenticated": {
            "type": "boolean",
            "description": "Gets a value indicating whether this request is authorized.",
            "readOnly": true
          },
          "Secret": {
            "type": "string",
            "description": "Gets or sets the secret value used to uniquely identify this request. Can be used to retrieve authentication information.",
            "nullable": true
          },
          "Code": {
            "type": "string",
            "description": "Gets or sets the user facing code used so the user can quickly differentiate this request from others.",
            "nullable": true
          },
          "Authentication": {
            "type": "string",
            "description": "Gets or sets the private access token.",
            "nullable": true
          },
          "Error": {
            "type": "string",
            "description": "Gets or sets an error message.",
            "nullable": true
          },
          "DateAdded": {
            "type": "string",
            "description": "Gets or sets the DateTime that this request was created.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Stores the result of an incoming quick connect request."
      },
      "RatingType": {
        "enum": [
          "Score",
          "Likes"
        ],
        "type": "string"
      },
      "RemoteImageInfo": {
        "type": "object",
        "properties": {
          "ProviderName": {
            "type": "string",
            "description": "Gets or sets the name of the provider.",
            "nullable": true
          },
          "Url": {
            "type": "string",
            "description": "Gets or sets the URL.",
            "nullable": true
          },
          "ThumbnailUrl": {
            "type": "string",
            "description": "Gets a url used for previewing a smaller version.",
            "nullable": true
          },
          "Height": {
            "type": "integer",
            "description": "Gets or sets the height.",
            "format": "int32",
            "nullable": true
          },
          "Width": {
            "type": "integer",
            "description": "Gets or sets the width.",
            "format": "int32",
            "nullable": true
          },
          "CommunityRating": {
            "type": "number",
            "description": "Gets or sets the community rating.",
            "format": "double",
            "nullable": true
          },
          "VoteCount": {
            "type": "integer",
            "description": "Gets or sets the vote count.",
            "format": "int32",
            "nullable": true
          },
          "Language": {
            "type": "string",
            "description": "Gets or sets the language.",
            "nullable": true
          },
          "Type": {
            "$ref": "#/components/schemas/ImageType"
          },
          "RatingType": {
            "$ref": "#/components/schemas/RatingType"
          }
        },
        "additionalProperties": false,
        "description": "Class RemoteImageInfo."
      },
      "RemoteImageResult": {
        "type": "object",
        "properties": {
          "Images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RemoteImageInfo"
            },
            "description": "Gets or sets the images.",
            "nullable": true
          },
          "TotalRecordCount": {
            "type": "integer",
            "description": "Gets or sets the total record count.",
            "format": "int32"
          },
          "Providers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the providers.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Class RemoteImageResult."
      },
      "ImageProviderInfo": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets the name.",
            "nullable": true,
            "readOnly": true
          },
          "SupportedImages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ImageType"
            },
            "description": "Gets the supported image types.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Class ImageProviderInfo."
      },
      "TaskState": {
        "enum": [
          "Idle",
          "Cancelling",
          "Running"
        ],
        "type": "string",
        "description": "Enum TaskState."
      },
      "TaskCompletionStatus": {
        "enum": [
          "Completed",
          "Failed",
          "Cancelled",
          "Aborted"
        ],
        "type": "string",
        "description": "Enum TaskCompletionStatus."
      },
      "TaskResult": {
        "type": "object",
        "properties": {
          "StartTimeUtc": {
            "type": "string",
            "description": "Gets or sets the start time UTC.",
            "format": "date-time"
          },
          "EndTimeUtc": {
            "type": "string",
            "description": "Gets or sets the end time UTC.",
            "format": "date-time"
          },
          "Status": {
            "$ref": "#/components/schemas/TaskCompletionStatus"
          },
          "Name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "Key": {
            "type": "string",
            "description": "Gets or sets the key.",
            "nullable": true
          },
          "Id": {
            "type": "string",
            "description": "Gets or sets the id.",
            "nullable": true
          },
          "ErrorMessage": {
            "type": "string",
            "description": "Gets or sets the error message.",
            "nullable": true
          },
          "LongErrorMessage": {
            "type": "string",
            "description": "Gets or sets the long error message.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Class TaskExecutionInfo."
      },
      "TaskTriggerInfo": {
        "type": "object",
        "properties": {
          "Type": {
            "type": "string",
            "description": "Gets or sets the type.",
            "nullable": true
          },
          "TimeOfDayTicks": {
            "type": "integer",
            "description": "Gets or sets the time of day.",
            "format": "int64",
            "nullable": true
          },
          "IntervalTicks": {
            "type": "integer",
            "description": "Gets or sets the interval.",
            "format": "int64",
            "nullable": true
          },
          "DayOfWeek": {
            "$ref": "#/components/schemas/DayOfWeek"
          },
          "MaxRuntimeTicks": {
            "type": "integer",
            "description": "Gets or sets the maximum runtime ticks.",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Class TaskTriggerInfo."
      },
      "TaskInfo": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "State": {
            "$ref": "#/components/schemas/TaskState"
          },
          "CurrentProgressPercentage": {
            "type": "number",
            "description": "Gets or sets the progress.",
            "format": "double",
            "nullable": true
          },
          "Id": {
            "type": "string",
            "description": "Gets or sets the id.",
            "nullable": true
          },
          "LastExecutionResult": {
            "$ref": "#/components/schemas/TaskResult"
          },
          "Triggers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskTriggerInfo"
            },
            "description": "Gets or sets the triggers.",
            "nullable": true
          },
          "Description": {
            "type": "string",
            "description": "Gets or sets the description.",
            "nullable": true
          },
          "Category": {
            "type": "string",
            "description": "Gets or sets the category.",
            "nullable": true
          },
          "IsHidden": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is hidden."
          },
          "Key": {
            "type": "string",
            "description": "Gets or sets the key.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Class TaskInfo."
      },
      "SearchHint": {
        "type": "object",
        "properties": {
          "ItemId": {
            "type": "string",
            "description": "Gets or sets the item id.",
            "format": "uuid"
          },
          "Id": {
            "type": "string",
            "format": "uuid"
          },
          "Name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "MatchedTerm": {
            "type": "string",
            "description": "Gets or sets the matched term.",
            "nullable": true
          },
          "IndexNumber": {
            "type": "integer",
            "description": "Gets or sets the index number.",
            "format": "int32",
            "nullable": true
          },
          "ProductionYear": {
            "type": "integer",
            "description": "Gets or sets the production year.",
            "format": "int32",
            "nullable": true
          },
          "ParentIndexNumber": {
            "type": "integer",
            "description": "Gets or sets the parent index number.",
            "format": "int32",
            "nullable": true
          },
          "PrimaryImageTag": {
            "type": "string",
            "description": "Gets or sets the image tag.",
            "nullable": true
          },
          "ThumbImageTag": {
            "type": "string",
            "description": "Gets or sets the thumb image tag.",
            "nullable": true
          },
          "ThumbImageItemId": {
            "type": "string",
            "description": "Gets or sets the thumb image item identifier.",
            "nullable": true
          },
          "BackdropImageTag": {
            "type": "string",
            "description": "Gets or sets the backdrop image tag.",
            "nullable": true
          },
          "BackdropImageItemId": {
            "type": "string",
            "description": "Gets or sets the backdrop image item identifier.",
            "nullable": true
          },
          "Type": {
            "type": "string",
            "description": "Gets or sets the type.",
            "nullable": true
          },
          "IsFolder": {
            "type": "boolean",
            "nullable": true
          },
          "RunTimeTicks": {
            "type": "integer",
            "description": "Gets or sets the run time ticks.",
            "format": "int64",
            "nullable": true
          },
          "MediaType": {
            "type": "string",
            "description": "Gets or sets the type of the media.",
            "nullable": true
          },
          "StartDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "EndDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "Series": {
            "type": "string",
            "description": "Gets or sets the series.",
            "nullable": true
          },
          "Status": {
            "type": "string",
            "nullable": true
          },
          "Album": {
            "type": "string",
            "description": "Gets or sets the album.",
            "nullable": true
          },
          "AlbumId": {
            "type": "string",
            "format": "uuid"
          },
          "AlbumArtist": {
            "type": "string",
            "description": "Gets or sets the album artist.",
            "nullable": true
          },
          "Artists": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the artists.",
            "nullable": true
          },
          "SongCount": {
            "type": "integer",
            "description": "Gets or sets the song count.",
            "format": "int32",
            "nullable": true
          },
          "EpisodeCount": {
            "type": "integer",
            "description": "Gets or sets the episode count.",
            "format": "int32",
            "nullable": true
          },
          "ChannelId": {
            "type": "string",
            "description": "Gets or sets the channel identifier.",
            "format": "uuid"
          },
          "ChannelName": {
            "type": "string",
            "description": "Gets or sets the name of the channel.",
            "nullable": true
          },
          "PrimaryImageAspectRatio": {
            "type": "number",
            "description": "Gets or sets the primary image aspect ratio.",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Class SearchHintResult."
      },
      "SearchHintResult": {
        "type": "object",
        "properties": {
          "SearchHints": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SearchHint"
            },
            "description": "Gets or sets the search hints.",
            "nullable": true
          },
          "TotalRecordCount": {
            "type": "integer",
            "description": "Gets or sets the total record count.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Class SearchHintResult."
      },
      "PlayerStateInfo": {
        "type": "object",
        "properties": {
          "PositionTicks": {
            "type": "integer",
            "description": "Gets or sets the now playing position ticks.",
            "format": "int64",
            "nullable": true
          },
          "CanSeek": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance can seek."
          },
          "IsPaused": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is paused."
          },
          "IsMuted": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is muted."
          },
          "VolumeLevel": {
            "type": "integer",
            "description": "Gets or sets the volume level.",
            "format": "int32",
            "nullable": true
          },
          "AudioStreamIndex": {
            "type": "integer",
            "description": "Gets or sets the index of the now playing audio stream.",
            "format": "int32",
            "nullable": true
          },
          "SubtitleStreamIndex": {
            "type": "integer",
            "description": "Gets or sets the index of the now playing subtitle stream.",
            "format": "int32",
            "nullable": true
          },
          "MediaSourceId": {
            "type": "string",
            "description": "Gets or sets the now playing media version identifier.",
            "nullable": true
          },
          "PlayMethod": {
            "$ref": "#/components/schemas/PlayMethod"
          },
          "RepeatMode": {
            "$ref": "#/components/schemas/RepeatMode"
          }
        },
        "additionalProperties": false
      },
      "SessionUserInfo": {
        "type": "object",
        "properties": {
          "UserId": {
            "type": "string",
            "description": "Gets or sets the user identifier.",
            "format": "uuid"
          },
          "UserName": {
            "type": "string",
            "description": "Gets or sets the name of the user.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Class SessionUserInfo."
      },
      "BaseItem": {
        "type": "object",
        "properties": {
          "Size": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "Container": {
            "type": "string",
            "nullable": true
          },
          "DateLastSaved": {
            "type": "string",
            "format": "date-time"
          },
          "RemoteTrailers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaUrl"
            },
            "description": "Gets or sets the remote trailers.",
            "nullable": true
          },
          "IsHD": {
            "type": "boolean",
            "readOnly": true
          },
          "IsShortcut": {
            "type": "boolean"
          },
          "ShortcutPath": {
            "type": "string",
            "nullable": true
          },
          "Width": {
            "type": "integer",
            "format": "int32"
          },
          "Height": {
            "type": "integer",
            "format": "int32"
          },
          "ExtraIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "nullable": true
          },
          "SupportsExternalTransfer": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Class BaseItem."
      },
      "TranscodeReason": {
        "enum": [
          "ContainerNotSupported",
          "VideoCodecNotSupported",
          "AudioCodecNotSupported",
          "ContainerBitrateExceedsLimit",
          "AudioBitrateNotSupported",
          "AudioChannelsNotSupported",
          "VideoResolutionNotSupported",
          "UnknownVideoStreamInfo",
          "UnknownAudioStreamInfo",
          "AudioProfileNotSupported",
          "AudioSampleRateNotSupported",
          "AnamorphicVideoNotSupported",
          "InterlacedVideoNotSupported",
          "SecondaryAudioNotSupported",
          "RefFramesNotSupported",
          "VideoBitDepthNotSupported",
          "VideoBitrateNotSupported",
          "VideoFramerateNotSupported",
          "VideoLevelNotSupported",
          "VideoProfileNotSupported",
          "AudioBitDepthNotSupported",
          "SubtitleCodecNotSupported",
          "DirectPlayError"
        ],
        "type": "string"
      },
      "TranscodingInfo": {
        "type": "object",
        "properties": {
          "AudioCodec": {
            "type": "string",
            "nullable": true
          },
          "VideoCodec": {
            "type": "string",
            "nullable": true
          },
          "Container": {
            "type": "string",
            "nullable": true
          },
          "IsVideoDirect": {
            "type": "boolean"
          },
          "IsAudioDirect": {
            "type": "boolean"
          },
          "Bitrate": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Framerate": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "CompletionPercentage": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "Width": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Height": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "AudioChannels": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "TranscodeReasons": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TranscodeReason"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SessionInfo": {
        "type": "object",
        "properties": {
          "PlayState": {
            "$ref": "#/components/schemas/PlayerStateInfo"
          },
          "AdditionalUsers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SessionUserInfo"
            },
            "nullable": true
          },
          "Capabilities": {
            "$ref": "#/components/schemas/ClientCapabilities"
          },
          "RemoteEndPoint": {
            "type": "string",
            "description": "Gets or sets the remote end point.",
            "nullable": true
          },
          "PlayableMediaTypes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the playable media types.",
            "nullable": true,
            "readOnly": true
          },
          "Id": {
            "type": "string",
            "description": "Gets or sets the id.",
            "nullable": true
          },
          "UserId": {
            "type": "string",
            "description": "Gets or sets the user id.",
            "format": "uuid"
          },
          "UserName": {
            "type": "string",
            "description": "Gets or sets the username.",
            "nullable": true
          },
          "Client": {
            "type": "string",
            "description": "Gets or sets the type of the client.",
            "nullable": true
          },
          "LastActivityDate": {
            "type": "string",
            "description": "Gets or sets the last activity date.",
            "format": "date-time"
          },
          "LastPlaybackCheckIn": {
            "type": "string",
            "description": "Gets or sets the last playback check in.",
            "format": "date-time"
          },
          "DeviceName": {
            "type": "string",
            "description": "Gets or sets the name of the device.",
            "nullable": true
          },
          "DeviceType": {
            "type": "string",
            "description": "Gets or sets the type of the device.",
            "nullable": true
          },
          "NowPlayingItem": {
            "$ref": "#/components/schemas/BaseItemDto"
          },
          "FullNowPlayingItem": {
            "$ref": "#/components/schemas/BaseItem"
          },
          "NowViewingItem": {
            "$ref": "#/components/schemas/BaseItemDto"
          },
          "DeviceId": {
            "type": "string",
            "description": "Gets or sets the device id.",
            "nullable": true
          },
          "ApplicationVersion": {
            "type": "string",
            "description": "Gets or sets the application version.",
            "nullable": true
          },
          "TranscodingInfo": {
            "$ref": "#/components/schemas/TranscodingInfo"
          },
          "IsActive": {
            "type": "boolean",
            "description": "Gets a value indicating whether this instance is active.",
            "readOnly": true
          },
          "SupportsMediaControl": {
            "type": "boolean",
            "readOnly": true
          },
          "SupportsRemoteControl": {
            "type": "boolean",
            "readOnly": true
          },
          "NowPlayingQueue": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QueueItem"
            },
            "nullable": true
          },
          "HasCustomDeviceName": {
            "type": "boolean"
          },
          "PlaylistItemId": {
            "type": "string",
            "nullable": true
          },
          "ServerId": {
            "type": "string",
            "nullable": true
          },
          "UserPrimaryImageTag": {
            "type": "string",
            "nullable": true
          },
          "SupportedCommands": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GeneralCommandType"
            },
            "description": "Gets or sets the supported commands.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Class SessionInfo."
      },
      "GeneralCommand": {
        "type": "object",
        "properties": {
          "Name": {
            "$ref": "#/components/schemas/GeneralCommandType"
          },
          "ControllingUserId": {
            "type": "string",
            "format": "uuid"
          },
          "Arguments": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PlayCommand": {
        "enum": [
          "PlayNow",
          "PlayNext",
          "PlayLast",
          "PlayInstantMix",
          "PlayShuffle"
        ],
        "type": "string",
        "description": "Enum PlayCommand."
      },
      "PlaystateCommand": {
        "enum": [
          "Stop",
          "Pause",
          "Unpause",
          "NextTrack",
          "PreviousTrack",
          "Seek",
          "Rewind",
          "FastForward",
          "PlayPause"
        ],
        "type": "string",
        "description": "Enum PlaystateCommand."
      },
      "ClientCapabilitiesDto": {
        "type": "object",
        "properties": {
          "PlayableMediaTypes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the list of playable media types.",
            "nullable": true
          },
          "SupportedCommands": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GeneralCommandType"
            },
            "description": "Gets or sets the list of supported commands.",
            "nullable": true
          },
          "SupportsMediaControl": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether session supports media control."
          },
          "SupportsContentUploading": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether session supports content uploading."
          },
          "MessageCallbackUrl": {
            "type": "string",
            "description": "Gets or sets the message callback url.",
            "nullable": true
          },
          "SupportsPersistentIdentifier": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether session supports a persistent identifier."
          },
          "SupportsSync": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether session supports sync."
          },
          "DeviceProfile": {
            "$ref": "#/components/schemas/DeviceProfile"
          },
          "AppStoreUrl": {
            "type": "string",
            "description": "Gets or sets the app store url.",
            "nullable": true
          },
          "IconUrl": {
            "type": "string",
            "description": "Gets or sets the icon url.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Client capabilities dto."
      },
      "StartupConfigurationDto": {
        "type": "object",
        "properties": {
          "UICulture": {
            "type": "string",
            "description": "Gets or sets UI language culture.",
            "nullable": true
          },
          "MetadataCountryCode": {
            "type": "string",
            "description": "Gets or sets the metadata country code.",
            "nullable": true
          },
          "PreferredMetadataLanguage": {
            "type": "string",
            "description": "Gets or sets the preferred language for the metadata.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The startup configuration DTO."
      },
      "StartupUserDto": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets or sets the username.",
            "nullable": true
          },
          "Password": {
            "type": "string",
            "description": "Gets or sets the user's password.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The startup user DTO."
      },
      "StartupRemoteAccessDto": {
        "required": [
          "EnableAutomaticPortMapping",
          "EnableRemoteAccess"
        ],
        "type": "object",
        "properties": {
          "EnableRemoteAccess": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether enable remote access."
          },
          "EnableAutomaticPortMapping": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether enable automatic port mapping."
          }
        },
        "additionalProperties": false,
        "description": "Startup remote access dto."
      },
      "FontFile": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "Size": {
            "type": "integer",
            "description": "Gets or sets the size.",
            "format": "int64"
          },
          "DateCreated": {
            "type": "string",
            "description": "Gets or sets the date created.",
            "format": "date-time"
          },
          "DateModified": {
            "type": "string",
            "description": "Gets or sets the date modified.",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "Class FontFile."
      },
      "RemoteSubtitleInfo": {
        "type": "object",
        "properties": {
          "ThreeLetterISOLanguageName": {
            "type": "string",
            "nullable": true
          },
          "Id": {
            "type": "string",
            "nullable": true
          },
          "ProviderName": {
            "type": "string",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "Format": {
            "type": "string",
            "nullable": true
          },
          "Author": {
            "type": "string",
            "nullable": true
          },
          "Comment": {
            "type": "string",
            "nullable": true
          },
          "DateCreated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "CommunityRating": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "DownloadCount": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "IsHashMatch": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UploadSubtitleDto": {
        "required": [
          "Data",
          "Format",
          "IsForced",
          "Language"
        ],
        "type": "object",
        "properties": {
          "Language": {
            "type": "string",
            "description": "Gets or sets the subtitle language."
          },
          "Format": {
            "type": "string",
            "description": "Gets or sets the subtitle format."
          },
          "IsForced": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the subtitle is forced."
          },
          "Data": {
            "type": "string",
            "description": "Gets or sets the subtitle data."
          }
        },
        "additionalProperties": false,
        "description": "Upload subtitles dto."
      },
      "BufferRequestDto": {
        "type": "object",
        "properties": {
          "When": {
            "type": "string",
            "description": "Gets or sets when the request has been made by the client.",
            "format": "date-time"
          },
          "PositionTicks": {
            "type": "integer",
            "description": "Gets or sets the position ticks.",
            "format": "int64"
          },
          "IsPlaying": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the client playback is unpaused."
          },
          "PlaylistItemId": {
            "type": "string",
            "description": "Gets or sets the playlist item identifier of the playing item.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "Class BufferRequestDto."
      },
      "JoinGroupRequestDto": {
        "type": "object",
        "properties": {
          "GroupId": {
            "type": "string",
            "description": "Gets or sets the group identifier.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "Class JoinGroupRequestDto."
      },
      "GroupStateType": {
        "enum": [
          "Idle",
          "Waiting",
          "Paused",
          "Playing"
        ],
        "type": "string",
        "description": "Enum GroupState."
      },
      "GroupInfoDto": {
        "type": "object",
        "properties": {
          "GroupId": {
            "type": "string",
            "description": "Gets the group identifier.",
            "format": "uuid",
            "readOnly": true
          },
          "GroupName": {
            "type": "string",
            "description": "Gets the group name.",
            "nullable": true,
            "readOnly": true
          },
          "State": {
            "$ref": "#/components/schemas/GroupStateType"
          },
          "Participants": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets the participants.",
            "nullable": true,
            "readOnly": true
          },
          "LastUpdatedAt": {
            "type": "string",
            "description": "Gets the date when this DTO has been created.",
            "format": "date-time",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Class GroupInfoDto."
      },
      "MovePlaylistItemRequestDto": {
        "type": "object",
        "properties": {
          "PlaylistItemId": {
            "type": "string",
            "description": "Gets or sets the playlist identifier of the item.",
            "format": "uuid"
          },
          "NewIndex": {
            "type": "integer",
            "description": "Gets or sets the new position.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Class MovePlaylistItemRequestDto."
      },
      "NewGroupRequestDto": {
        "type": "object",
        "properties": {
          "GroupName": {
            "type": "string",
            "description": "Gets or sets the group name.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Class NewGroupRequestDto."
      },
      "NextItemRequestDto": {
        "type": "object",
        "properties": {
          "PlaylistItemId": {
            "type": "string",
            "description": "Gets or sets the playing item identifier.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "Class NextItemRequestDto."
      },
      "PingRequestDto": {
        "type": "object",
        "properties": {
          "Ping": {
            "type": "integer",
            "description": "Gets or sets the ping time.",
            "format": "int64"
          }
        },
        "additionalProperties": false,
        "description": "Class PingRequestDto."
      },
      "PreviousItemRequestDto": {
        "type": "object",
        "properties": {
          "PlaylistItemId": {
            "type": "string",
            "description": "Gets or sets the playing item identifier.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "Class PreviousItemRequestDto."
      },
      "GroupQueueMode": {
        "enum": [
          "Queue",
          "QueueNext"
        ],
        "type": "string",
        "description": "Enum GroupQueueMode."
      },
      "QueueRequestDto": {
        "type": "object",
        "properties": {
          "ItemIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Gets or sets the items to enqueue.",
            "nullable": true
          },
          "Mode": {
            "$ref": "#/components/schemas/GroupQueueMode"
          }
        },
        "additionalProperties": false,
        "description": "Class QueueRequestDto."
      },
      "ReadyRequestDto": {
        "type": "object",
        "properties": {
          "When": {
            "type": "string",
            "description": "Gets or sets when the request has been made by the client.",
            "format": "date-time"
          },
          "PositionTicks": {
            "type": "integer",
            "description": "Gets or sets the position ticks.",
            "format": "int64"
          },
          "IsPlaying": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the client playback is unpaused."
          },
          "PlaylistItemId": {
            "type": "string",
            "description": "Gets or sets the playlist item identifier of the playing item.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "Class ReadyRequest."
      },
      "RemoveFromPlaylistRequestDto": {
        "type": "object",
        "properties": {
          "PlaylistItemIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Gets or sets the playlist identifiers ot the items.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Class RemoveFromPlaylistRequestDto."
      },
      "SeekRequestDto": {
        "type": "object",
        "properties": {
          "PositionTicks": {
            "type": "integer",
            "description": "Gets or sets the position ticks.",
            "format": "int64"
          }
        },
        "additionalProperties": false,
        "description": "Class SeekRequestDto."
      },
      "IgnoreWaitRequestDto": {
        "type": "object",
        "properties": {
          "IgnoreWait": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the client should be ignored."
          }
        },
        "additionalProperties": false,
        "description": "Class IgnoreWaitRequestDto."
      },
      "PlayRequestDto": {
        "type": "object",
        "properties": {
          "PlayingQueue": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Gets or sets the playing queue.",
            "nullable": true
          },
          "PlayingItemPosition": {
            "type": "integer",
            "description": "Gets or sets the position of the playing item in the queue.",
            "format": "int32"
          },
          "StartPositionTicks": {
            "type": "integer",
            "description": "Gets or sets the start position ticks.",
            "format": "int64"
          }
        },
        "additionalProperties": false,
        "description": "Class PlayRequestDto."
      },
      "SetPlaylistItemRequestDto": {
        "type": "object",
        "properties": {
          "PlaylistItemId": {
            "type": "string",
            "description": "Gets or sets the playlist identifier of the playing item.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "Class SetPlaylistItemRequestDto."
      },
      "GroupRepeatMode": {
        "enum": [
          "RepeatOne",
          "RepeatAll",
          "RepeatNone"
        ],
        "type": "string",
        "description": "Enum GroupRepeatMode."
      },
      "SetRepeatModeRequestDto": {
        "type": "object",
        "properties": {
          "Mode": {
            "$ref": "#/components/schemas/GroupRepeatMode"
          }
        },
        "additionalProperties": false,
        "description": "Class SetRepeatModeRequestDto."
      },
      "GroupShuffleMode": {
        "enum": [
          "Sorted",
          "Shuffle"
        ],
        "type": "string",
        "description": "Enum GroupShuffleMode."
      },
      "SetShuffleModeRequestDto": {
        "type": "object",
        "properties": {
          "Mode": {
            "$ref": "#/components/schemas/GroupShuffleMode"
          }
        },
        "additionalProperties": false,
        "description": "Class SetShuffleModeRequestDto."
      },
      "EndPointInfo": {
        "type": "object",
        "properties": {
          "IsLocal": {
            "type": "boolean"
          },
          "IsInNetwork": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "InstallationInfo": {
        "type": "object",
        "properties": {
          "Guid": {
            "type": "string",
            "description": "Gets or sets the Id.",
            "format": "uuid"
          },
          "Name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "Version": {
            "$ref": "#/components/schemas/Version"
          },
          "Changelog": {
            "type": "string",
            "description": "Gets or sets the changelog for this version.",
            "nullable": true
          },
          "SourceUrl": {
            "type": "string",
            "description": "Gets or sets the source URL.",
            "nullable": true
          },
          "Checksum": {
            "type": "string",
            "description": "Gets or sets a checksum for the binary.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Class InstallationInfo."
      },
      "FFmpegLocation": {
        "enum": [
          "NotFound",
          "SetByArgument",
          "Custom",
          "System"
        ],
        "type": "string",
        "description": "Enum describing the location of the FFmpeg tool."
      },
      "Architecture": {
        "enum": [
          "X86",
          "X64",
          "Arm",
          "Arm64",
          "Wasm"
        ],
        "type": "string"
      },
      "SystemInfo": {
        "type": "object",
        "properties": {
          "LocalAddress": {
            "type": "string",
            "description": "Gets or sets the local address.",
            "nullable": true
          },
          "ServerName": {
            "type": "string",
            "description": "Gets or sets the name of the server.",
            "nullable": true
          },
          "Version": {
            "type": "string",
            "description": "Gets or sets the server version.",
            "nullable": true
          },
          "ProductName": {
            "type": "string",
            "description": "Gets or sets the product name. This is the AssemblyProduct name.",
            "nullable": true
          },
          "OperatingSystem": {
            "type": "string",
            "description": "Gets or sets the operating system.",
            "nullable": true
          },
          "Id": {
            "type": "string",
            "description": "Gets or sets the id.",
            "nullable": true
          },
          "StartupWizardCompleted": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the startup wizard is completed.",
            "nullable": true
          },
          "OperatingSystemDisplayName": {
            "type": "string",
            "description": "Gets or sets the display name of the operating system.",
            "nullable": true
          },
          "PackageName": {
            "type": "string",
            "description": "Get or sets the package name.",
            "nullable": true
          },
          "HasPendingRestart": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance has pending restart."
          },
          "IsShuttingDown": {
            "type": "boolean"
          },
          "SupportsLibraryMonitor": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether [supports library monitor]."
          },
          "WebSocketPortNumber": {
            "type": "integer",
            "description": "Gets or sets the web socket port number.",
            "format": "int32"
          },
          "CompletedInstallations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InstallationInfo"
            },
            "description": "Gets or sets the completed installations.",
            "nullable": true
          },
          "CanSelfRestart": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance can self restart."
          },
          "CanLaunchWebBrowser": {
            "type": "boolean"
          },
          "ProgramDataPath": {
            "type": "string",
            "description": "Gets or sets the program data path.",
            "nullable": true
          },
          "WebPath": {
            "type": "string",
            "description": "Gets or sets the web UI resources path.",
            "nullable": true
          },
          "ItemsByNamePath": {
            "type": "string",
            "description": "Gets or sets the items by name path.",
            "nullable": true
          },
          "CachePath": {
            "type": "string",
            "description": "Gets or sets the cache path.",
            "nullable": true
          },
          "LogPath": {
            "type": "string",
            "description": "Gets or sets the log path.",
            "nullable": true
          },
          "InternalMetadataPath": {
            "type": "string",
            "description": "Gets or sets the internal metadata path.",
            "nullable": true
          },
          "TranscodingTempPath": {
            "type": "string",
            "description": "Gets or sets the transcode path.",
            "nullable": true
          },
          "HasUpdateAvailable": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance has update available."
          },
          "EncoderLocation": {
            "$ref": "#/components/schemas/FFmpegLocation"
          },
          "SystemArchitecture": {
            "$ref": "#/components/schemas/Architecture"
          }
        },
        "additionalProperties": false,
        "description": "Class SystemInfo."
      },
      "PublicSystemInfo": {
        "type": "object",
        "properties": {
          "LocalAddress": {
            "type": "string",
            "description": "Gets or sets the local address.",
            "nullable": true
          },
          "ServerName": {
            "type": "string",
            "description": "Gets or sets the name of the server.",
            "nullable": true
          },
          "Version": {
            "type": "string",
            "description": "Gets or sets the server version.",
            "nullable": true
          },
          "ProductName": {
            "type": "string",
            "description": "Gets or sets the product name. This is the AssemblyProduct name.",
            "nullable": true
          },
          "OperatingSystem": {
            "type": "string",
            "description": "Gets or sets the operating system.",
            "nullable": true
          },
          "Id": {
            "type": "string",
            "description": "Gets or sets the id.",
            "nullable": true
          },
          "StartupWizardCompleted": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the startup wizard is completed.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LogFile": {
        "type": "object",
        "properties": {
          "DateCreated": {
            "type": "string",
            "description": "Gets or sets the date created.",
            "format": "date-time"
          },
          "DateModified": {
            "type": "string",
            "description": "Gets or sets the date modified.",
            "format": "date-time"
          },
          "Size": {
            "type": "integer",
            "description": "Gets or sets the size.",
            "format": "int64"
          },
          "Name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "WakeOnLanInfo": {
        "type": "object",
        "properties": {
          "MacAddress": {
            "type": "string",
            "description": "Gets the MAC address of the device.",
            "nullable": true
          },
          "Port": {
            "type": "integer",
            "description": "Gets or sets the wake-on-LAN port.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Provides the MAC address and port for wake-on-LAN functionality."
      },
      "UtcTimeResponse": {
        "type": "object",
        "properties": {
          "RequestReceptionTime": {
            "type": "string",
            "description": "Gets the UTC time when request has been received.",
            "format": "date-time",
            "readOnly": true
          },
          "ResponseTransmissionTime": {
            "type": "string",
            "description": "Gets the UTC time when response has been sent.",
            "format": "date-time",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Class UtcTimeResponse."
      },
      "SubtitlePlaybackMode": {
        "enum": [
          "Default",
          "Always",
          "OnlyForced",
          "None",
          "Smart"
        ],
        "type": "string",
        "description": "An enum representing a subtitle playback mode."
      },
      "UserConfiguration": {
        "type": "object",
        "properties": {
          "AudioLanguagePreference": {
            "type": "string",
            "description": "Gets or sets the audio language preference.",
            "nullable": true
          },
          "PlayDefaultAudioTrack": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether [play default audio track]."
          },
          "SubtitleLanguagePreference": {
            "type": "string",
            "description": "Gets or sets the subtitle language preference.",
            "nullable": true
          },
          "DisplayMissingEpisodes": {
            "type": "boolean"
          },
          "GroupedFolders": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "SubtitleMode": {
            "$ref": "#/components/schemas/SubtitlePlaybackMode"
          },
          "DisplayCollectionsView": {
            "type": "boolean"
          },
          "EnableLocalPassword": {
            "type": "boolean"
          },
          "OrderedViews": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "LatestItemsExcludes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "MyMediaExcludes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "HidePlayedInLatest": {
            "type": "boolean"
          },
          "RememberAudioSelections": {
            "type": "boolean"
          },
          "RememberSubtitleSelections": {
            "type": "boolean"
          },
          "EnableNextEpisodeAutoPlay": {
            "type": "boolean"
          }
        },
        "additionalProperties": false,
        "description": "Class UserConfiguration."
      },
      "DynamicDayOfWeek": {
        "enum": [
          "Sunday",
          "Monday",
          "Tuesday",
          "Wednesday",
          "Thursday",
          "Friday",
          "Saturday",
          "Everyday",
          "Weekday",
          "Weekend"
        ],
        "type": "string",
        "description": "An enum that represents a day of the week, weekdays, weekends, or all days."
      },
      "AccessSchedule": {
        "required": [
          "DayOfWeek",
          "EndHour",
          "Id",
          "StartHour",
          "UserId"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Gets or sets the id of this instance.",
            "format": "int32",
            "readOnly": true
          },
          "UserId": {
            "type": "string",
            "description": "Gets or sets the id of the associated user.",
            "format": "uuid",
            "readOnly": true
          },
          "DayOfWeek": {
            "$ref": "#/components/schemas/DynamicDayOfWeek"
          },
          "StartHour": {
            "type": "number",
            "description": "Gets or sets the start hour.",
            "format": "double"
          },
          "EndHour": {
            "type": "number",
            "description": "Gets or sets the end hour.",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "An entity representing a user's access schedule."
      },
      "UnratedItem": {
        "enum": [
          "Movie",
          "Trailer",
          "Series",
          "Music",
          "Book",
          "LiveTvChannel",
          "LiveTvProgram",
          "ChannelContent",
          "Other"
        ],
        "type": "string",
        "description": "An enum representing an unrated item."
      },
      "SyncPlayUserAccessType": {
        "enum": [
          "CreateAndJoinGroups",
          "JoinGroups",
          "None"
        ],
        "type": "string",
        "description": "Enum SyncPlayUserAccessType."
      },
      "UserPolicy": {
        "type": "object",
        "properties": {
          "IsAdministrator": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is administrator."
          },
          "IsHidden": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is hidden."
          },
          "IsDisabled": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is disabled."
          },
          "MaxParentalRating": {
            "type": "integer",
            "description": "Gets or sets the max parental rating.",
            "format": "int32",
            "nullable": true
          },
          "BlockedTags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "EnableUserPreferenceAccess": {
            "type": "boolean"
          },
          "AccessSchedules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AccessSchedule"
            },
            "nullable": true
          },
          "BlockUnratedItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UnratedItem"
            },
            "nullable": true
          },
          "EnableRemoteControlOfOtherUsers": {
            "type": "boolean"
          },
          "EnableSharedDeviceControl": {
            "type": "boolean"
          },
          "EnableRemoteAccess": {
            "type": "boolean"
          },
          "EnableLiveTvManagement": {
            "type": "boolean"
          },
          "EnableLiveTvAccess": {
            "type": "boolean"
          },
          "EnableMediaPlayback": {
            "type": "boolean"
          },
          "EnableAudioPlaybackTranscoding": {
            "type": "boolean"
          },
          "EnableVideoPlaybackTranscoding": {
            "type": "boolean"
          },
          "EnablePlaybackRemuxing": {
            "type": "boolean"
          },
          "ForceRemoteSourceTranscoding": {
            "type": "boolean"
          },
          "EnableContentDeletion": {
            "type": "boolean"
          },
          "EnableContentDeletionFromFolders": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "EnableContentDownloading": {
            "type": "boolean"
          },
          "EnableSyncTranscoding": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether [enable synchronize]."
          },
          "EnableMediaConversion": {
            "type": "boolean"
          },
          "EnabledDevices": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "EnableAllDevices": {
            "type": "boolean"
          },
          "EnabledChannels": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "nullable": true
          },
          "EnableAllChannels": {
            "type": "boolean"
          },
          "EnabledFolders": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "nullable": true
          },
          "EnableAllFolders": {
            "type": "boolean"
          },
          "InvalidLoginAttemptCount": {
            "type": "integer",
            "format": "int32"
          },
          "LoginAttemptsBeforeLockout": {
            "type": "integer",
            "format": "int32"
          },
          "MaxActiveSessions": {
            "type": "integer",
            "format": "int32"
          },
          "EnablePublicSharing": {
            "type": "boolean"
          },
          "BlockedMediaFolders": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "nullable": true
          },
          "BlockedChannels": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "nullable": true
          },
          "RemoteClientBitrateLimit": {
            "type": "integer",
            "format": "int32"
          },
          "AuthenticationProviderId": {
            "type": "string",
            "nullable": true
          },
          "PasswordResetProviderId": {
            "type": "string",
            "nullable": true
          },
          "SyncPlayAccess": {
            "$ref": "#/components/schemas/SyncPlayUserAccessType"
          }
        },
        "additionalProperties": false
      },
      "UserDto": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "ServerId": {
            "type": "string",
            "description": "Gets or sets the server identifier.",
            "nullable": true
          },
          "ServerName": {
            "type": "string",
            "description": "Gets or sets the name of the server.\r\nThis is not used by the server and is for client-side usage only.",
            "nullable": true
          },
          "Id": {
            "type": "string",
            "description": "Gets or sets the id.",
            "format": "uuid"
          },
          "PrimaryImageTag": {
            "type": "string",
            "description": "Gets or sets the primary image tag.",
            "nullable": true
          },
          "HasPassword": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance has password."
          },
          "HasConfiguredPassword": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance has configured password."
          },
          "HasConfiguredEasyPassword": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance has configured easy password."
          },
          "EnableAutoLogin": {
            "type": "boolean",
            "description": "Gets or sets whether async login is enabled or not.",
            "nullable": true
          },
          "LastLoginDate": {
            "type": "string",
            "description": "Gets or sets the last login date.",
            "format": "date-time",
            "nullable": true
          },
          "LastActivityDate": {
            "type": "string",
            "description": "Gets or sets the last activity date.",
            "format": "date-time",
            "nullable": true
          },
          "Configuration": {
            "$ref": "#/components/schemas/UserConfiguration"
          },
          "Policy": {
            "$ref": "#/components/schemas/UserPolicy"
          },
          "PrimaryImageAspectRatio": {
            "type": "number",
            "description": "Gets or sets the primary image aspect ratio.",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Class UserDto."
      },
      "AuthenticationResult": {
        "type": "object",
        "properties": {
          "User": {
            "$ref": "#/components/schemas/UserDto"
          },
          "SessionInfo": {
            "$ref": "#/components/schemas/SessionInfo"
          },
          "AccessToken": {
            "type": "string",
            "nullable": true
          },
          "ServerId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateUserEasyPassword": {
        "type": "object",
        "properties": {
          "NewPassword": {
            "type": "string",
            "description": "Gets or sets the new sha1-hashed password.",
            "nullable": true
          },
          "NewPw": {
            "type": "string",
            "description": "Gets or sets the new password.",
            "nullable": true
          },
          "ResetPassword": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether to reset the password."
          }
        },
        "additionalProperties": false,
        "description": "The update user easy password request body."
      },
      "UpdateUserPassword": {
        "type": "object",
        "properties": {
          "CurrentPassword": {
            "type": "string",
            "description": "Gets or sets the current sha1-hashed password.",
            "nullable": true
          },
          "CurrentPw": {
            "type": "string",
            "description": "Gets or sets the current plain text password.",
            "nullable": true
          },
          "NewPw": {
            "type": "string",
            "description": "Gets or sets the new plain text password.",
            "nullable": true
          },
          "ResetPassword": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether to reset the password."
          }
        },
        "additionalProperties": false,
        "description": "The update user password request body."
      },
      "AuthenticateUserByName": {
        "type": "object",
        "properties": {
          "Username": {
            "type": "string",
            "description": "Gets or sets the username.",
            "nullable": true
          },
          "Pw": {
            "type": "string",
            "description": "Gets or sets the plain text password.",
            "nullable": true
          },
          "Password": {
            "type": "string",
            "description": "Gets or sets the sha1-hashed password.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The authenticate user by name request body."
      },
      "QuickConnectDto": {
        "required": [
          "Token"
        ],
        "type": "object",
        "properties": {
          "Token": {
            "type": "string",
            "description": "Gets or sets the quick connect token."
          }
        },
        "additionalProperties": false,
        "description": "The quick connect request body."
      },
      "ForgotPasswordDto": {
        "required": [
          "EnteredUsername"
        ],
        "type": "object",
        "properties": {
          "EnteredUsername": {
            "type": "string",
            "description": "Gets or sets the entered username to have its password reset."
          }
        },
        "additionalProperties": false,
        "description": "Forgot Password request body DTO."
      },
      "ForgotPasswordAction": {
        "enum": [
          "ContactAdmin",
          "PinCode",
          "InNetworkRequired"
        ],
        "type": "string"
      },
      "ForgotPasswordResult": {
        "type": "object",
        "properties": {
          "Action": {
            "$ref": "#/components/schemas/ForgotPasswordAction"
          },
          "PinFile": {
            "type": "string",
            "description": "Gets or sets the pin file.",
            "nullable": true
          },
          "PinExpirationDate": {
            "type": "string",
            "description": "Gets or sets the pin expiration date.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PinRedeemResult": {
        "type": "object",
        "properties": {
          "Success": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this MediaBrowser.Model.Users.PinRedeemResult is success."
          },
          "UsersReset": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the users reset.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateUserByName": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets or sets the username.",
            "nullable": true
          },
          "Password": {
            "type": "string",
            "description": "Gets or sets the password.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The create user by name request body."
      },
      "SpecialViewOptionDto": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets or sets view option name.",
            "nullable": true
          },
          "Id": {
            "type": "string",
            "description": "Gets or sets view option id.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Special view option dto."
      },
      "LibraryUpdateInfo": {
        "type": "object",
        "properties": {
          "FoldersAddedTo": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the folders added to.",
            "nullable": true
          },
          "FoldersRemovedFrom": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the folders removed from.",
            "nullable": true
          },
          "ItemsAdded": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the items added.",
            "nullable": true
          },
          "ItemsRemoved": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the items removed.",
            "nullable": true
          },
          "ItemsUpdated": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the items updated.",
            "nullable": true
          },
          "CollectionFolders": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "IsEmpty": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Class LibraryUpdateInfo."
      },
      "IPlugin": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Gets the name of the plugin.",
            "nullable": true,
            "readOnly": true
          },
          "Description": {
            "type": "string",
            "description": "Gets the Description.",
            "nullable": true,
            "readOnly": true
          },
          "Id": {
            "type": "string",
            "description": "Gets the unique id.",
            "format": "uuid",
            "readOnly": true
          },
          "Version": {
            "$ref": "#/components/schemas/Version"
          },
          "AssemblyFilePath": {
            "type": "string",
            "description": "Gets the path to the assembly file.",
            "nullable": true,
            "readOnly": true
          },
          "CanUninstall": {
            "type": "boolean",
            "description": "Gets a value indicating whether the plugin can be uninstalled.",
            "readOnly": true
          },
          "DataFolderPath": {
            "type": "string",
            "description": "Gets the full path to the data folder, where the plugin can store any miscellaneous files needed.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Defines the MediaBrowser.Common.Plugins.IPlugin."
      },
      "PlayRequest": {
        "type": "object",
        "properties": {
          "ItemIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Gets or sets the item ids.",
            "nullable": true
          },
          "StartPositionTicks": {
            "type": "integer",
            "description": "Gets or sets the start position ticks that the first item should be played at.",
            "format": "int64",
            "nullable": true
          },
          "PlayCommand": {
            "$ref": "#/components/schemas/PlayCommand"
          },
          "ControllingUserId": {
            "type": "string",
            "description": "Gets or sets the controlling user identifier.",
            "format": "uuid"
          },
          "SubtitleStreamIndex": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "AudioStreamIndex": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "MediaSourceId": {
            "type": "string",
            "nullable": true
          },
          "StartIndex": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Class PlayRequest."
      },
      "PlaystateRequest": {
        "type": "object",
        "properties": {
          "Command": {
            "$ref": "#/components/schemas/PlaystateCommand"
          },
          "SeekPositionTicks": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "ControllingUserId": {
            "type": "string",
            "description": "Gets or sets the controlling user identifier.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TimerEventInfo": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "ProgramId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SendCommandType": {
        "enum": [
          "Unpause",
          "Pause",
          "Stop",
          "Seek"
        ],
        "type": "string",
        "description": "Enum SendCommandType."
      },
      "SendCommand": {
        "type": "object",
        "properties": {
          "GroupId": {
            "type": "string",
            "description": "Gets the group identifier.",
            "format": "uuid",
            "readOnly": true
          },
          "PlaylistItemId": {
            "type": "string",
            "description": "Gets the playlist identifier of the playing item.",
            "format": "uuid",
            "readOnly": true
          },
          "When": {
            "type": "string",
            "description": "Gets or sets the UTC time when to execute the command.",
            "format": "date-time"
          },
          "PositionTicks": {
            "type": "integer",
            "description": "Gets the position ticks.",
            "format": "int64",
            "nullable": true,
            "readOnly": true
          },
          "Command": {
            "$ref": "#/components/schemas/SendCommandType"
          },
          "EmittedAt": {
            "type": "string",
            "description": "Gets the UTC time when this command has been emitted.",
            "format": "date-time",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Class SendCommand."
      },
      "GroupUpdateType": {
        "enum": [
          "UserJoined",
          "UserLeft",
          "GroupJoined",
          "GroupLeft",
          "StateUpdate",
          "PlayQueue",
          "NotInGroup",
          "GroupDoesNotExist",
          "CreateGroupDenied",
          "JoinGroupDenied",
          "LibraryAccessDenied"
        ],
        "type": "string",
        "description": "Enum GroupUpdateType."
      },
      "ObjectGroupUpdate": {
        "type": "object",
        "properties": {
          "GroupId": {
            "type": "string",
            "description": "Gets the group identifier.",
            "format": "uuid",
            "readOnly": true
          },
          "Type": {
            "$ref": "#/components/schemas/GroupUpdateType"
          },
          "Data": {
            "description": "Gets the update data.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Class GroupUpdate."
      }
    },
    "securitySchemes": {
      "CustomAuthentication": {
        "type": "apiKey",
        "description": "API key header parameter",
        "name": "X-Emby-Authorization",
        "in": "header"
      }
    }
  }
}