info:
  description: Documentation for the Unmanic application API
  title: Unmanic API
  version: '2'
servers:
- url: http://localhost:8888/unmanic/api/v2/
  description: Local environment
components:
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic
  schemas:
    DocumentContentSuccess:
      type: object
      properties:
        content:
          type: array
          minItems: 1
          description: Document contents read line-by-line into a list
          example:
          - 'First line

            '
          - 'Second line

            '
          - '

            '
          items:
            type: string
      required:
      - content
    BadRequest:
      type: object
      properties:
        error:
          type: string
          description: Return status code and reason
          example: '400: Failed request schema validation'
        messages:
          type: object
          description: Attached request body validation errors
          example: &id001
            name:
            - The thing that went wrong.
        traceback:
          type: array
          description: Attached exception traceback (if developer mode is enabled)
          example: &id002
          - 'Traceback (most recent call last):

            '
          - '...'
          - 'json.decoder.JSONDecodeError: Expecting value: line 3 column 14 (char
            45)

            '
          items:
            type: string
      required:
      - error
      - messages
    BadEndpoint:
      type: object
      properties:
        error:
          type: string
          description: Return status code and reason
          example: '404: Endpoint not found'
      required:
      - error
    BadMethod:
      type: object
      properties:
        error:
          type: string
          description: Return status code and reason
          example: '405: Method ''GET'' not allowed'
      required:
      - error
    InternalError:
      type: object
      properties:
        error:
          type: string
          description: Return status code and reason
          example: '500: Caught exception message'
        messages:
          type: object
          description: Attached request body validation errors
          example: *id001
        traceback:
          type: array
          description: Attached exception traceback (if developer mode is enabled)
          example: *id002
          items:
            type: string
      required:
      - error
      - messages
    RequestDirectoryListingData:
      type: object
      properties:
        current_path:
          type: string
          default: /
          example: /
        list_type:
          type: string
          default: all
          example: directories
    DirectoryListingResults:
      type: object
      properties:
        directories:
          type: array
          minItems: 0
          description: A list of directories in the given path
          example:
          - value: home
            label: /home
          - value: tmp
            label: /tmp
          items:
            type: object
        files:
          type: array
          minItems: 0
          description: A list of files in the given path
          example:
          - value: file1.txt
            label: /file1.txt
          - value: file2.txt
            label: /file2.txt
          items:
            type: object
      required:
      - directories
      - files
    RequestHistoryTableData:
      type: object
      properties:
        start:
          type: integer
          default: 0
          description: Start row number to select from
          example: 0
        length:
          type: integer
          default: 10
          description: Number of rows to select
          example: 10
        search_value:
          type: string
          default: ''
          description: String to filter search results by
          example: items with this text in the value
        status:
          type: string
          default: all
          description: Filter on the status
          example: all
        after:
          type: string
          format: date-time
          nullable: true
          description: Filter entries since datetime
          example: 2022-04-07 01:45
        before:
          type: string
          format: date-time
          nullable: true
          description: Filter entries prior to datetime
          example: 2022-04-07 01:55
        order_by:
          type: string
          default: finish_time
          example: finish_time
        order_direction:
          type: string
          enum:
          - asc
          - desc
          description: Order direction ('asc' or 'desc')
          example: desc
    CompletedTasksTableResults:
      type: object
      properties:
        id:
          type: integer
          description: Item ID
          example: 1
        task_label:
          type: string
          description: Item label
          example: example.mp4
        task_success:
          type: boolean
          description: Item success status
          example: true
        finish_time:
          type: integer
          description: Item finish time
          example: 1627392616.6400812
      required:
      - finish_time
      - id
      - task_label
      - task_success
    CompletedTasks:
      type: object
      properties:
        recordsTotal:
          type: integer
          description: Total number of records in this table
          example: 329
        recordsFiltered:
          type: integer
          default: 10
          description: Total number of records after filters have been applied
          example: 10
        results:
          minItems: 0
          description: Results
          type: array
          items:
            $ref: '#/components/schemas/CompletedTasksTableResults'
        successCount:
          type: integer
          description: Total count of times with a success status in the results list
          example: 337
        failedCount:
          type: integer
          description: Total count of times with a failed status in the results list
          example: 2
      required:
      - failedCount
      - results
      - successCount
    RequestTableUpdateByIdList:
      type: object
      properties:
        id_list:
          type: array
          minItems: 1
          description: List of table IDs
          example: &id003 []
          items:
            type: integer
      required:
      - id_list
    BaseSuccess:
      type: object
      properties:
        success:
          type: boolean
          description: This is always "True" when a request succeeds
          example: true
      required:
      - success
    RequestAddCompletedToPendingTasks:
      type: object
      properties:
        id_list:
          type: array
          minItems: 1
          description: List of table IDs
          example: *id003
          items:
            type: integer
        library_id:
          type: integer
          default: 0
          example: 1
      required:
      - id_list
    CompletedTasksLogRequest:
      type: object
      properties:
        task_id:
          type: integer
          description: The ID of the task
          example: 1
      required:
      - task_id
    CompletedTasksLog:
      type: object
      properties:
        command_log:
          type: string
          description: Long string...
          example: Long string...
        command_log_lines:
          type: array
          description: The long string broken up into an array of lines
          example:
          - ''
          - '<b>RUNNER: </b>'
          - 'Video Encoder H264 - libx264 [Pass #1]'
          - ''
          - <b>COMMAND:</b>
          - ''
          - '...'
          items:
            type: string
      required:
      - command_log
      - command_log_lines
    NotificationData:
      type: object
      properties:
        uuid:
          type: string
          description: Unique ID for this notification
          example: updateAvailable
        type:
          type: string
          description: The type of notification
          example: info
        icon:
          type: string
          description: The icon to display with the notification
          example: update
        label:
          type: string
          description: The label of the notification. Can be a I18n key or a string
          example: updateAvailableLabel
        message:
          type: string
          description: The message of the notification. Can be a I18n key or a string
          example: updateAvailableMessage
        navigation:
          type: object
          description: The navigation links of the notification
          example:
            url: https://docs.unmanic.app
      required:
      - icon
      - label
      - message
      - navigation
      - type
      - uuid
    RequestNotificationsData:
      type: object
      properties:
        notifications:
          minItems: 0
          description: List of notifications
          type: array
          items:
            $ref: '#/components/schemas/NotificationData'
      required:
      - notifications
    RequestTableUpdateByUuidList:
      type: object
      properties:
        uuid_list:
          type: array
          minItems: 1
          description: List of table UUIDs
          example: []
          items:
            type: string
      required:
      - uuid_list
    RequestPendingTableData:
      type: object
      properties:
        start:
          type: integer
          default: 0
          description: Start row number to select from
          example: 0
        length:
          type: integer
          default: 10
          description: Number of rows to select
          example: 10
        search_value:
          type: string
          default: ''
          description: String to filter search results by
          example: items with this text in the value
        status:
          type: string
          default: all
          description: Filter on the status
          example: all
        after:
          type: string
          format: date-time
          nullable: true
          description: Filter entries since datetime
          example: 2022-04-07 01:45
        before:
          type: string
          format: date-time
          nullable: true
          description: Filter entries prior to datetime
          example: 2022-04-07 01:55
        order_by:
          type: string
          default: priority
          example: priority
        order_direction:
          type: string
          enum:
          - asc
          - desc
          description: Order direction ('asc' or 'desc')
          example: desc
    PendingTasksTableResults:
      type: object
      properties:
        id:
          type: integer
          description: Item ID
          example: 1
        abspath:
          type: string
          description: File absolute path
          example: example.mp4
        priority:
          type: integer
          description: The current priority (higher is greater)
          example: 100
        type:
          type: string
          description: The type of the pending task - local or remote
          example: local
        status:
          type: string
          description: The current status of the pending task
          example: pending
        checksum:
          type: string
          description: The uploaded file md5 checksum
          example: 5425ab3df5cdbad2e1099bb4cb963a4f
        library_id:
          type: integer
          description: The ID of the library for which this task was created
          example: 1
        library_name:
          type: string
          description: The name of the library for which this task was created
          example: Default
      required:
      - abspath
      - id
      - priority
      - status
      - type
    PendingTasks:
      type: object
      properties:
        recordsTotal:
          type: integer
          description: Total number of records in this table
          example: 329
        recordsFiltered:
          type: integer
          default: 10
          description: Total number of records after filters have been applied
          example: 10
        results:
          minItems: 0
          description: Results
          type: array
          items:
            $ref: '#/components/schemas/PendingTasksTableResults'
      required:
      - results
    RequestPendingTasksReorder:
      type: object
      properties:
        id_list:
          type: array
          minItems: 1
          description: List of table IDs
          example: *id003
          items:
            type: integer
        position:
          type: string
          enum:
          - top
          - bottom
          description: Position to move given list of items to ('top' or 'bottom')
          example: top
      required:
      - id_list
      - position
    RequestPendingTaskCreate:
      type: object
      properties:
        path:
          type: string
          description: The absolute path to a file
          example: /library/TEST_FILE.mkv
        library_id:
          type: integer
          description: The ID of the library to append this task to
          example: 1
        library_name:
          type: string
          description: The name of the library to append this task to
          example: Default
        type:
          type: string
          description: The type of pending task to create (local/remote)
          example: local
        priority_score:
          type: integer
          description: Apply a priority score to the created task to either increase
            or decrease its position in the queue
          example: 1000
      required:
      - path
    RequestPendingTasksLibraryUpdate:
      type: object
      properties:
        id_list:
          type: array
          minItems: 1
          description: List of table IDs
          example: *id003
          items:
            type: integer
        library_name:
          type: string
          example: Default
      required:
      - id_list
      - library_name
    TaskDownloadLink:
      type: object
      properties:
        link_id:
          type: string
          description: The ID used to download the file /unmanic/downloads/{link_id}
          example: 2960645c-a4e2-4b05-8866-7bd469ee9ef8
      required:
      - link_id
    RequestPluginsTableData:
      type: object
      properties:
        start:
          type: integer
          default: 0
          description: Start row number to select from
          example: 0
        length:
          type: integer
          default: 10
          description: Number of rows to select
          example: 10
        search_value:
          type: string
          default: ''
          description: String to filter search results by
          example: items with this text in the value
        status:
          type: string
          default: all
          description: Filter on the status
          example: all
        after:
          type: string
          format: date-time
          nullable: true
          description: Filter entries since datetime
          example: 2022-04-07 01:45
        before:
          type: string
          format: date-time
          nullable: true
          description: Filter entries prior to datetime
          example: 2022-04-07 01:55
        order_by:
          type: string
          default: name
          example: name
        order_direction:
          type: string
          enum:
          - asc
          - desc
          description: Order direction ('asc' or 'desc')
          example: desc
    PluginStatus:
      type: object
      properties:
        installed:
          type: boolean
          description: Is the plugin installed
          example: true
        update_available:
          type: boolean
          description: Does the plugin have an update available
          example: true
    PluginsTableResults:
      type: object
      properties:
        plugin_id:
          type: string
          description: The plugin ID
          example: encoder_video_h264_nvenc
        name:
          type: string
          description: The plugin name
          example: Video Encoder H264 - h264_nvenc
        author:
          type: string
          description: The plugin author
          example: encoder_video_h264_nvenc
        description:
          type: string
          description: The plugin description
          example: Ensure all video streams are encoded with the H264 codec using
            the h264_nvenc encoder.
        version:
          type: string
          description: The plugin version
          example: Josh.5
        icon:
          type: string
          description: The plugin icon
          example: https://raw.githubusercontent.com/Josh5/unmanic-plugins/master/source/encoder_video_h264_nvenc/icon.png
        tags:
          type: string
          description: The plugin tags
          example: video,encoder,ffmpeg,worker,nvenc,nvdec,nvidia
        status:
          description: The plugin status
          allOf:
          - $ref: '#/components/schemas/PluginStatus'
        changelog:
          type: string
          description: The plugin changelog
          example: "[b][color=56adda]0.0.1[/color][/b]\u2022 initial version"
        has_config:
          type: boolean
          description: The plugin has the ability to be configured
          example: true
        id:
          type: integer
          description: Item table ID
          example: 1
      required:
      - author
      - description
      - icon
      - id
      - name
      - plugin_id
      - status
      - tags
      - version
    PluginsData:
      type: object
      properties:
        recordsTotal:
          type: integer
          description: Total number of records in this table
          example: 329
        recordsFiltered:
          type: integer
          default: 10
          description: Total number of records after filters have been applied
          example: 10
        results:
          minItems: 0
          description: Results
          type: array
          items:
            $ref: '#/components/schemas/PluginsTableResults'
      required:
      - results
    RequestPluginsInfo:
      type: object
      properties:
        plugin_id:
          type: string
          example: encoder_video_hevc_vaapi
        repo_id:
          type: string
          description: The ID of the repository that this plugin is in
          example: '158899500680826593283708490873332175078'
        prefer_local:
          type: boolean
          default: true
          example: true
        library_id:
          type: integer
          default: 0
          example: 1
      required:
      - plugin_id
    PluginsConfigInputItem:
      type: object
      properties:
        key_id:
          type: string
          description: The config input base64 encoded key (used for linking keys
            containing spaces, etc.)
          example: c8f122656ed2acabde9b57101a4c8ec7
        key:
          type: string
          description: The config input key or name
          example: downmix_dts_hd_ma
        value:
          description: The current value of this config input
          example: false
        input_type:
          type: string
          description: The config input type
          example: checkbox
        label:
          type: string
          description: The label used to define this config input
          example: Downmix DTS-HD Master Audio (max 5.1 channels)?
        description:
          type: string
          nullable: true
          description: Description of input field
          example: 'Will automatically downmix DTS-HD Master Audio to 5.1 channels '
        tooltip:
          type: string
          nullable: true
          description: Description of input field
          example: 'Will automatically downmix DTS-HD Master Audio to 5.1 channels '
        select_options:
          type: array
          description: Additional options if the input_type is set to 'select'
          example:
          - value: first
            label: First Option
          - value: second
            label: Second Option
          items:
            type: object
        slider_options:
          type: object
          description: Additional options if the input_type is set to 'slider'
          example:
            min: 1
            max: 8
            suffix: M
        display:
          type: string
          description: Should the setting input be displayed (visible, hidden)
          example: visible
        sub_setting:
          type: boolean
          description: Should the setting be a nested sub-setting field
          example: false
      required:
      - description
      - display
      - input_type
      - key
      - key_id
      - label
      - select_options
      - slider_options
      - sub_setting
      - tooltip
      - value
    PluginsInfoResults:
      type: object
      properties:
        plugin_id:
          type: string
          description: The plugin ID
          example: encoder_video_h264_nvenc
        name:
          type: string
          description: The plugin name
          example: Video Encoder H264 - h264_nvenc
        author:
          type: string
          description: The plugin author
          example: encoder_video_h264_nvenc
        description:
          type: string
          description: The plugin description
          example: Ensure all video streams are encoded with the H264 codec using
            the h264_nvenc encoder.
        version:
          type: string
          description: The plugin version
          example: Josh.5
        icon:
          type: string
          description: The plugin icon
          example: https://raw.githubusercontent.com/Josh5/unmanic-plugins/master/source/encoder_video_h264_nvenc/icon.png
        tags:
          type: string
          description: The plugin tags
          example: video,encoder,ffmpeg,worker,nvenc,nvdec,nvidia
        status:
          description: The plugin status
          allOf:
          - $ref: '#/components/schemas/PluginStatus'
        changelog:
          type: string
          description: The plugin changelog
          example: "[b][color=56adda]0.0.1[/color][/b]\u2022 initial version"
        has_config:
          type: boolean
          description: The plugin has the ability to be configured
          example: true
        settings:
          description: The plugin settings
          type: array
          items:
            $ref: '#/components/schemas/PluginsConfigInputItem'
      required:
      - author
      - description
      - icon
      - name
      - plugin_id
      - status
      - tags
      - version
    RequestPluginsSettingsSave:
      type: object
      properties:
        plugin_id:
          type: string
          example: encoder_video_hevc_vaapi
        settings:
          description: The plugin settings
          type: array
          items:
            $ref: '#/components/schemas/PluginsConfigInputItem'
        library_id:
          type: integer
          default: 0
          example: 1
      required:
      - plugin_id
      - settings
    RequestPluginsSettingsReset:
      type: object
      properties:
        plugin_id:
          type: string
          example: encoder_video_hevc_vaapi
        library_id:
          type: integer
          default: 0
          example: 1
      required:
      - plugin_id
    PluginsMetadataInstallableResults:
      type: object
      properties:
        plugin_id:
          type: string
          description: The plugin ID
          example: encoder_video_h264_nvenc
        name:
          type: string
          description: The plugin name
          example: Video Encoder H264 - h264_nvenc
        author:
          type: string
          description: The plugin author
          example: encoder_video_h264_nvenc
        description:
          type: string
          description: The plugin description
          example: Ensure all video streams are encoded with the H264 codec using
            the h264_nvenc encoder.
        version:
          type: string
          description: The plugin version
          example: Josh.5
        icon:
          type: string
          description: The plugin icon
          example: https://raw.githubusercontent.com/Josh5/unmanic-plugins/master/source/encoder_video_h264_nvenc/icon.png
        tags:
          type: string
          description: The plugin tags
          example: video,encoder,ffmpeg,worker,nvenc,nvdec,nvidia
        status:
          description: The plugin status
          allOf:
          - $ref: '#/components/schemas/PluginStatus'
        changelog:
          type: string
          description: The plugin changelog
          example: "[b][color=56adda]0.0.1[/color][/b]\u2022 initial version"
        has_config:
          type: boolean
          description: The plugin has the ability to be configured
          example: true
        package_url:
          type: string
          description: The plugin package download URL
          example: https://raw.githubusercontent.com/Unmanic/unmanic-plugins/repo/plugin_id/plugin_id-1.0.0.zip
        changelog_url:
          type: string
          description: The plugin package download URL
          example: https://raw.githubusercontent.com/Unmanic/unmanic-plugins/repo/plugin_id/changelog.md
        repo_name:
          type: string
          description: The name of the repository that this plugin is in
          example: Official Repo
        repo_id:
          type: string
          description: The ID of the repository that this plugin is in
          example: '158899500680826593283708490873332175078'
      required:
      - author
      - description
      - icon
      - name
      - plugin_id
      - status
      - tags
      - version
    PluginsInstallableResults:
      type: object
      properties:
        plugins:
          minItems: 0
          description: Results
          type: array
          items:
            $ref: '#/components/schemas/PluginsMetadataInstallableResults'
      required:
      - plugins
    RequestPluginsById:
      type: object
      properties:
        plugin_id:
          type: string
          example: encoder_video_hevc_vaapi
        repo_id:
          type: string
          description: The ID of the repository that this plugin is in
          example: '158899500680826593283708490873332175078'
      required:
      - plugin_id
    RequestPluginsFlowByPluginType:
      type: object
      properties:
        plugin_type:
          type: string
          example: library_management.file_test
        library_id:
          type: integer
          default: 1
          example: 1
      required:
      - plugin_type
    PluginTypesResults:
      type: object
      properties:
        results:
          type: array
          description: List of Plugin Type IDs supported by this installation
          example:
          - library_management.file_test
          - postprocessor.file_move
          - postprocessor.task_result
          - worker.process_item
          items:
            type: string
      required:
      - results
    PluginFlowDataResults:
      type: object
      properties:
        plugin_id:
          type: string
          description: The plugin ID
          example: encoder_video_h264_nvenc
        name:
          type: string
          description: The plugin name
          example: Video Encoder H264 - h264_nvenc
        author:
          type: string
          description: The plugin author
          example: encoder_video_h264_nvenc
        description:
          type: string
          description: The plugin description
          example: Ensure all video streams are encoded with the H264 codec using
            the h264_nvenc encoder.
        version:
          type: string
          description: The plugin version
          example: Josh.5
        icon:
          type: string
          description: The plugin icon
          example: https://raw.githubusercontent.com/Josh5/unmanic-plugins/master/source/encoder_video_h264_nvenc/icon.png
      required:
      - author
      - description
      - icon
      - name
      - plugin_id
      - version
    RequestSavingPluginsFlowByPluginType:
      type: object
      properties:
        plugin_type:
          type: string
          example: library_management.file_test
        library_id:
          type: integer
          default: 1
          example: 1
        plugin_flow:
          minItems: 1
          description: Saved flow
          type: array
          items:
            $ref: '#/components/schemas/PluginFlowDataResults'
      required:
      - plugin_flow
      - plugin_type
    RequestUpdatePluginReposList:
      type: object
      properties:
        repos_list:
          type: array
          minItems: 0
          description: A list of repost to save
          example:
          - https://raw.githubusercontent.com/Josh5/unmanic-plugins/repo/repo.json
          items:
            type: string
      required:
      - repos_list
    PluginReposMetadataResults:
      type: object
      properties:
        id:
          type: string
          description: The plugin repo ID
          example: repository.josh5
        name:
          type: string
          description: The plugin repo name
          example: Josh.5 Development Plugins for Unmanic
        icon:
          type: string
          description: The plugin repo icon
          example: https://raw.githubusercontent.com/Josh5/unmanic-plugins/master/icon.png
        path:
          type: string
          description: The plugin repo URL path
          example: https://raw.githubusercontent.com/Josh5/unmanic-plugins/repo/repo.json
      required:
      - icon
      - id
      - name
      - path
    PluginReposListResults:
      type: object
      properties:
        repos:
          minItems: 0
          description: Results
          type: array
          items:
            $ref: '#/components/schemas/PluginReposMetadataResults'
      required:
      - repos
    PluginsDataPanelTypesData:
      type: object
      properties:
        results:
          minItems: 0
          description: Results
          type: array
          items:
            $ref: '#/components/schemas/PluginFlowDataResults'
      required:
      - results
    SessionStateSuccess:
      type: object
      properties:
        level:
          type: integer
          description: User level
          example: 0
        picture_uri:
          type: string
          description: User picture
          example: https://c8.patreon.com/2/200/561356054
        name:
          type: string
          description: User name
          example: ExampleUsername123
        email:
          type: string
          description: User email
          example: example@gmail.com
        created:
          type: number
          description: Session time created
          example: 1627793093.676484
        uuid:
          type: string
          description: Installation uuid
          example: b429fcc7-9ce1-bcb3-2b8a-b094747f226e
      required:
      - level
      - uuid
    SettingsReadAndWrite:
      type: object
      properties:
        settings:
          type: object
          description: The current settings
          example:
            ui_port: 8888
            debugging: false
            library_path: /library
            enable_library_scanner: false
            schedule_full_scan_minutes: 1440
            follow_symlinks: true
            run_full_scan_on_start: false
            cache_path: /tmp/unmanic
      required:
      - settings
    SettingsSystemConfig:
      type: object
      properties:
        configuration:
          type: object
          description: The current system configuration
          example: {}
      required:
      - configuration
    RequestSettingsRemoteInstallationAddressValidation:
      type: object
      properties:
        address:
          type: string
          description: The address of the remote installation
          example: 192.168.1.2:8888
        auth:
          type: string
          nullable: true
          description: Authentication type
          example: Basic
        username:
          type: string
          nullable: true
          description: An optional username
          example: foo
        password:
          type: string
          nullable: true
          description: An optional password
          example: bar
      required:
      - address
    SettingsRemoteInstallationData:
      type: object
      properties:
        installation:
          type: object
          description: The data from the remote installation
          example: {}
      required:
      - installation
    WorkerEventScheduleResults:
      type: object
      properties:
        repetition:
          type: string
          description: ''
          example: daily
        schedule_task:
          type: string
          description: The type of task. ['count', 'pause', 'resume']
          example: count
        schedule_time:
          type: string
          description: ''
          example: The time when the task should be executed on
        schedule_worker_count:
          type: integer
          description: The worker count to set (only valid if schedule_task is count)
          example: 4
      required:
      - repetition
      - schedule_task
      - schedule_time
    SettingsWorkerGroupConfig:
      type: object
      properties:
        id:
          type: integer
          nullable: true
          description: ''
          example: 1
        locked:
          type: boolean
          description: If the worker group is locked and cannot be deleted
          example: false
        name:
          type: string
          description: The name of the worker group
          example: Default Group
        number_of_workers:
          type: integer
          description: The number of workers in this group
          example: 3
        worker_event_schedules:
          minItems: 0
          description: Any scheduled evenets for this worker group
          type: array
          items:
            $ref: '#/components/schemas/WorkerEventScheduleResults'
        tags:
          type: array
          description: A list of tags associated with this worker
          example:
          - GPU
          - priority
          items:
            type: string
      required:
      - id
      - locked
      - name
      - number_of_workers
      - tags
      - worker_event_schedules
    WorkerGroupsList:
      type: object
      properties:
        worker_groups:
          minItems: 0
          description: Results
          type: array
          items:
            $ref: '#/components/schemas/SettingsWorkerGroupConfig'
      required:
      - worker_groups
    RequestDatabaseItemById:
      type: object
      properties:
        id:
          type: integer
          description: The ID of the table item
          example: 1
      required:
      - id
    RequestRemoteInstallationLinkConfig:
      type: object
      properties:
        uuid:
          type: string
          description: The uuid of the remote installation
          example: 7cd35429-76ab-4a29-8649-8c91236b5f8b
      required:
      - uuid
    SettingsRemoteInstallationLinkConfig:
      type: object
      properties:
        link_config:
          type: object
          description: The configuration for the remote installation link
          example:
            address: 10.0.0.2:8888
            auth: None
            username: ''
            password: ''
            available: true
            name: API schema generated
            version: 0.1.3
            last_updated: 1636166593.013826
            enable_receiving_tasks: false
            enable_sending_tasks: false
            enable_task_preloading: true
            enable_distributed_worker_count: false
            preloading_count: 2
            enable_checksum_validation: false
            enable_config_missing_libraries: false
        distributed_worker_count_target:
          type: integer
          description: The target count of workers to be distributed across any configured
            linked installations
          example: 4
      required:
      - link_config
    LibraryResults:
      type: object
      properties:
        id:
          type: integer
          description: ''
          example: 1
        name:
          type: string
          description: The name of the library
          example: Default
        path:
          type: string
          description: The library path
          example: /library
        locked:
          type: boolean
          description: If the library is locked and cannot be deleted
          example: false
        enable_remote_only:
          type: boolean
          description: If the library is configured for remote files only
          example: false
        enable_scanner:
          type: boolean
          description: If the library is configured to execute library scans
          example: false
        enable_inotify:
          type: boolean
          description: If the library is configured to monitor for file changes
          example: false
        tags:
          type: array
          description: A list of tags associated with this library
          example:
          - GPU
          - priority
          items:
            type: string
      required:
      - enable_inotify
      - enable_remote_only
      - enable_scanner
      - id
      - locked
      - name
      - path
      - tags
    SettingsLibrariesList:
      type: object
      properties:
        libraries:
          minItems: 1
          description: Results
          type: array
          items:
            $ref: '#/components/schemas/LibraryResults'
      required:
      - libraries
    RequestLibraryById:
      type: object
      properties:
        id:
          type: integer
          description: The ID of the library
          example: 1
      required:
      - id
    SettingsLibraryConfigReadAndWrite:
      type: object
      properties:
        library_config:
          type: object
          description: The library configuration
          example:
            id: 1
            name: Default
            path: /library
            enable_scanner: false
            enable_inotify: false
            priority_score: 0
            tags: []
        plugins:
          type: object
          description: The library's enabled plugins
          example:
            enabled_plugins:
            - library_id: 1
              plugin_id: notify_plex
              name: Notify Plex
              description: Notify Plex on completion of a task.
              icon: https://raw.githubusercontent.com/Josh5/unmanic.plugin.notify_plex/master/icon.png
      required:
      - library_config
    SettingsLibraryPluginConfigExport:
      type: object
      properties:
        plugins:
          type: object
          description: The library's enabled plugins
          example: &id004
            enabled_plugins:
            - library_id: 1
              plugin_id: encoder_audio_ac3
              name: Audio Encoder AC3
              description: Ensure all audio streams are encoded with the AC3 codec
                using the native FFmpeg ac3 encoder.
              icon: https://raw.githubusercontent.com/Josh5/unmanic.plugin.encoder_audio_ac3/master/icon.png
            plugin_flow:
              library_management.file_test:
              - plugin_id: encoder_audio_ac3
                name: Audio Encoder AC3
                author: Josh.5
                description: Ensure all audio streams are encoded with the AC3 codec
                  using the native FFmpeg ac3 encoder.
                version: 0.0.2
                icon: https://raw.githubusercontent.com/Josh5/unmanic.plugin.encoder_audio_ac3/master/icon.png
              worker.process_item:
              - plugin_id: encoder_audio_ac3
                name: Audio Encoder AC3
                author: Josh.5
                description: Ensure all audio streams are encoded with the AC3 codec
                  using the native FFmpeg ac3 encoder.
                version: 0.0.2
                icon: https://raw.githubusercontent.com/Josh5/unmanic.plugin.encoder_audio_ac3/master/icon.png
              postprocessor.file_move: []
              postprocessor.task_result: []
        library_config:
          type: object
          description: The library configuration
          example: &id005
            id: 1
            name: Default
            path: /library
            enable_scanner: false
            enable_inotify: false
            priority_score: 0
            tags: []
      required:
      - plugins
    SettingsLibraryPluginConfigImport:
      type: object
      properties:
        plugins:
          type: object
          description: The library's enabled plugins
          example: *id004
        library_config:
          type: object
          description: The library configuration
          example: *id005
        library_id:
          type: integer
          example: 1
      required:
      - library_id
      - plugins
    VersionReadSuccess:
      type: object
      properties:
        version:
          type: string
          description: Application version
          example: 1.0.0
      required:
      - version
    RequestWorkerById:
      type: object
      properties:
        worker_id:
          type: string
          example: '1'
      required:
      - worker_id
    WorkerStatusResults:
      type: object
      properties:
        id:
          type: string
          description: ''
          example: W0
        name:
          type: string
          description: ''
          example: Worker-W0
        idle:
          type: boolean
          description: Flag - is worker idle
          example: true
        paused:
          type: boolean
          description: Flag - is worker paused
          example: false
        start_time:
          type: string
          nullable: true
          description: The time when this worker started processing a task
          example: '1635746377.0021548'
        current_file:
          type: string
          description: The basename of the file currently being processed
          example: file.mp4
        current_task:
          type: integer
          nullable: true
          description: The Task ID
          example: 1
        worker_log_tail:
          type: array
          minItems: 0
          description: The log lines produced by the worker
          example:
          - "\n\nRUNNER: \nRemux Video Files [Pass #1]\n\n"
          - '

            Executing plugin runner... Please wait'
          - '

            Runner did not request to execute a command'
          - '


            No Plugin requested to run commands for this file ''/tmp/unmanic/unmanic_remote_pending_library-1635746225.3336523/file.mp4'''
          items:
            type: string
        runners_info:
          type: object
          description: The status of the plugin runner currently processing the file
          example:
            video_remuxer:
              plugin_id: video_remuxer
              status: complete
              name: Remux Video Files
              author: Josh.5
              version: 0.0.5
              icon: https://raw.githubusercontent.com/Josh5/unmanic.plugin.video_remuxer/master/icon.png
              description: Remux a video file to the configured container
              success: true
        subprocess:
          type: object
          description: The status of the process currently being executed
          example:
            pid: 140408939493120
            percent: None
            elapsed: None
      required:
      - current_file
      - current_task
      - id
      - idle
      - name
      - paused
      - runners_info
      - start_time
      - subprocess
      - worker_log_tail
    WorkerStatusSuccess:
      type: object
      properties:
        workers_status:
          minItems: 0
          description: Results
          type: array
          items:
            $ref: '#/components/schemas/WorkerStatusResults'
      required:
      - workers_status
security:
- BasicAuth: []
paths:
  /docs/privacypolicy:
    get:
      description: Returns the privacy policy.
      responses:
        '200':
          description: 'Sample response: Returns the privacy policy.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocumentContentSuccess'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /docs/logs/zip:
    get:
      description: Returns the all log files as zip.
      responses:
        '200':
          description: 'Sample response: Returns the all log files as zip.'
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /filebrowser/list:
    post:
      description: Returns a list of files and/or subdirectories in a given directory.
      requestBody:
        description: Requested a list of files and/or subdirectories in a given directory.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestDirectoryListingData'
      responses:
        '200':
          description: 'Sample response: Returns a list of files and/or subdirectories
            in a given directory.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DirectoryListingResults'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /history/tasks:
    post:
      description: Returns a list of completed tasks.
      requestBody:
        description: Returns a list of completed tasks.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestHistoryTableData'
      responses:
        '200':
          description: 'Sample response: Returns a list of completed tasks.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompletedTasks'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
    delete:
      description: Delete a list of completed tasks.
      requestBody:
        description: Requested list of items to delete.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestTableUpdateByIdList'
      responses:
        '200':
          description: Successful request; Returns success status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseSuccess'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /history/reprocess:
    post:
      description: Add a list of completed tasks back to the Pending Tasks queue.
      requestBody:
        description: Requested list of items to reprocess.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestAddCompletedToPendingTasks'
      responses:
        '200':
          description: Successful request; Returns success status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseSuccess'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /history/task/log:
    post:
      description: Request the details of a completed task.
      requestBody:
        description: Requested the details of a completed task.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CompletedTasksLogRequest'
      responses:
        '200':
          description: 'Success: The details of a requested completed task.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompletedTasksLog'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /notifications/read:
    get:
      description: Returns a list of notifications in reverse chronological order.
      responses:
        '200':
          description: 'Sample response: A list of notifications in reverse chronological
            order.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestNotificationsData'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /notifications/remove:
    delete:
      description: Delete one or all notifications.
      requestBody:
        description: Requested list of items to delete.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestTableUpdateByUuidList'
      responses:
        '200':
          description: Successful request; Returns success status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseSuccess'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /pending/tasks:
    post:
      description: Returns a list of pending tasks.
      requestBody:
        description: Returns a list of pending tasks.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestPendingTableData'
      responses:
        '200':
          description: 'Sample response: Returns a list of pending tasks.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PendingTasks'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
    delete:
      description: Delete a list of pending tasks.
      requestBody:
        description: Requested list of items to delete.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestTableUpdateByIdList'
      responses:
        '200':
          description: Successful request; Returns success status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseSuccess'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /pending/rescan:
    post:
      description: Triggers a library scan.
      responses:
        '200':
          description: Successful request; Returns success status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseSuccess'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /pending/reorder:
    post:
      description: Reorder a list of pending tasks.
      requestBody:
        description: Requested list of items to reorder.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestPendingTasksReorder'
      responses:
        '200':
          description: Successful request; Returns success status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseSuccess'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /pending/create:
    post:
      description: Create a new pending tasks from an absolute path
      requestBody:
        description: Specify path and library to create a pending tasks from.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestPendingTaskCreate'
      responses:
        '200':
          description: Successful request; Returns data for the generated task
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PendingTasksTableResults'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /pending/library/update:
    post:
      description: Set the library of a list of created tasks who's status has not
        yet been updated.
      requestBody:
        description: The ID list of the task to update and the Library Name to use.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestPendingTasksLibraryUpdate'
      responses:
        '200':
          description: Successful request; Returns success status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseSuccess'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /pending/status/get:
    post:
      description: Set the status of a list of pending tasks
      requestBody:
        description: Set the status of a list of pending tasks.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestTableUpdateByIdList'
      responses:
        '200':
          description: 'Sample response: Returns a list of tasks with their status.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PendingTasksTableResults'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /pending/status/set/ready:
    post:
      description: Set the status of a list of created pending tasks as ready for
        processing
      requestBody:
        description: Set the status of a list of created pending tasks as ready for
          processing.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestTableUpdateByIdList'
      responses:
        '200':
          description: Successful request; Returns success status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseSuccess'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /pending/download/file/id/{task_id}:
    get:
      description: Request a link for downloading a task file
      responses:
        '200':
          description: Successful request; Returns download link ID
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDownloadLink'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /pending/download/data/id/{task_id}:
    get:
      description: Request a link for downloading a task data
      responses:
        '200':
          description: Successful request; Returns download link ID
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskDownloadLink'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /plugins/installed:
    post:
      description: Returns a list of installed plugins.
      requestBody:
        description: Requested a list of installed plugins.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestPluginsTableData'
      responses:
        '200':
          description: 'Sample response: Returns a list of installed plugins.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PluginsData'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /plugins/enable:
    post:
      description: DEPRECATED! Enable a list of plugins.
      requestBody:
        description: Requested list of plugins to enable.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestTableUpdateByIdList'
      responses:
        '200':
          description: Successful request; Returns success status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseSuccess'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /plugins/disable:
    post:
      description: DEPRECATED! Disable a list of plugins.
      requestBody:
        description: Requested list of plugins to disable.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestTableUpdateByIdList'
      responses:
        '200':
          description: Successful request; Returns success status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseSuccess'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /plugins/update:
    post:
      description: Update a list of plugins given their DB table IDs.
      requestBody:
        description: Requested list of plugins to update.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestTableUpdateByIdList'
      responses:
        '200':
          description: Successful request; Returns success status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseSuccess'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /plugins/remove:
    delete:
      description: Remove a list of plugins given their DB table IDs.
      requestBody:
        description: Requested list of plugins to remove.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestTableUpdateByIdList'
      responses:
        '200':
          description: Successful request; Returns success status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseSuccess'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /plugins/info:
    post:
      description: Returns a the metadata and settings of a requested plugin.
      requestBody:
        description: Requested a single plugin's info.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestPluginsInfo'
      responses:
        '200':
          description: 'Sample response: Returns a the metadata and settings of a
            requested plugin.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PluginsInfoResults'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /plugins/settings/update:
    post:
      description: Saves the settings of a single plugin.
      requestBody:
        description: Requested a plugins settings be updated.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestPluginsSettingsSave'
      responses:
        '200':
          description: Successful request; Returns success status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseSuccess'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /plugins/settings/reset:
    post:
      description: Reset the settings of a single plugin.
      requestBody:
        description: Requested a plugins settings be reset.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestPluginsSettingsReset'
      responses:
        '200':
          description: Successful request; Returns success status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseSuccess'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /plugins/installable:
    get:
      description: Returns a list of installable plugins.
      responses:
        '200':
          description: 'Sample response: Returns a list of installable plugins.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PluginsInstallableResults'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /plugins/install:
    post:
      description: Installs a plugin by its Plugin ID.
      requestBody:
        description: Requested a plugin be installed by its Plugin ID.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestPluginsById'
      responses:
        '200':
          description: Successful request; Returns success status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseSuccess'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /plugins/flow:
    post:
      description: Returns the plugin flow for a requested plugin type.
      requestBody:
        description: Requests the plugin flow of a given plugin type.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestPluginsFlowByPluginType'
      responses:
        '200':
          description: 'Sample response: Returns the plugin flow for a requested plugin
            type.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PluginsInstallableResults'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /plugins/flow/types:
    get:
      description: Returns a list of all plugin types that have flows.
      responses:
        '200':
          description: 'Sample response: Returns a list of all plugin types that have
            flows.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PluginTypesResults'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /plugins/flow/save:
    post:
      description: Saves the plugin flow for a requested plugin type.
      requestBody:
        description: Requests saving the plugin flow for a given plugin type.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestSavingPluginsFlowByPluginType'
      responses:
        '200':
          description: 'Sample response: Save the plugin flow for a requested plugin
            type.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PluginsInstallableResults'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /plugins/repos/update:
    post:
      description: Updates the plugin repo list.
      requestBody:
        description: Requested an update to the plugin repo list.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestUpdatePluginReposList'
      responses:
        '200':
          description: Successful request; Returns success status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseSuccess'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /plugins/repos/list:
    get:
      description: Returns a list of plugin repos.
      responses:
        '200':
          description: 'Sample response: Returns a list of plugin repos.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PluginReposListResults'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /plugins/repos/reload:
    post:
      description: Reload plugin repositories remote data.
      responses:
        '200':
          description: Successful request; Returns success status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseSuccess'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /plugins/panels/enabled:
    get:
      description: Returns a list of installed plugins.
      responses:
        '200':
          description: 'Success: Returns a list of installed plugins.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PluginsDataPanelTypesData'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /session/state:
    get:
      description: Returns the application session state.
      responses:
        '200':
          description: 'Sample response: Returns the application session state.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionStateSuccess'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /session/reload:
    post:
      description: Reload the current session.
      responses:
        '200':
          description: Successful request; Returns success status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseSuccess'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /settings/read:
    get:
      description: Returns the application settings.
      responses:
        '200':
          description: 'Sample response: Returns the application settings.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SettingsReadAndWrite'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /settings/write:
    post:
      description: Save a given dictionary of settings.
      requestBody:
        description: Requested a dictionary of settings to save.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SettingsReadAndWrite'
      responses:
        '200':
          description: Successful request; Returns success status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseSuccess'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /settings/configuration:
    get:
      description: Returns the system configuration.
      responses:
        '200':
          description: 'Sample response: Returns the system configuration.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SettingsSystemConfig'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /settings/link/validate:
    post:
      description: Validate a remote installation address
      requestBody:
        description: The details of the remote installation to validate
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestSettingsRemoteInstallationAddressValidation'
      responses:
        '200':
          description: 'Sample response: Returns the remote installation data.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SettingsRemoteInstallationData'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /settings/worker_groups:
    get:
      description: Returns a list of all worker groups.
      responses:
        '200':
          description: 'Sample response: Returns a list of all worker groups.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkerGroupsList'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /settings/worker_group/read:
    post:
      description: Read the configuration of a worker group
      requestBody:
        description: The ID of the worker group
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestDatabaseItemById'
      responses:
        '200':
          description: 'Sample response: Returns the worker group configuration.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SettingsWorkerGroupConfig'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /settings/worker_group/write:
    post:
      description: Write the configuration of a worker group
      requestBody:
        description: The config of a worker group that is to be saved
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SettingsWorkerGroupConfig'
      responses:
        '200':
          description: Successful request; Returns success status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseSuccess'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /settings/worker_group/remove:
    delete:
      description: Remove a worker group
      requestBody:
        description: Requested a worker group to remove.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestDatabaseItemById'
      responses:
        '200':
          description: Successful request; Returns success status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseSuccess'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /settings/link/read:
    post:
      description: Read the configuration of a remote installation link
      requestBody:
        description: The UUID of the remote installation
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestRemoteInstallationLinkConfig'
      responses:
        '200':
          description: 'Sample response: Returns the remote installation link configuration.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SettingsRemoteInstallationLinkConfig'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /settings/link/write:
    post:
      description: Write the configuration of a remote installation link
      requestBody:
        description: The UUID of the remote installation and its configuration
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SettingsRemoteInstallationLinkConfig'
      responses:
        '200':
          description: Successful request; Returns success status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseSuccess'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /settings/link/remove:
    delete:
      description: Remove a configuration for a remote installation link
      requestBody:
        description: Requested a remote installation link to remove.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestRemoteInstallationLinkConfig'
      responses:
        '200':
          description: Successful request; Returns success status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseSuccess'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /settings/libraries:
    get:
      description: Returns a list of all libraries.
      responses:
        '200':
          description: 'Sample response: Returns a list of all libraries.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SettingsLibrariesList'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /settings/library/read:
    post:
      description: Read the configuration of one library
      requestBody:
        description: The ID of the library
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestLibraryById'
      responses:
        '200':
          description: 'Sample response: Returns the remote installation link configuration.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SettingsLibraryConfigReadAndWrite'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /settings/library/write:
    post:
      description: Write the configuration of one library
      requestBody:
        description: Requested a dictionary of settings to save.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SettingsLibraryConfigReadAndWrite'
      responses:
        '200':
          description: Successful request; Returns success status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseSuccess'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /settings/library/remove:
    delete:
      description: Remove a library
      requestBody:
        description: Requested a library to remove.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestLibraryById'
      responses:
        '200':
          description: Successful request; Returns success status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseSuccess'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /settings/library/export:
    post:
      description: Export the plugin configuration of one library
      requestBody:
        description: The ID of the library
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestLibraryById'
      responses:
        '200':
          description: 'Sample response: Returns the remote installation link configuration.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SettingsLibraryPluginConfigExport'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /settings/library/import:
    post:
      description: Import the configuration of one library
      requestBody:
        description: Requested a dictionary of settings to save.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SettingsLibraryPluginConfigImport'
      responses:
        '200':
          description: Successful request; Returns success status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseSuccess'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /upload/pending/file:
    post:
      description: Uploads a file to the pending tasks list
      requestBody:
        description: Uploads a file to the pending tasks list
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                fileName:
                  type: string
                  format: binary
      responses:
        '200':
          description: Successful request; Returns data for the generated task
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PendingTasksTableResults'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /upload/plugin/file:
    post:
      description: Uploads a plugin ZIP file and installs it
      requestBody:
        description: Uploads a plugin ZIP file and installs it
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                fileName:
                  type: string
                  format: binary
      responses:
        '200':
          description: Successful request; Returns success status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseSuccess'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /version/read:
    get:
      description: Returns the application version.
      responses:
        '200':
          description: 'Sample response: Returns the application version.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VersionReadSuccess'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /workers/worker/pause:
    post:
      description: Pauses a worker by its ID.
      requestBody:
        description: Requested a worker be paused by its ID.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestWorkerById'
      responses:
        '200':
          description: Successful request; Returns success status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseSuccess'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /workers/worker/pause/all:
    post:
      description: Pause all workers.
      responses:
        '200':
          description: Successful request; Returns success status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseSuccess'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /workers/worker/resume:
    post:
      description: Resumes a worker by its ID.
      requestBody:
        description: Requested a worker be resumed by its ID.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestWorkerById'
      responses:
        '200':
          description: Successful request; Returns success status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseSuccess'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /workers/worker/resume/all:
    post:
      description: Resumes all workers.
      responses:
        '200':
          description: Successful request; Returns success status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseSuccess'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /workers/worker/terminate:
    delete:
      description: Terminates a worker by its ID.
      requestBody:
        description: Requested a worker be terminated by its ID.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestWorkerById'
      responses:
        '200':
          description: Successful request; Returns success status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseSuccess'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /workers/worker/terminate/all:
    delete:
      description: Terminate all workers.
      responses:
        '200':
          description: Successful request; Returns success status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseSuccess'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /workers/status:
    get:
      description: Returns the status of all workers.
      responses:
        '200':
          description: 'Sample response: Returns the status of all workers.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkerStatusSuccess'
        '400':
          description: Bad request; Check `messages` for any validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '404':
          description: Bad request; Requested endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadEndpoint'
        '405':
          description: Bad request; Requested method is not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadMethod'
        '500':
          description: Internal error; Check `error` for exception
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
openapi: 3.0.0
