{
  "openapi": "3.1.1",
  "info": {
    "title": "Snacks | v1",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "http://localhost:6767/",
      "description": "Your self-hosted Snacks instance"
    }
  ],
  "paths": {
    "/api/health": {
      "get": {
        "tags": [
          "App"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/restart": {
      "post": {
        "tags": [
          "App"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/auth/config": {
      "get": {
        "tags": [
          "AuthApi"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "AuthApi"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveAuthRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveAuthRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SaveAuthRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/auth/apikey": {
      "get": {
        "tags": [
          "AuthApi"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "AuthApi"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/auth/apikey/generate": {
      "post": {
        "tags": [
          "AuthApi"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/auth/embed": {
      "get": {
        "tags": [
          "AuthApi"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "AuthApi"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/auth/embed/generate": {
      "post": {
        "tags": [
          "AuthApi"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/auth/embed/origins": {
      "post": {
        "tags": [
          "AuthApi"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveEmbedOriginsRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveEmbedOriginsRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SaveEmbedOriginsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/auto-scan/config": {
      "get": {
        "tags": [
          "AutoScan"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/auto-scan/enabled": {
      "post": {
        "tags": [
          "AutoScan"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AutoScanEnabledRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AutoScanEnabledRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AutoScanEnabledRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/auto-scan/interval": {
      "post": {
        "tags": [
          "AutoScan"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AutoScanIntervalRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AutoScanIntervalRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AutoScanIntervalRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/auto-scan/directories": {
      "post": {
        "tags": [
          "AutoScan"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AutoScanDirectoryRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AutoScanDirectoryRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AutoScanDirectoryRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "AutoScan"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AutoScanDirectoryRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AutoScanDirectoryRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AutoScanDirectoryRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/auto-scan/trigger": {
      "post": {
        "tags": [
          "AutoScan"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/auto-scan/clear-history": {
      "post": {
        "tags": [
          "AutoScan"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/auto-scan/exclusions": {
      "get": {
        "tags": [
          "AutoScan"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "AutoScan"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExclusionRules"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ExclusionRules"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ExclusionRules"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/cluster-admin/config": {
      "get": {
        "tags": [
          "ClusterAdmin"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "ClusterAdmin"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ClusterConfig"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ClusterConfig"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ClusterConfig"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/cluster-admin/status": {
      "get": {
        "tags": [
          "ClusterAdmin"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/cluster-admin/workers": {
      "get": {
        "tags": [
          "ClusterAdmin"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/cluster-admin/node-paused": {
      "post": {
        "tags": [
          "ClusterAdmin"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NodePauseRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/NodePauseRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/NodePauseRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/cluster-admin/local-encoding-paused": {
      "post": {
        "tags": [
          "ClusterAdmin"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PauseRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PauseRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PauseRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/cluster-admin/node-settings": {
      "get": {
        "tags": [
          "ClusterAdmin"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "ClusterAdmin"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NodeSettings"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/NodeSettings"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/NodeSettings"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "ClusterAdmin"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteNodeSettingsRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteNodeSettingsRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteNodeSettingsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/cluster-admin/master-time": {
      "get": {
        "tags": [
          "ClusterAdmin"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/cluster-admin/folder-settings": {
      "post": {
        "tags": [
          "ClusterAdmin"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveFolderSettingsRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveFolderSettingsRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SaveFolderSettingsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/cluster-admin/integration-sync": {
      "get": {
        "tags": [
          "ClusterAdmin"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/cluster-admin/integration-sync/refresh": {
      "post": {
        "tags": [
          "ClusterAdmin"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/diagnostics/log": {
      "get": {
        "tags": [
          "Diagnostics"
        ],
        "parameters": [
          {
            "name": "lines",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 200
            }
          },
          {
            "name": "nodeId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/diagnostics/logs.zip": {
      "get": {
        "tags": [
          "Diagnostics"
        ],
        "parameters": [
          {
            "name": "nodeId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/integrations/config": {
      "get": {
        "tags": [
          "Integrations"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Integrations"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IntegrationConfig"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/IntegrationConfig"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/IntegrationConfig"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/integrations/test/plex": {
      "post": {
        "tags": [
          "Integrations"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MediaServerIntegration"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MediaServerIntegration"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MediaServerIntegration"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/integrations/test/jellyfin": {
      "post": {
        "tags": [
          "Integrations"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MediaServerIntegration"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MediaServerIntegration"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MediaServerIntegration"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/integrations/test/sonarr": {
      "post": {
        "tags": [
          "Integrations"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ArrIntegration"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ArrIntegration"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ArrIntegration"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/integrations/test/radarr": {
      "post": {
        "tags": [
          "Integrations"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ArrIntegration"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ArrIntegration"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ArrIntegration"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/integrations/test/tvdb": {
      "post": {
        "tags": [
          "Integrations"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TvdbIntegration"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TvdbIntegration"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TvdbIntegration"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/integrations/test/tmdb": {
      "post": {
        "tags": [
          "Integrations"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TmdbIntegration"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TmdbIntegration"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TmdbIntegration"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/library/directories": {
      "get": {
        "tags": [
          "Library"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/library/subdirectories": {
      "get": {
        "tags": [
          "Library"
        ],
        "parameters": [
          {
            "name": "directoryPath",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/library/files": {
      "get": {
        "tags": [
          "Library"
        ],
        "parameters": [
          {
            "name": "directoryPath",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "recursive",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "skip",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 1000
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/library/process-directory": {
      "post": {
        "tags": [
          "Library"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProcessDirectoryRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ProcessDirectoryRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ProcessDirectoryRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/library/analyze-directory": {
      "post": {
        "tags": [
          "Library"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProcessDirectoryRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ProcessDirectoryRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ProcessDirectoryRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/library/analyze-status/{jobId}": {
      "get": {
        "tags": [
          "Library"
        ],
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/library/analyze-results/{jobId}": {
      "get": {
        "tags": [
          "Library"
        ],
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/library/analyze-cancel/{jobId}": {
      "post": {
        "tags": [
          "Library"
        ],
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/library/process-file": {
      "post": {
        "tags": [
          "Library"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProcessFileRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ProcessFileRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ProcessFileRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/library/health": {
      "get": {
        "tags": [
          "Library"
        ],
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "skip",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/library/insights": {
      "get": {
        "tags": [
          "Library"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/library/health/verify": {
      "post": {
        "tags": [
          "Library"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProcessFileRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ProcessFileRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ProcessFileRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/library/health/delete": {
      "post": {
        "tags": [
          "Library"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProcessFileRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ProcessFileRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ProcessFileRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/library/health/delete-all": {
      "post": {
        "tags": [
          "Library"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HealthDeleteAllRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/HealthDeleteAllRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/HealthDeleteAllRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/library/health/reset-verify": {
      "post": {
        "tags": [
          "Library"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HealthDeleteAllRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/HealthDeleteAllRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/HealthDeleteAllRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/library/health/reset-verify-file": {
      "post": {
        "tags": [
          "Library"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProcessFileRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ProcessFileRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ProcessFileRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/metrics": {
      "get": {
        "tags": [
          "Metrics"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/networking": {
      "get": {
        "tags": [
          "Networking"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Networking"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NetworkingSettings"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/NetworkingSettings"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/NetworkingSettings"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/notifications/config": {
      "get": {
        "tags": [
          "Notifications"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Notifications"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NotificationConfig"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/NotificationConfig"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/NotificationConfig"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/notifications/test": {
      "post": {
        "tags": [
          "Notifications"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NotificationDestination"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/NotificationDestination"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/NotificationDestination"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/queue/items": {
      "get": {
        "tags": [
          "Queue"
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "skip",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/queue/stats": {
      "get": {
        "tags": [
          "Queue"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/queue/item/{id}": {
      "get": {
        "tags": [
          "Queue"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/queue/logs/{id}": {
      "get": {
        "tags": [
          "Queue"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/queue/cancel/{id}": {
      "post": {
        "tags": [
          "Queue"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/queue/prioritize/{id}": {
      "post": {
        "tags": [
          "Queue"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/queue/stop/{id}": {
      "post": {
        "tags": [
          "Queue"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/queue/retry": {
      "post": {
        "tags": [
          "Queue"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RetryRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RetryRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RetryRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/queue/failed": {
      "get": {
        "tags": [
          "Queue"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "Queue"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/queue/paused": {
      "post": {
        "tags": [
          "Queue"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PauseRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PauseRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PauseRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "get": {
        "tags": [
          "Queue"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/settings": {
      "get": {
        "tags": [
          "Settings"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Settings"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JsonElement"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/JsonElement"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/JsonElement"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/settings/video-encoders": {
      "get": {
        "tags": [
          "Settings"
        ],
        "parameters": [
          {
            "name": "refresh",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/settings/advanced-video/validate": {
      "post": {
        "tags": [
          "Settings"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdvancedVideoValidationRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AdvancedVideoValidationRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AdvancedVideoValidationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/settings/advanced-video/impact": {
      "post": {
        "tags": [
          "Settings"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdvancedVideoValidationRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AdvancedVideoValidationRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AdvancedVideoValidationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/settings/advanced-video/measured": {
      "get": {
        "tags": [
          "Settings"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/settings/advanced-video/templates": {
      "get": {
        "tags": [
          "Settings"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Settings"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdvancedVideoTemplateSaveRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AdvancedVideoTemplateSaveRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AdvancedVideoTemplateSaveRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/settings/advanced-video/templates/{name}": {
      "delete": {
        "tags": [
          "Settings"
        ],
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/settings/reevaluate": {
      "post": {
        "tags": [
          "Settings"
        ],
        "parameters": [
          {
            "name": "forceRetryNoSavings",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/settings/presets": {
      "get": {
        "tags": [
          "Settings"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Settings"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PresetRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PresetRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PresetRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/settings/presets/{name}": {
      "delete": {
        "tags": [
          "Settings"
        ],
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/settings/presets/export/{name}": {
      "get": {
        "tags": [
          "Settings"
        ],
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/settings/presets/import": {
      "post": {
        "tags": [
          "Settings"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JsonElement"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/JsonElement"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/JsonElement"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v2/is-server-alive": {
      "post": {
        "tags": [
          "TdarrCompatibility"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v2/stats/get-pies": {
      "post": {
        "tags": [
          "TdarrCompatibility"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TdarrStatisticsResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TdarrStatisticsResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TdarrStatisticsResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/get-nodes": {
      "get": {
        "tags": [
          "TdarrCompatibility"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "$ref": "#/components/schemas/TdarrNode"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "$ref": "#/components/schemas/TdarrNode"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "$ref": "#/components/schemas/TdarrNode"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/client/status-tables": {
      "post": {
        "tags": [
          "TdarrCompatibility"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/TdarrStatusTableRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/TdarrStatusTableRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/TdarrStatusTableRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TdarrStatusTableResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TdarrStatusTableResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TdarrStatusTableResponse"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AdvancedVideoAction": {
        "enum": [
          "UseSimpleSettings",
          "TranscodeWithProfile",
          "MuxOnly",
          "Skip"
        ]
      },
      "AdvancedVideoFolderPolicy": {
        "enum": [
          "Inherit",
          "Simple",
          "Profile",
          null
        ]
      },
      "AdvancedVideoOptions": {
        "type": "object",
        "properties": {
          "version": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "enabled": {
            "type": "boolean"
          },
          "profiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VideoEncodingProfile"
            }
          },
          "rules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VideoRule"
            }
          },
          "defaultAction": {
            "$ref": "#/components/schemas/AdvancedVideoAction"
          },
          "defaultProfileId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          }
        }
      },
      "AdvancedVideoTemplateSaveRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "advancedVideo": {
            "$ref": "#/components/schemas/AdvancedVideoOptions"
          }
        }
      },
      "AdvancedVideoValidationRequest": {
        "type": "object",
        "properties": {
          "advancedVideo": {
            "$ref": "#/components/schemas/AdvancedVideoOptions"
          },
          "profileId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          },
          "sourceFacts": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/VideoSourceFacts"
              }
            ]
          },
          "fileQuery": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "ArrIntegration": {
        "type": "object",
        "properties": {
          "baseUrl": {
            "type": "string"
          },
          "apiKey": {
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          }
        }
      },
      "AudioOutputProfile": {
        "type": "object",
        "properties": {
          "codec": {
            "type": "string"
          },
          "layout": {
            "type": "string"
          },
          "bitrateKbps": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "sampleRateHz": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "AutoScanDirectoryRequest": {
        "type": "object",
        "properties": {
          "path": {
            "type": "string"
          }
        }
      },
      "AutoScanEnabledRequest": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean"
          }
        }
      },
      "AutoScanIntervalRequest": {
        "type": "object",
        "properties": {
          "intervalMinutes": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "ClusterConfig": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean"
          },
          "role": {
            "type": "string"
          },
          "nodeName": {
            "type": "string"
          },
          "sharedSecret": {
            "type": "string"
          },
          "autoDiscovery": {
            "type": "boolean"
          },
          "manualNodes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ManualNodeEntry"
            }
          },
          "heartbeatIntervalSeconds": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "nodeTimeoutSeconds": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "staleReceiveTimeoutSeconds": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "localEncodingEnabled": {
            "type": "boolean"
          },
          "nodeTempDirectory": {
            "type": [
              "null",
              "string"
            ]
          },
          "masterUrl": {
            "type": [
              "null",
              "string"
            ]
          },
          "nodeId": {
            "type": "string"
          },
          "useHttps": {
            "type": "boolean"
          },
          "sharedStorageEnabled": {
            "type": "boolean"
          },
          "sharedStorageInputPaths": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "sharedStorageOutputPaths": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "sharedStoragePathRewriteFrom": {
            "type": [
              "null",
              "string"
            ]
          },
          "sharedStoragePathRewriteTo": {
            "type": [
              "null",
              "string"
            ]
          },
          "sharedStoragePathRewrites": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SharedStorageRewrite"
            }
          }
        }
      },
      "CustomVideoOption": {
        "type": "object",
        "properties": {
          "option": {
            "type": "string"
          },
          "values": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "DayOfWeek": {
        "type": "integer"
      },
      "DeleteNodeSettingsRequest": {
        "type": "object",
        "properties": {
          "nodeId": {
            "type": "string"
          }
        }
      },
      "DeviceConcurrencySetting": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean"
          },
          "maxConcurrency": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "EncoderOptions": {
        "type": "object",
        "properties": {
          "format": {
            "type": "string"
          },
          "codec": {
            "type": "string"
          },
          "encoder": {
            "type": "string"
          },
          "targetBitrate": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "strictBitrate": {
            "type": "boolean"
          },
          "fourKBitrateMultiplier": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "skip4K": {
            "type": "boolean"
          },
          "ffmpegQualityPreset": {
            "type": "string"
          },
          "videoProfile": {
            "type": [
              "null",
              "string"
            ]
          },
          "videoLevel": {
            "type": [
              "null",
              "string"
            ]
          },
          "advancedVideo": {
            "$ref": "#/components/schemas/AdvancedVideoOptions"
          },
          "twoChannelAudio": {
            "type": "boolean"
          },
          "audioLanguagesToKeep": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "keepOriginalLanguage": {
            "type": "boolean"
          },
          "originalLanguageProvider": {
            "type": "string"
          },
          "audioCodec": {
            "type": "string"
          },
          "audioBitrateKbps": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "preserveOriginalAudio": {
            "type": "boolean"
          },
          "audioOutputs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AudioOutputProfile"
            }
          },
          "encodingMode": {
            "$ref": "#/components/schemas/EncodingMode"
          },
          "muxStreams": {
            "$ref": "#/components/schemas/MuxStreams"
          },
          "subtitleLanguagesToKeep": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "extractSubtitlesToSidecar": {
            "type": "boolean"
          },
          "sidecarSubtitleFormat": {
            "type": "string"
          },
          "convertImageSubtitlesToSrt": {
            "type": "boolean"
          },
          "passThroughImageSubtitlesMkv": {
            "type": "boolean"
          },
          "excludeSdhSubtitles": {
            "type": "boolean"
          },
          "autoSetDefaultTrack": {
            "type": "boolean"
          },
          "downscalePolicy": {
            "type": "string"
          },
          "downscaleTarget": {
            "type": "string"
          },
          "fixedFrameSize": {
            "type": [
              "null",
              "string"
            ]
          },
          "maxFrameRate": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "tonemapHdrToSdr": {
            "type": "boolean"
          },
          "removeBlackBorders": {
            "type": "boolean"
          },
          "deleteOriginalFile": {
            "type": "boolean"
          },
          "retryOnFail": {
            "type": "boolean"
          },
          "skipPercentAboveTarget": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "encodingLogRetentionDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "verifyFilesPerDay": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "queueNewestFirst": {
            "type": "boolean"
          },
          "outputDirectory": {
            "type": [
              "null",
              "string"
            ]
          },
          "encodeDirectory": {
            "type": [
              "null",
              "string"
            ]
          },
          "hardwareAcceleration": {
            "type": "string"
          },
          "hardwareDevicePath": {
            "type": [
              "null",
              "string"
            ]
          },
          "music": {
            "$ref": "#/components/schemas/MusicEncoderOptions"
          }
        }
      },
      "EncoderOptionsOverride": {
        "type": "object",
        "properties": {
          "advancedVideoPolicy": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/AdvancedVideoFolderPolicy"
              }
            ]
          },
          "advancedVideoProfileId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          },
          "format": {
            "type": [
              "null",
              "string"
            ]
          },
          "codec": {
            "type": [
              "null",
              "string"
            ]
          },
          "encoder": {
            "type": [
              "null",
              "string"
            ]
          },
          "targetBitrate": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "strictBitrate": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "fourKBitrateMultiplier": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "skip4K": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "hardwareAcceleration": {
            "type": [
              "null",
              "string"
            ]
          },
          "skipPercentAboveTarget": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "ffmpegQualityPreset": {
            "type": [
              "null",
              "string"
            ]
          },
          "videoProfile": {
            "type": [
              "null",
              "string"
            ]
          },
          "videoLevel": {
            "type": [
              "null",
              "string"
            ]
          },
          "twoChannelAudio": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "audioLanguagesToKeep": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "keepOriginalLanguage": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "originalLanguageProvider": {
            "type": [
              "null",
              "string"
            ]
          },
          "audioCodec": {
            "type": [
              "null",
              "string"
            ]
          },
          "audioBitrateKbps": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "preserveOriginalAudio": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "audioOutputs": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/AudioOutputProfile"
            }
          },
          "encodingMode": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/EncodingMode"
              }
            ]
          },
          "muxStreams": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/MuxStreams"
              }
            ]
          },
          "subtitleLanguagesToKeep": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "extractSubtitlesToSidecar": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "sidecarSubtitleFormat": {
            "type": [
              "null",
              "string"
            ]
          },
          "convertImageSubtitlesToSrt": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "passThroughImageSubtitlesMkv": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "downscalePolicy": {
            "type": [
              "null",
              "string"
            ]
          },
          "downscaleTarget": {
            "type": [
              "null",
              "string"
            ]
          },
          "fixedFrameSize": {
            "type": [
              "null",
              "string"
            ]
          },
          "maxFrameRate": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "tonemapHdrToSdr": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "queuePriority": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "deleteOriginalFile": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "removeBlackBorders": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "retryOnFail": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "outputDirectory": {
            "type": [
              "null",
              "string"
            ]
          },
          "encodeDirectory": {
            "type": [
              "null",
              "string"
            ]
          },
          "musicOverride": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/MusicEncoderOptionsOverride"
              }
            ]
          }
        }
      },
      "EncodingMode": {
        "enum": [
          "Transcode",
          "Hybrid",
          "MuxOnly",
          null
        ]
      },
      "ExclusionRules": {
        "type": "object",
        "properties": {
          "filenamePatterns": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "minSizeGBToSkip": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "excludeResolutions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "HealthDeleteAllRequest": {
        "type": "object",
        "properties": {
          "filter": {
            "type": [
              "null",
              "string"
            ]
          },
          "q": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "IntegrationConfig": {
        "type": "object",
        "properties": {
          "plex": {
            "$ref": "#/components/schemas/MediaServerIntegration"
          },
          "jellyfin": {
            "$ref": "#/components/schemas/MediaServerIntegration"
          },
          "sonarr": {
            "$ref": "#/components/schemas/ArrIntegration"
          },
          "radarr": {
            "$ref": "#/components/schemas/ArrIntegration"
          },
          "tvdb": {
            "$ref": "#/components/schemas/TvdbIntegration"
          },
          "tmdb": {
            "$ref": "#/components/schemas/TmdbIntegration"
          }
        }
      },
      "JsonElement": { },
      "ManualNodeEntry": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        }
      },
      "MediaServerIntegration": {
        "type": "object",
        "properties": {
          "baseUrl": {
            "type": "string"
          },
          "token": {
            "type": "string"
          },
          "rescanOnComplete": {
            "type": "boolean"
          },
          "enabled": {
            "type": "boolean"
          }
        }
      },
      "MusicEncoderOptions": {
        "type": "object",
        "properties": {
          "format": {
            "type": "string"
          },
          "codec": {
            "type": "string"
          },
          "bitrateKbps": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "vbrQuality": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "sampleRatePolicy": {
            "type": "string"
          },
          "channelPolicy": {
            "type": "string"
          },
          "skipIfAlreadyTargetCodec": {
            "type": "boolean"
          },
          "bitrateMatchTolerancePct": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "deleteOriginalFile": {
            "type": "boolean"
          },
          "outputDirectory": {
            "type": [
              "null",
              "string"
            ]
          },
          "copyMetadataAndArt": {
            "type": "boolean"
          },
          "masterMusicConcurrency": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "dispatchToCluster": {
            "type": "boolean"
          }
        }
      },
      "MusicEncoderOptionsOverride": {
        "type": "object",
        "properties": {
          "format": {
            "type": [
              "null",
              "string"
            ]
          },
          "codec": {
            "type": [
              "null",
              "string"
            ]
          },
          "bitrateKbps": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "vbrQuality": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "sampleRatePolicy": {
            "type": [
              "null",
              "string"
            ]
          },
          "channelPolicy": {
            "type": [
              "null",
              "string"
            ]
          },
          "skipIfAlreadyTargetCodec": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "bitrateMatchTolerancePct": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "deleteOriginalFile": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "outputDirectory": {
            "type": [
              "null",
              "string"
            ]
          },
          "copyMetadataAndArt": {
            "type": [
              "null",
              "boolean"
            ]
          }
        }
      },
      "MuxStreams": {
        "enum": [
          "Both",
          "Audio",
          "Subtitles",
          null
        ]
      },
      "NetworkingSettings": {
        "type": "object",
        "properties": {
          "maxConcurrentUploads": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "maxConcurrentUploadsPerNode": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "maxConcurrentDownloads": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "maxConcurrentDownloadsPerNode": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "maxUploadMBps": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "maxUploadMBpsPerNode": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "maxDownloadMBps": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "maxDownloadMBpsPerNode": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "chunkSizeMB": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "NodePauseRequest": {
        "type": "object",
        "properties": {
          "nodeId": {
            "type": "string"
          },
          "paused": {
            "type": "boolean"
          }
        }
      },
      "NodeSettings": {
        "type": "object",
        "properties": {
          "nodeId": {
            "type": "string"
          },
          "displayName": {
            "type": [
              "null",
              "string"
            ]
          },
          "only4K": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "exclude4K": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "encodingOverrides": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/EncoderOptionsOverride"
              }
            ]
          },
          "deviceSettings": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {
              "$ref": "#/components/schemas/DeviceConcurrencySetting"
            }
          },
          "schedule": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/ScheduleWindow"
            }
          },
          "disableSharedStorage": {
            "type": [
              "null",
              "boolean"
            ]
          }
        }
      },
      "NotificationConfig": {
        "type": "object",
        "properties": {
          "destinations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NotificationDestination"
            }
          },
          "events": {
            "$ref": "#/components/schemas/NotificationEventToggles"
          }
        }
      },
      "NotificationDestination": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          },
          "secret": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "NotificationEventToggles": {
        "type": "object",
        "properties": {
          "encodeStarted": {
            "type": "boolean"
          },
          "encodeCompleted": {
            "type": "boolean"
          },
          "encodeFailed": {
            "type": "boolean"
          },
          "scanCompleted": {
            "type": "boolean"
          },
          "nodeOffline": {
            "type": "boolean"
          },
          "nodeOnline": {
            "type": "boolean"
          }
        }
      },
      "PauseRequest": {
        "type": "object",
        "properties": {
          "paused": {
            "type": "boolean"
          }
        }
      },
      "PresetRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "options": {
            "$ref": "#/components/schemas/JsonElement"
          }
        }
      },
      "ProcessDirectoryRequest": {
        "type": "object",
        "properties": {
          "directoryPath": {
            "type": "string"
          },
          "recursive": {
            "type": "boolean"
          },
          "options": {
            "$ref": "#/components/schemas/EncoderOptions"
          }
        }
      },
      "ProcessFileRequest": {
        "type": "object",
        "properties": {
          "filePath": {
            "type": "string"
          },
          "options": {
            "$ref": "#/components/schemas/EncoderOptions"
          }
        }
      },
      "RetryRequest": {
        "type": "object",
        "properties": {
          "filePath": {
            "type": "string"
          }
        }
      },
      "SaveAuthRequest": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean"
          },
          "username": {
            "type": "string"
          },
          "password": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "SaveEmbedOriginsRequest": {
        "type": "object",
        "properties": {
          "origins": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "SaveFolderSettingsRequest": {
        "type": "object",
        "properties": {
          "path": {
            "type": "string"
          },
          "encodingOverrides": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/EncoderOptionsOverride"
              }
            ]
          }
        }
      },
      "ScheduleWindow": {
        "type": "object",
        "properties": {
          "days": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DayOfWeek"
            }
          },
          "start": {
            "type": "string"
          },
          "end": {
            "type": "string"
          }
        }
      },
      "SharedStorageRewrite": {
        "type": "object",
        "properties": {
          "from": {
            "type": "string"
          },
          "to": {
            "type": "string"
          }
        }
      },
      "TdarrAudioStatistics": {
        "type": "object",
        "properties": {
          "codecs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TdarrPieSegment"
            }
          },
          "containers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TdarrPieSegment"
            }
          }
        }
      },
      "TdarrNode": {
        "type": "object",
        "properties": {
          "_id": {
            "type": "string"
          },
          "nodeName": {
            "type": "string"
          },
          "nodePaused": {
            "type": "boolean"
          },
          "workers": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/TdarrWorker"
            }
          }
        }
      },
      "TdarrPieSegment": {
        "required": [
          "name",
          "value"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "value": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "TdarrPieStats": {
        "type": "object",
        "properties": {
          "totalFiles": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "totalTranscodeCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "sizeDiff": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "totalHealthCheckCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "status": {
            "$ref": "#/components/schemas/TdarrStatusGroups"
          },
          "video": {
            "$ref": "#/components/schemas/TdarrVideoStatistics"
          },
          "audio": {
            "$ref": "#/components/schemas/TdarrAudioStatistics"
          }
        }
      },
      "TdarrPluginDetails": {
        "type": "object",
        "properties": {
          "number": {
            "type": "string"
          }
        }
      },
      "TdarrStatisticsResponse": {
        "type": "object",
        "properties": {
          "pieStats": {
            "$ref": "#/components/schemas/TdarrPieStats"
          }
        }
      },
      "TdarrStatusGroups": {
        "type": "object",
        "properties": {
          "transcode": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TdarrPieSegment"
            }
          },
          "healthcheck": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TdarrPieSegment"
            }
          }
        }
      },
      "TdarrStatusTableOptions": {
        "type": "object",
        "properties": {
          "table": {
            "type": "string"
          }
        }
      },
      "TdarrStatusTableRequest": {
        "type": "object",
        "properties": {
          "data": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/TdarrStatusTableRequestData"
              }
            ]
          }
        }
      },
      "TdarrStatusTableRequestData": {
        "type": "object",
        "properties": {
          "start": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "pageSize": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "opts": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/TdarrStatusTableOptions"
              }
            ]
          }
        }
      },
      "TdarrStatusTableResponse": {
        "type": "object",
        "properties": {
          "array": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TdarrStatusTableRow"
            }
          },
          "totalCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "TdarrStatusTableRow": {
        "type": "object",
        "properties": {
          "_id": {
            "type": "string"
          },
          "HealthCheck": {
            "type": "string"
          },
          "TranscodeDecisionMaker": {
            "type": "string"
          },
          "file": {
            "type": "string"
          },
          "file_size": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "container": {
            "type": "string"
          },
          "video_codec_name": {
            "type": "string"
          },
          "video_resolution": {
            "type": "string"
          }
        }
      },
      "TdarrVideoStatistics": {
        "type": "object",
        "properties": {
          "codecs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TdarrPieSegment"
            }
          },
          "containers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TdarrPieSegment"
            }
          },
          "resolutions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TdarrPieSegment"
            }
          }
        }
      },
      "TdarrWorker": {
        "type": "object",
        "properties": {
          "_id": {
            "type": "string"
          },
          "file": {
            "type": "string"
          },
          "fps": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "percentage": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "ETA": {
            "type": "string"
          },
          "job": {
            "$ref": "#/components/schemas/TdarrWorkerJob"
          },
          "status": {
            "type": "string"
          },
          "lastPluginDetails": {
            "$ref": "#/components/schemas/TdarrPluginDetails"
          },
          "originalfileSizeInGbytes": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "estSize": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "outputFileSizeInGbytes": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "workerType": {
            "type": "string"
          }
        }
      },
      "TdarrWorkerJob": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          }
        }
      },
      "TmdbIntegration": {
        "type": "object",
        "properties": {
          "apiKey": {
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          }
        }
      },
      "TvdbIntegration": {
        "type": "object",
        "properties": {
          "apiKey": {
            "type": "string"
          },
          "pin": {
            "type": [
              "null",
              "string"
            ]
          },
          "enabled": {
            "type": "boolean"
          }
        }
      },
      "VideoEncoderSelectionMode": {
        "enum": [
          "Automatic",
          "Explicit"
        ]
      },
      "VideoEncodingProfile": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "codec": {
            "type": "string"
          },
          "encoderSelection": {
            "$ref": "#/components/schemas/VideoEncoderSelectionMode"
          },
          "encoder": {
            "type": [
              "null",
              "string"
            ]
          },
          "hardwareAcceleration": {
            "type": "string"
          },
          "rateControl": {
            "$ref": "#/components/schemas/VideoRateControlOptions"
          },
          "preset": {
            "type": [
              "null",
              "string"
            ]
          },
          "threads": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "pixelFormat": {
            "type": [
              "null",
              "string"
            ]
          },
          "gopSize": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "videoProfile": {
            "type": [
              "null",
              "string"
            ]
          },
          "videoLevel": {
            "type": [
              "null",
              "string"
            ]
          },
          "downscalePolicy": {
            "type": "string"
          },
          "downscaleTarget": {
            "type": "string"
          },
          "fixedFrameSize": {
            "type": [
              "null",
              "string"
            ]
          },
          "maxFrameRate": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "tonemapHdrToSdr": {
            "type": "boolean"
          },
          "removeBlackBorders": {
            "type": "boolean"
          },
          "additionalVideoFilters": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "customOptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomVideoOption"
            }
          },
          "outputRetention": {
            "$ref": "#/components/schemas/VideoOutputRetention"
          }
        }
      },
      "VideoOutputRetention": {
        "enum": [
          "SmallerOnly",
          "AlwaysKeep"
        ]
      },
      "VideoRateControlMode": {
        "enum": [
          "Bitrate",
          "Quality",
          "Custom"
        ]
      },
      "VideoRateControlOptions": {
        "type": "object",
        "properties": {
          "mode": {
            "$ref": "#/components/schemas/VideoRateControlMode"
          },
          "targetKbps": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "minKbps": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "maxKbps": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "bufferKbits": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "strictBitrate": {
            "type": "boolean"
          },
          "quality": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "VideoRule": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          },
          "match": {
            "$ref": "#/components/schemas/VideoRuleMatchMode"
          },
          "conditions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VideoRuleCondition"
            }
          },
          "action": {
            "$ref": "#/components/schemas/AdvancedVideoAction"
          },
          "profileId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          }
        }
      },
      "VideoRuleCondition": {
        "type": "object",
        "properties": {
          "field": {
            "$ref": "#/components/schemas/VideoRuleField"
          },
          "operator": {
            "$ref": "#/components/schemas/VideoRuleOperator"
          },
          "values": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "VideoRuleField": {
        "enum": [
          "Codec",
          "Width",
          "Height",
          "ResolutionClass",
          "BitrateKbps",
          "FileSizeBytes",
          "DurationSeconds",
          "PixelFormat",
          "BitDepth",
          "IsHdr",
          "Is4K"
        ]
      },
      "VideoRuleMatchMode": {
        "enum": [
          "All",
          "Any"
        ]
      },
      "VideoRuleOperator": {
        "enum": [
          "Is",
          "IsNot",
          "In",
          "NotIn",
          "GreaterThan",
          "GreaterThanOrEqual",
          "LessThan",
          "LessThanOrEqual",
          "Between",
          "IsKnown",
          "IsUnknown"
        ]
      },
      "VideoSourceFacts": {
        "type": "object",
        "properties": {
          "codec": {
            "type": [
              "null",
              "string"
            ]
          },
          "width": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "height": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "resolutionClass": {
            "type": [
              "null",
              "string"
            ]
          },
          "bitrateKbps": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int64"
          },
          "fileSizeBytes": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int64"
          },
          "durationSeconds": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "pixelFormat": {
            "type": [
              "null",
              "string"
            ]
          },
          "bitDepth": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "isHdr": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "is4K": {
            "type": [
              "null",
              "boolean"
            ]
          }
        }
      }
    }
  },
  "tags": [
    {
      "name": "App"
    },
    {
      "name": "AuthApi"
    },
    {
      "name": "AutoScan"
    },
    {
      "name": "ClusterAdmin"
    },
    {
      "name": "Diagnostics"
    },
    {
      "name": "Integrations"
    },
    {
      "name": "Library"
    },
    {
      "name": "Metrics"
    },
    {
      "name": "Networking"
    },
    {
      "name": "Notifications"
    },
    {
      "name": "Queue"
    },
    {
      "name": "Settings"
    },
    {
      "name": "TdarrCompatibility"
    }
  ]
}
