{
    "swagger": "2.0",
    "info": {
        "description": "Bitstreams Manager connects, views, and controls Bitstreams instances from central interface.\n**Note:** Bitstreams instances controlled by the manager receive supported API via proxy.\n**Example** to replace a direct API path with the proxy path via manager:\n\u003e \"/api/v3/template\" -\u003e \"/**proxy**/api/v3/template?**bitstreamsName**=\u0026lt;server_name from enroll/setup struct\u0026gt;\"",
        "title": "Bitstreams Manager",
        "contact": {},
        "version": "v3.1.0"
    },
    "paths": {
        "/api/v3/aggregate/dashboard": {
            "get": {
                "description": "Returns combined hardware and session health for connected servers. Omit location_id to include every connected server; when supplied, the selected location and all descendant locations are included. bitstreams_id can further restrict the request to servers in that scope.\nDevice rows include bitstreams_id and server_name ownership metadata so results remain identifiable after aggregation.\nIf some servers cannot be queried, data from successful servers is returned and meta.warnings contains one entry per failed server. A requested server that belongs to the scope but is not connected is reported in meta.warnings instead of being queried. If every selected server fails, err_code and err_message report the complete failure and meta.warnings contains all server failures.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Bitstreams Manager"
                ],
                "summary": "Get an aggregate dashboard snapshot",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Location subtree root; includes the selected location and all descendants",
                        "name": "location_id",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Restrict results to server IDs within the selected scope",
                        "name": "bitstreams_id[]",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.AggregateDashboardResp"
                        }
                    }
                }
            }
        },
        "/api/v3/aggregate/streams": {
            "get": {
                "description": "Returns live sessions from connected servers. location_id selects a location and all descendants; bitstreams_id can further restrict the request to servers in that scope. Omit both to query every connected server.\nEach list item includes bitstreams_id and server_name ownership metadata. Matching totals are combined globally and also reported by server.\nFiltering is applied before results are merged, globally sorted, and paginated. Rows are ordered by order_by and order, then by bitstreams_id and stream_id ascending. page defaults to 1 and is at most 100; limit defaults to 10 and is at most 100; count_only returns totals with an empty list.\nIf some servers cannot be queried, data from successful servers is returned and meta.warnings contains one entry per failed server. A requested server that belongs to the scope but is not connected is reported in meta.warnings instead of being queried. If every selected server fails, err_code and err_message report the complete failure and meta.warnings contains all server failures.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Bitstreams Manager"
                ],
                "summary": "List live sessions across servers",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Location subtree root; includes the selected location and all descendants",
                        "name": "location_id",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Restrict results to server IDs within the selected scope",
                        "name": "bitstreams_id[]",
                        "in": "query"
                    },
                    {
                        "maximum": 100,
                        "minimum": 1,
                        "type": "integer",
                        "default": 1,
                        "description": "Global result page",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "maximum": 100,
                        "minimum": 1,
                        "type": "integer",
                        "default": 10,
                        "description": "Results per page",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "create_time",
                            "name"
                        ],
                        "type": "string",
                        "default": "create_time",
                        "description": "Global sort field; create_time orders by creation time",
                        "name": "order_by",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "asc",
                            "desc"
                        ],
                        "type": "string",
                        "default": "desc",
                        "description": "Global sort direction",
                        "name": "order",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "default": false,
                        "description": "Return totals without list items",
                        "name": "count_only",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Filter by live-session name",
                        "name": "names[]",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "integer"
                        },
                        "collectionFormat": "multi",
                        "description": "Filter by template ID",
                        "name": "template_id[]",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "enum": [
                                "stopped",
                                "active",
                                "disconnected",
                                "unknown"
                            ],
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Filter by status",
                        "name": "status[]",
                        "in": "query"
                    },
                    {
                        "maxLength": 200,
                        "type": "string",
                        "description": "Case-insensitive search across live-session fields",
                        "name": "search_string",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.AggregateStreamsResp"
                        }
                    }
                }
            }
        },
        "/api/v3/aggregate/streams/batch/{action}": {
            "post": {
                "description": "Runs one supported action for server-owned live sessions. location_id selects a location and all descendants; bitstreams_id can further restrict the request to servers in that scope. Every selected or excluded item must identify its owning server with bitstreams_id.\nEXPLICIT_IDS acts on selected_ids. ALL_MATCHING applies the live-session filters on every selected server except exclude_ids. Batch results are not paginated; every success, skipped and failed item includes bitstreams_id and server_name ownership metadata.\nEach server is given up to 15 seconds to find all-matching candidates and a separate 60 seconds to apply the action.\nIf some servers cannot be queried or updated, outcomes from successful servers are returned and meta.warnings contains one entry per failed server. Items owned by a server in the scope that is not connected are not attempted and that server is reported in meta.warnings. If every attempted server operation fails, err_code and err_message report the complete failure and meta.warnings contains all server failures.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Bitstreams Manager"
                ],
                "summary": "Run a live-session batch action across servers",
                "parameters": [
                    {
                        "enum": [
                            "start",
                            "stop",
                            "clear_warnings",
                            "switch_to_a",
                            "switch_to_b",
                            "delete"
                        ],
                        "type": "string",
                        "description": "Batch action",
                        "name": "action",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Batch mode, item ownership, filters and scope",
                        "name": "object",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.AggregateStreamBatchRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.AggregateStreamBatchResp"
                        }
                    }
                }
            }
        },
        "/api/v3/aggregate/streams/issues": {
            "get": {
                "description": "Returns live-session issues from connected servers. location_id selects a location and all descendants; bitstreams_id can further restrict the request to servers in that scope. Omit both to query every connected server.\nEach list item includes bitstreams_id and server_name ownership metadata. Matching totals are combined globally and also reported by server.\nFiltering is applied before results are merged, globally sorted, and paginated. Rows are ordered by latest_alert_time and order, then by bitstreams_id and stream_id ascending. page defaults to 1 and is at most 100; limit defaults to 10 and is at most 100.\nIf some servers cannot be queried, data from successful servers is returned and meta.warnings contains one entry per failed server. A requested server that belongs to the scope but is not connected is reported in meta.warnings instead of being queried. If every selected server fails, err_code and err_message report the complete failure and meta.warnings contains all server failures.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Bitstreams Manager"
                ],
                "summary": "List live session issues across servers",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Location subtree root; includes the selected location and all descendants",
                        "name": "location_id",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Restrict results to server IDs within the selected scope",
                        "name": "bitstreams_id[]",
                        "in": "query"
                    },
                    {
                        "maximum": 100,
                        "minimum": 1,
                        "type": "integer",
                        "default": 1,
                        "description": "Global result page",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "maximum": 100,
                        "minimum": 1,
                        "type": "integer",
                        "default": 10,
                        "description": "Results per page",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "latest_alert_time"
                        ],
                        "type": "string",
                        "default": "latest_alert_time",
                        "description": "Global sort field",
                        "name": "order_by",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "asc",
                            "desc"
                        ],
                        "type": "string",
                        "default": "desc",
                        "description": "Global sort direction",
                        "name": "order",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "enum": [
                                "info",
                                "warning",
                                "error"
                            ],
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Filter by alert type",
                        "name": "alert_types[]",
                        "in": "query"
                    },
                    {
                        "maxLength": 200,
                        "type": "string",
                        "description": "Search live-session issues",
                        "name": "search_string",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.AggregateIssuesResp"
                        }
                    }
                }
            }
        },
        "/api/v3/aggregate/streams/name_check": {
            "post": {
                "description": "Checks up to 100 live-session names on connected servers. location_id selects a location and all descendants; bitstreams_id can further restrict the request to servers in that scope. Omit both to query every connected server.\nEach conflict maps a requested name to all owners, identified by bitstreams_id and server_name. Results are not paginated.\nIf some servers cannot be queried, conflicts from successful servers are returned and meta.warnings contains one entry per failed server. If every selected server fails, err_code and err_message report the complete failure and meta.warnings contains all server failures.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Bitstreams Manager"
                ],
                "summary": "Check live session names across servers",
                "parameters": [
                    {
                        "description": "Names, location scope and optional server filter",
                        "name": "object",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.AggregateNameCheckRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.AggregateNameCheckResp"
                        }
                    }
                }
            }
        },
        "/api/v3/aggregate/templates/resolve": {
            "post": {
                "description": "Resolves up to 100 unique server-owned template references. location_id selects a location and all descendants; bitstreams_id can further restrict the request to servers in that scope. Every reference must identify a server in the resolved scope; references owned by a server in the scope that is not connected are reported in meta.warnings.\nResults are keyed by \"bitstreams_id:template_id\" and include bitstreams_id and server_name ownership metadata. Results are not paginated.\nIf some references cannot be resolved, templates from successful requests are returned and meta.warnings contains one entry per failed reference. If every reference fails, err_code and err_message report the complete failure and meta.warnings contains all failures.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Bitstreams Manager"
                ],
                "summary": "Resolve templates across servers",
                "parameters": [
                    {
                        "description": "Template references, location scope and optional server filter",
                        "name": "object",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.AggregateTemplatesRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.AggregateTemplatesResp"
                        }
                    }
                }
            }
        },
        "/api/v3/aggregate/templates/{template_id}/usage": {
            "get": {
                "description": "Returns shared-template usage from connected servers with synchronized replicas, grouped by server. scope=all (default) includes every reference; scope=update includes only sessions affected by a template update. Live-session playbacks include overlay hot-swap readiness.\nConnected servers without a synchronized replica are listed in meta.warnings. If at least one available replica returns usage, failures from other servers are reported as non-blocking warnings. If requests to all available replicas fail, the request fails and template update confirmation is blocked.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Bitstreams Manager"
                ],
                "summary": "Get shared-template usage across servers",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Template ID",
                        "name": "template_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "enum": [
                            "all",
                            "update"
                        ],
                        "type": "string",
                        "default": "all",
                        "description": "Usage scope forwarded to each server; see GET /api/v3/template/{template_id}/usage",
                        "name": "scope",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.AggregateTemplateUsageResp"
                        }
                    }
                }
            }
        },
        "/api/v3/aggregate/transcodings": {
            "get": {
                "description": "Returns offline sessions from connected servers. location_id selects a location and all descendants; bitstreams_id can further restrict the request to servers in that scope. Omit both to query every connected server.\nEach list item includes bitstreams_id and server_name ownership metadata. Matching totals are combined globally and also reported by server.\nFiltering is applied before results are merged, globally sorted, and paginated. Rows are ordered by order_by and order, then by bitstreams_id and transcoding_id ascending. page defaults to 1 and is at most 100; limit defaults to 10 and is at most 100; count_only returns totals with an empty list.\nIf some servers cannot be queried, data from successful servers is returned and meta.warnings contains one entry per failed server. A requested server that belongs to the scope but is not connected is reported in meta.warnings instead of being queried. If every selected server fails, err_code and err_message report the complete failure and meta.warnings contains all server failures.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Bitstreams Manager"
                ],
                "summary": "List offline sessions across servers",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Location subtree root; includes the selected location and all descendants",
                        "name": "location_id",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Restrict results to server IDs within the selected scope",
                        "name": "bitstreams_id[]",
                        "in": "query"
                    },
                    {
                        "maximum": 100,
                        "minimum": 1,
                        "type": "integer",
                        "default": 1,
                        "description": "Global result page",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "maximum": 100,
                        "minimum": 1,
                        "type": "integer",
                        "default": 10,
                        "description": "Results per page",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "create_time",
                            "input_file",
                            "progress"
                        ],
                        "type": "string",
                        "default": "create_time",
                        "description": "Global sort field; create_time orders by creation time and input_file by input file name",
                        "name": "order_by",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "asc",
                            "desc"
                        ],
                        "type": "string",
                        "default": "desc",
                        "description": "Global sort direction",
                        "name": "order",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "default": false,
                        "description": "Return totals without list items",
                        "name": "count_only",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "integer"
                        },
                        "collectionFormat": "multi",
                        "description": "Filter by template ID",
                        "name": "template_id[]",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "enum": [
                                "stopped",
                                "running",
                                "completed",
                                "failed",
                                "queued",
                                "unknown",
                                "transcoding_completed_post_processing",
                                "transcoding_completed_post_processing_failed"
                            ],
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Filter by status",
                        "name": "status[]",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "enum": [
                                "mkv",
                                "mp4",
                                "hls"
                            ],
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Filter by output format",
                        "name": "format[]",
                        "in": "query"
                    },
                    {
                        "maxLength": 200,
                        "type": "string",
                        "description": "Case-insensitive search across offline-session fields",
                        "name": "search_string",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.AggregateTranscodingsResp"
                        }
                    }
                }
            }
        },
        "/api/v3/aggregate/transcodings/progress": {
            "post": {
                "description": "Returns progress for up to 100 server-owned offline-session targets. location_id selects a location and all descendants; bitstreams_id can further restrict the request to servers in that scope. Every target must identify a server in the resolved scope; targets owned by a server in the scope that is not connected are reported in meta.warnings.\nResults are keyed by \"bitstreams_id:transcoding_id\" and include bitstreams_id, server_name and transcoding_id ownership metadata. Results are not paginated.\nIf some servers cannot be queried, progress from successful servers is returned and meta.warnings contains one entry per failed server. If every targeted server fails, err_code and err_message report the complete failure and meta.warnings contains all server failures.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Bitstreams Manager"
                ],
                "summary": "Get offline-session progress across servers",
                "parameters": [
                    {
                        "description": "Progress targets, location scope and optional server filter",
                        "name": "object",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.AggregateTranscodingProgressRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.AggregateTranscodingProgressResp"
                        }
                    }
                }
            }
        },
        "/api/v3/authenticator_code": {
            "get": {
                "description": "Returns the singleton Authenticator Code configured for this instance.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Authenticator Code"
                ],
                "summary": "Get Authenticator Code",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.GetAuthenticatorCodeResp"
                        }
                    }
                }
            },
            "put": {
                "description": "Sets the singleton Authenticator Code (16–128 characters). All connections must be deleted to update.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Authenticator Code"
                ],
                "summary": "Update Authenticator Code",
                "parameters": [
                    {
                        "description": "Authenticator Code update request",
                        "name": "object",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.UpdateAuthenticatorCodeReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.UpdateAuthenticatorCodeResp"
                        }
                    }
                }
            }
        },
        "/api/v3/bitstreams": {
            "get": {
                "description": "Returns Bitstreams IDs currently connected to the Bitstreams Manager.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Bitstreams Manager"
                ],
                "summary": "List connected Bitstreams servers",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.ListBitstreamsResp"
                        }
                    }
                }
            }
        },
        "/api/v3/bitstreams/enrollment": {
            "delete": {
                "description": "Removes Bitstreams enrollment from system",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Bitstreams Manager"
                ],
                "summary": "Revoke Bitstreams enrollment",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Bitstreams ID to revoke",
                        "name": "bitstreams_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.DeleteBitstreamsEnrollmentResp"
                        }
                    }
                }
            }
        },
        "/api/v3/bitstreams/location": {
            "put": {
                "description": "Assigns or moves a Bitstreams server to a location group. Pass null location_id to clear the assignment.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Bitstreams Manager"
                ],
                "summary": "Assign Bitstreams to location",
                "parameters": [
                    {
                        "description": "Bitstreams location assignment request",
                        "name": "object",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.AssignBitstreamsLocationReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v3/bitstreams/resync": {
            "post": {
                "description": "Clears retry backoff and reconciles shared resources against the manager.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Bitstreams Manager"
                ],
                "summary": "Resync shared resources to one Bitstreams server",
                "parameters": [
                    {
                        "maxLength": 64,
                        "type": "string",
                        "name": "bitstreams_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v3/bitstreams_details": {
            "get": {
                "description": "Returns connected, pending enrollment, and enrolled-but-offline Bitstreams servers with location, status, and cached release, firmware, and license snapshots when available.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Bitstreams Manager"
                ],
                "summary": "List Bitstreams details",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.ListBitstreamsDetailsResp"
                        }
                    }
                }
            }
        },
        "/api/v3/enroll/renew": {
            "post": {
                "description": "Renews an enrolled Bitstreams client certificate when the Bitstreams server is connected. Optional cert_duration_days: omitted or 0 keeps the enrolled value; otherwise must be 1–30.\nRenewal establishes a new secure connection with the new certificate, so the existing connection to the Bitstreams server is briefly taken down during the renewal process.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Bitstreams Manager"
                ],
                "summary": "Renew Bitstreams enrollment certificate",
                "parameters": [
                    {
                        "description": "Bitstreams enrollment renewal request",
                        "name": "object",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.EnrollRenewReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.EnrollRenewResp"
                        }
                    }
                }
            }
        },
        "/api/v3/enroll/setup": {
            "post": {
                "description": "Prepares connection of Manager to a Bitstreams server. Mints a short-lived, one-time enrollment token that is returned to the caller and must be presented to the POST /api/v3/manager/setup Bitstreams server API within 5 minutes.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Bitstreams Manager"
                ],
                "summary": "Create Bitstreams enrollment setup",
                "parameters": [
                    {
                        "description": "Bitstreams enrollment setup request",
                        "name": "object",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.EnrollSetupReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.EnrollSetupResp"
                        }
                    }
                }
            }
        },
        "/api/v3/images": {
            "get": {
                "description": "Retrieves a list of all images associated with the user or organization.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Images"
                ],
                "summary": "List Images",
                "parameters": [
                    {
                        "type": "boolean",
                        "name": "all",
                        "in": "query"
                    },
                    {
                        "maximum": 100,
                        "type": "integer",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "asc",
                            "desc"
                        ],
                        "type": "string",
                        "name": "order",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "image_name",
                            "create_time"
                        ],
                        "type": "string",
                        "name": "order_by",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "maxLength": 200,
                        "type": "string",
                        "name": "search_string",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "timezone_offset",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "integer"
                        },
                        "collectionFormat": "multi",
                        "description": "Filter by image ID",
                        "name": "ids[]",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.ImagesGetListResp"
                        }
                    }
                }
            }
        },
        "/api/v3/images/file/{image_id}/{file_name}": {
            "get": {
                "description": "Streams an image file from object storage by image ID and file name.",
                "produces": [
                    "image/jpeg",
                    "image/png",
                    "image/bmp"
                ],
                "tags": [
                    "Images"
                ],
                "summary": "Get Image File",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Image ID (alphanumeric)",
                        "name": "image_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Image file name (e.g. image1_0.jpg)",
                        "name": "file_name",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Image file content",
                        "schema": {
                            "type": "file"
                        }
                    }
                }
            }
        },
        "/api/v3/images/upload": {
            "post": {
                "description": "Uploads one or more image files.",
                "consumes": [
                    "multipart/form-data"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Images"
                ],
                "summary": "Upload Images",
                "parameters": [
                    {
                        "type": "array",
                        "items": {
                            "type": "file"
                        },
                        "collectionFormat": "multi",
                        "description": "Image files to upload (jpg/jpeg/png/bmp, max 6MB, min 32x32, max 4096x4096)",
                        "name": "files[]",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.ImagesUploadResp"
                        }
                    }
                }
            }
        },
        "/api/v3/images/{image_id}": {
            "delete": {
                "description": "Permanently deletes an image by its ID.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Images"
                ],
                "summary": "Delete Image",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Image ID",
                        "name": "image_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.ImagesDeleteResp"
                        }
                    }
                }
            }
        },
        "/api/v3/locations": {
            "get": {
                "description": "Returns all location nodes in the Bitstreams Manager hierarchy with per-node Bitstreams counts.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Bitstreams Manager"
                ],
                "summary": "List location groups",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.ListLocationsResp"
                        }
                    }
                }
            },
            "post": {
                "description": "Creates a root location group or sub-group under an optional parent_id.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Bitstreams Manager"
                ],
                "summary": "Create location group",
                "parameters": [
                    {
                        "description": "Location creation request",
                        "name": "object",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.CreateLocationReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.CreateLocationResp"
                        }
                    }
                }
            }
        },
        "/api/v3/locations/{id}": {
            "put": {
                "description": "Renames a location node. Sibling names must remain unique under the same parent. Accepts name as a URL query parameter or a JSON body.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Bitstreams Manager"
                ],
                "summary": "Rename location group",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Location ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "maxLength": 64,
                        "type": "string",
                        "description": "New location name (query form; takes effect when no JSON body is sent)",
                        "name": "name",
                        "in": "query"
                    },
                    {
                        "description": "New location name (JSON body form)",
                        "name": "object",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/api.RenameLocationReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.RenameLocationResp"
                        }
                    }
                }
            },
            "delete": {
                "description": "Deletes an empty location node. Fails if the node has child groups or assigned Bitstreams servers.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Bitstreams Manager"
                ],
                "summary": "Delete location group",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Location ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v3/locations/{id}/move": {
            "put": {
                "description": "Moves a location node under a new parent. Omit parent_id to move it to the root. Fails if the move would create a cycle. Accepts parent_id as a URL query parameter or, for backward compatibility, a JSON body.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Bitstreams Manager"
                ],
                "summary": "Move location group",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Location ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "New parent location ID (query form; takes effect when no JSON body is sent)",
                        "name": "parent_id",
                        "in": "query"
                    },
                    {
                        "description": "New parent location ID (JSON body form)",
                        "name": "object",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/api.MoveLocationReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.RenameLocationResp"
                        }
                    }
                }
            }
        },
        "/api/v3/secrets": {
            "get": {
                "description": "Retrieves credentials used to authenticate with 3rd-party services.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Secrets"
                ],
                "summary": "List 3rd-party secret credentials",
                "parameters": [
                    {
                        "maximum": 100,
                        "type": "integer",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "asc",
                            "desc"
                        ],
                        "type": "string",
                        "name": "order",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "order_by",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.GetSecretsListResp"
                        }
                    }
                }
            },
            "post": {
                "description": "Secret credentials may be required to integrate with 3rd-party services such as AWS MediaPackage.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Secrets"
                ],
                "summary": "Add a 3rd-party secret credential",
                "parameters": [
                    {
                        "description": "Secret creation request",
                        "name": "object",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.CreateSecretReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.CreateSecretResp"
                        }
                    }
                }
            }
        },
        "/api/v3/secrets/{id}": {
            "put": {
                "description": "Replaces a secret credential without changing its local ID.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Secrets"
                ],
                "summary": "Update a 3rd-party secret credential",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Secret update request",
                        "name": "object",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.UpdateSecretReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            },
            "delete": {
                "description": "Removing will only succeed if the credential is not used by any streams.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Secrets"
                ],
                "summary": "Remove a 3rd-party secret credential",
                "parameters": [
                    {
                        "type": "string",
                        "description": "ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v3/secrets/{id}/usage": {
            "get": {
                "description": "Reports whether streams reference a secret.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Secrets"
                ],
                "summary": "Get secret usage",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.GetSecretUsageResp"
                        }
                    }
                }
            }
        },
        "/api/v3/system/devices": {
            "get": {
                "description": "Aggregates VPU, capture card, and ATSC demod card inventories from every connected Bitstreams server.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Bitstreams Manager"
                ],
                "summary": "List devices across all connected Bitstreams servers",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.SystemDevicesResp"
                        }
                    }
                }
            }
        },
        "/api/v3/system/licenses": {
            "get": {
                "description": "Aggregates license information from every connected Bitstreams server.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Bitstreams Manager"
                ],
                "summary": "List licenses across all connected Bitstreams servers",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.SystemLicensesResp"
                        }
                    }
                }
            }
        },
        "/api/v3/template": {
            "get": {
                "description": "Retrieves a count and optionally a list of templates and used template IDs.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Template"
                ],
                "summary": "List Templates",
                "parameters": [
                    {
                        "type": "boolean",
                        "default": false,
                        "description": "Ignores page and limit if true.",
                        "name": "all",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "default": false,
                        "description": "Returns \"total\" only if true.",
                        "name": "count_only",
                        "in": "query"
                    },
                    {
                        "maximum": 50,
                        "type": "integer",
                        "default": 10,
                        "description": "Min is 1 and max is 50.",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "asc",
                            "desc"
                        ],
                        "type": "string",
                        "default": "desc",
                        "description": "Only in effect when used with order_by.",
                        "name": "order",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "id",
                            "name",
                            "create_time"
                        ],
                        "type": "string",
                        "default": "id",
                        "description": "Case insensitive sorting when ordering by name.",
                        "name": "order_by",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "default": 1,
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Filter by template name",
                        "name": "names[]",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "integer"
                        },
                        "collectionFormat": "multi",
                        "description": "Filter by template ID",
                        "name": "ids[]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Case insensitive fuzzy matches for name, description, and create_time; Exact matches for hls_format, deinterlace_parity, and deinterlace_mode.",
                        "name": "search_string",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Accepts SQL format e.g., +08:00 or -07:00. Used when searching against create_time.",
                        "name": "timezone_offset",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.TemplateGetListResp"
                        }
                    }
                }
            },
            "post": {
                "description": "Creates a new template.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Template"
                ],
                "summary": "Create Template",
                "parameters": [
                    {
                        "description": "Template creation request",
                        "name": "object",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.TemplateCreateReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.TemplateCreateResp"
                        }
                    }
                }
            }
        },
        "/api/v3/template/{template_id}": {
            "get": {
                "description": "Retrieves detailed information about a specific template.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Template"
                ],
                "summary": "Get Template Detail",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Template ID",
                        "name": "template_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.TemplateGetDetailResp"
                        }
                    }
                }
            },
            "put": {
                "description": "Updates an existing template.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Template"
                ],
                "summary": "Update Template",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Template ID",
                        "name": "template_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Template update request",
                        "name": "object",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.TemplateUpdateReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.TemplateUpdateResp"
                        }
                    }
                }
            },
            "delete": {
                "description": "Deletes a template by its ID.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Template"
                ],
                "summary": "Delete Template",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Template ID",
                        "name": "template_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.TemplateDeleteResp"
                        }
                    }
                }
            }
        },
        "/api/v3/template/{template_id}/streams": {
            "get": {
                "description": "Retrieves stream list currently using a template, including hot-swap readiness.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Template"
                ],
                "summary": "Get Streams Using Template",
                "deprecated": true,
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Template ID",
                        "name": "template_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.TemplateStreamsResp"
                        }
                    }
                }
            }
        },
        "/api/v3/template/{template_id}/usage": {
            "get": {
                "description": "Lists live streams and offline transcoding tasks that reference a template.\nscope=all (default) includes every status; any reference blocks deletion. scope=update includes only active or disconnected live streams and offline tasks that already started (running, stopping, completed, post-processing), i.e. sessions that keep their current settings until restarted.\ncount_only=true returns only live_session_count and offline_session_count, with empty session lists.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Template"
                ],
                "summary": "Get Template Usage",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Template ID",
                        "name": "template_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "enum": [
                            "all",
                            "update"
                        ],
                        "type": "string",
                        "default": "all",
                        "description": "Usage scope",
                        "name": "scope",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "description": "Return counts only",
                        "name": "count_only",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.TemplateUsageResp"
                        }
                    }
                }
            }
        }
    },
    "definitions": {
        "api.AggregateDashboardData": {
            "type": "object",
            "properties": {
                "hardware": {
                    "$ref": "#/definitions/api.AggregateDashboardHardware"
                },
                "live": {
                    "$ref": "#/definitions/api.AggregateLiveHealth"
                },
                "offline": {
                    "$ref": "#/definitions/api.AggregateOfflineHealth"
                }
            }
        },
        "api.AggregateDashboardHardware": {
            "type": "object",
            "properties": {
                "cpu": {
                    "type": "object",
                    "properties": {
                        "num": {
                            "type": "integer"
                        },
                        "used_num": {
                            "type": "number"
                        },
                        "used_percent": {
                            "type": "number"
                        }
                    }
                },
                "host_num": {
                    "type": "integer"
                },
                "memory": {
                    "type": "object",
                    "properties": {
                        "total": {
                            "type": "number"
                        },
                        "used_percent": {
                            "type": "number"
                        }
                    }
                },
                "netWork": {
                    "type": "object",
                    "properties": {
                        "RXTX": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/api.NetworkRXTXST"
                            }
                        }
                    }
                },
                "storage": {
                    "type": "object",
                    "properties": {
                        "total_mb": {
                            "type": "integer"
                        },
                        "used_mb": {
                            "type": "integer"
                        }
                    }
                },
                "trans": {
                    "type": "object",
                    "properties": {
                        "versions": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/api.TransVersionsST"
                            }
                        }
                    }
                },
                "vpu": {
                    "type": "object",
                    "properties": {
                        "average_load": {
                            "type": "object",
                            "additionalProperties": {
                                "$ref": "#/definitions/api.VPUAverageLoadST"
                            }
                        },
                        "list": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/api.AggregateDashboardVPU"
                            }
                        },
                        "models": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/api.VPUModelsST"
                            }
                        },
                        "models_name": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        },
                        "num": {
                            "type": "integer"
                        }
                    }
                }
            }
        },
        "api.AggregateDashboardResp": {
            "type": "object",
            "properties": {
                "data": {
                    "$ref": "#/definitions/api.AggregateDashboardData"
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                },
                "meta": {
                    "$ref": "#/definitions/api.AggregateMeta"
                }
            }
        },
        "api.AggregateDashboardVPU": {
            "type": "object",
            "properties": {
                "bitstreams_id": {
                    "type": "string"
                },
                "device": {
                    "type": "string"
                },
                "firmware_revision": {
                    "type": "string"
                },
                "host_ip": {
                    "type": "string"
                },
                "model": {
                    "type": "string"
                },
                "serial": {
                    "type": "string"
                },
                "server_name": {
                    "type": "string"
                },
                "temperature": {
                    "description": "in degrees Celcius",
                    "type": "integer"
                }
            }
        },
        "api.AggregateEdge": {
            "type": "object",
            "properties": {
                "bitstreams_id": {
                    "type": "string"
                },
                "server_name": {
                    "type": "string"
                }
            }
        },
        "api.AggregateIssue": {
            "type": "object",
            "properties": {
                "bitstreams_id": {
                    "type": "string"
                },
                "latest_alert_message": {
                    "type": "string"
                },
                "latest_alert_name": {
                    "type": "string"
                },
                "latest_alert_time": {
                    "type": "string"
                },
                "latest_alert_type": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "output_issues": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/api.OutputIssue"
                    }
                },
                "server_name": {
                    "type": "string"
                },
                "stream_id": {
                    "type": "string"
                }
            }
        },
        "api.AggregateIssuesData": {
            "type": "object",
            "properties": {
                "list": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/api.AggregateIssue"
                    }
                },
                "matching_counts_by_edge": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "integer"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "api.AggregateIssuesResp": {
            "type": "object",
            "properties": {
                "data": {
                    "$ref": "#/definitions/api.AggregateIssuesData"
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                },
                "meta": {
                    "$ref": "#/definitions/api.AggregateMeta"
                }
            }
        },
        "api.AggregateLiveHealth": {
            "type": "object",
            "properties": {
                "error": {
                    "type": "integer"
                },
                "running": {
                    "type": "integer"
                },
                "total": {
                    "type": "integer"
                },
                "warning": {
                    "type": "integer"
                }
            }
        },
        "api.AggregateMeta": {
            "type": "object",
            "properties": {
                "warnings": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/api.AggregateWarning"
                    }
                }
            }
        },
        "api.AggregateNameCheckData": {
            "type": "object",
            "properties": {
                "conflicts": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "array",
                        "items": {
                            "$ref": "#/definitions/api.AggregateEdge"
                        }
                    }
                }
            }
        },
        "api.AggregateNameCheckRequest": {
            "type": "object",
            "required": [
                "names"
            ],
            "properties": {
                "bitstreams_id": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "location_id": {
                    "type": "integer"
                },
                "names": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                        "type": "string",
                        "maxLength": 64
                    }
                }
            }
        },
        "api.AggregateNameCheckResp": {
            "type": "object",
            "properties": {
                "data": {
                    "$ref": "#/definitions/api.AggregateNameCheckData"
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                },
                "meta": {
                    "$ref": "#/definitions/api.AggregateMeta"
                }
            }
        },
        "api.AggregateOfflineHealth": {
            "type": "object",
            "properties": {
                "failed": {
                    "type": "integer"
                },
                "queued": {
                    "type": "integer"
                },
                "running": {
                    "type": "integer"
                },
                "stopped": {
                    "type": "integer"
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "api.AggregateResolvedTemplate": {
            "type": "object",
            "required": [
                "name"
            ],
            "properties": {
                "advanced_params_quadra": {
                    "$ref": "#/definitions/api.TemplateAdvancedParamsQuadraST"
                },
                "bitstreams_id": {
                    "type": "string"
                },
                "create_time": {
                    "description": "Unix timestamp in seconds",
                    "type": "integer"
                },
                "description": {
                    "description": "0-100 characters",
                    "type": "string"
                },
                "format": {
                    "$ref": "#/definitions/api.TemplateFormatST"
                },
                "id": {
                    "type": "integer"
                },
                "name": {
                    "description": "1-64 characters",
                    "type": "string"
                },
                "organization_id": {
                    "type": "integer"
                },
                "output": {
                    "$ref": "#/definitions/api.TemplateOutputST"
                },
                "server_name": {
                    "type": "string"
                },
                "update_time": {
                    "description": "Unix timestamp in seconds",
                    "type": "integer"
                },
                "user_id": {
                    "type": "integer"
                }
            }
        },
        "api.AggregateStream": {
            "type": "object",
            "required": [
                "input_type",
                "name",
                "regions"
            ],
            "properties": {
                "active_url_index": {
                    "description": "Read-only. 0: InputURLs[0].URLs[0], 1: InputURLs[0].URLs[1]. Set with the switch_active_url endpoints.",
                    "type": "integer",
                    "readOnly": true
                },
                "atsc_demodulator_card_input": {
                    "$ref": "#/definitions/api.AtscDemodulatorCardST"
                },
                "bitstreams_id": {
                    "type": "string"
                },
                "capture_card_input": {
                    "$ref": "#/definitions/api.CaptureCardST"
                },
                "cover_image_url": {
                    "type": "string"
                },
                "created_at": {
                    "type": "integer"
                },
                "custom_stream_key": {
                    "description": "Supply a custom stream key (up to 64 characters) [a-zA-Z0-9\\-_] to use as a stream key in srt_push and rtmp_push input URLs.",
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "enable_failover": {
                    "type": "boolean"
                },
                "enable_hls_scte35_passthrough": {
                    "description": "Enable SCTE-35 message decoding for HLS pull inputs.",
                    "type": "boolean"
                },
                "enable_scte104_to_35": {
                    "description": "Enable SCTE-104 to SCTE-35 conversion for capture card inputs.",
                    "type": "boolean"
                },
                "enable_slates": {
                    "description": "Enable mid-stream slate switching",
                    "type": "boolean"
                },
                "enable_srt_encryption": {
                    "description": "Enable SRT encryption for srt_push inputs.",
                    "type": "boolean"
                },
                "enable_srt_hitless_switching": {
                    "description": "Enable ST 2022-7 hitless ingest for srt_push or srt_pull.\nsrt_push: Bitstreams advertises Red/Blue publish URLs on separate SRT ports.\nsrt_pull: two caller URLs; Bitstreams connects both and merges them.\nCannot be combined with enable_failover.",
                    "type": "boolean"
                },
                "failover_error_threshold_percent": {
                    "description": "minimum 0.01, default 3.00, maximum 99.99 and 100.00 means disabled",
                    "type": "number"
                },
                "failover_min_audio_pids_required": {
                    "description": "Minimum number of usable audio PIDs (after stream remapping and template\nfiltering) required from the active failover input. When the count is\nbelow this value the encoding session starts video-only and the\nBitstreams audio rescue supervisor probes both failover URLs every\n30 seconds, switching A\u003c-\u003eB when one of them recovers. 0 disables the\nfeature (default), maximum 20. Only honoured when enable_failover is\ntrue with both failover URLs configured.",
                    "type": "integer"
                },
                "failover_recovery_interval_seconds": {
                    "description": "-1: stay on Input B, 0-120: Invalid value, \u003e120: seconds waited before trying back on Input A",
                    "type": "integer"
                },
                "input_type": {
                    "description": "Input type for the stream, not supported in update, must remain the same as existing stream:\n  * rtmp_push - RTMP push input (server mode)\n  * srt_push - SRT push input (listener mode)\n  * multicast_pull - Multicast/UDP pull input\n  * hls_pull - HLS pull input\n  * dash_pull - DASH pull input\n  * rtsp_pull - RTSP pull input\n  * rtmp_pull - RTMP pull input (client mode)\n  * srt_pull - SRT pull input (caller mode)\n  * capture_card - Capture input from SDI card (currently only BlackMagic DeckLink cards are supported)\n  * atsc_demodulator_card - ATSC demodulator (Dektec) tuner input, selecting one program from a tuner's multiplex\n  * rtp_pull - RTP pull input\n  * local_loop - Local file under /mnt streamed in real time, looped seamlessly. Requires local_loop_path.",
                    "type": "string",
                    "enum": [
                        "rtmp_push",
                        "srt_push",
                        "multicast_pull",
                        "hls_pull",
                        "dash_pull",
                        "rtsp_pull",
                        "rtmp_pull",
                        "srt_pull",
                        "capture_card",
                        "atsc_demodulator_card",
                        "rtp_pull",
                        "local_loop"
                    ],
                    "example": "rtmp_push"
                },
                "input_urls": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/api.StreamInputURLsST"
                    }
                },
                "latest_alert": {
                    "$ref": "#/definitions/api.StreamLatestAlert"
                },
                "latest_started_at": {
                    "description": "Latest start time of the stream, if no start event, it will be 0",
                    "type": "integer"
                },
                "local_loop_path": {
                    "description": "Path under /mnt of a local file to stream as the source. Required when\ninput_type is \"local_loop\". The leading \"/mnt/\" is implicit; supply a\nrelative sub-path. Ignored for other input types.\n\nFor MPEG-TS MPTS (multi-program) files, append \"?prg=\u003cN\u003e\" to select a\nspecific program by its numeric program ID, mirroring the ?prg= query\nconvention used by UDP/RTP MPTS inputs. N is a program number in\n[1, 65535], written either in decimal (\"prg=105\") or in hexadecimal with\na 0x prefix (\"prg=0x69\"); it is stored in decimal. Only the \"prg\" key is\naccepted; other query keys are rejected. If omitted on an MPTS source,\nthe stream is rejected at task init with \"Alert Program ID Not Found\"\nlisting the available programs.\n\nMaximum length: 4081 characters (PATH_MAX - len(\"/mnt/\") - len(\"?prg=65535\")).",
                    "type": "string",
                    "example": "loops/promo.ts"
                },
                "name": {
                    "type": "string"
                },
                "playbacks": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/api.StreamPlaybackV3"
                    }
                },
                "regions": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "runtime_settings": {
                    "description": "Runtime settings as raw text. Format: one \"key = value\" setting per line; lines may use \"#\" comments.",
                    "type": "string",
                    "maxLength": 16384
                },
                "runtime_settings_enabled": {
                    "type": "boolean"
                },
                "server_name": {
                    "type": "string"
                },
                "srt_passphrase": {
                    "description": "SRT Encryption shared passphrase to be set on client and server.\nIf left empty when encryption is enabled, a random passphrase will be generated.\nIf non-empty, has to contain ASCII characters only, at least 10 and no more than 79.",
                    "type": "string"
                },
                "status": {
                    "description": "Stream status:\n  * stopped - Stream is stopped\n  * disconnected - Stream source is disconnected or unreachable\n  * active - Stream is actively streaming\n  * unknown - Stream is in an undefined state",
                    "type": "string",
                    "enum": [
                        "stopped",
                        "disconnected",
                        "active",
                        "unknown"
                    ],
                    "example": "active"
                },
                "stream_id": {
                    "type": "string"
                }
            }
        },
        "api.AggregateStreamBatchData": {
            "type": "object",
            "properties": {
                "failed": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/api.AggregateStreamBatchItem"
                    }
                },
                "skipped": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/api.AggregateStreamBatchItem"
                    }
                },
                "success": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/api.AggregateStreamBatchItem"
                    }
                }
            }
        },
        "api.AggregateStreamBatchItem": {
            "type": "object",
            "properties": {
                "bitstreams_id": {
                    "type": "string"
                },
                "reason": {
                    "type": "string"
                },
                "server_name": {
                    "type": "string"
                },
                "stream_id": {
                    "type": "string"
                }
            }
        },
        "api.AggregateStreamBatchRequest": {
            "type": "object",
            "required": [
                "mode"
            ],
            "properties": {
                "bitstreams_id": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "exclude_ids": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/api.AggregateStreamTarget"
                    }
                },
                "location_id": {
                    "type": "integer"
                },
                "mode": {
                    "enum": [
                        "EXPLICIT_IDS",
                        "ALL_MATCHING"
                    ],
                    "allOf": [
                        {
                            "$ref": "#/definitions/api.BatchMode"
                        }
                    ]
                },
                "names": {
                    "description": "Live session names, should pass by the form of \"names[]=name1\u0026names[]=name2\"",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "search_string": {
                    "description": "Search string, fields can be fuzzy searched(case insensitive): stream_id, stream_key(only for srt_push and rtmp_push), name, description, input_settings;",
                    "type": "string",
                    "maxLength": 200
                },
                "selected_ids": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/api.AggregateStreamTarget"
                    }
                },
                "status": {
                    "description": "Stream status, should pass by the form of \"status[]=stopped\u0026status[]=active\"",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "template_ids": {
                    "description": "Template IDs, should pass by the form of \"template_id[]=id1\u0026template_id[]=id2\"",
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                }
            }
        },
        "api.AggregateStreamBatchResp": {
            "type": "object",
            "properties": {
                "data": {
                    "$ref": "#/definitions/api.AggregateStreamBatchData"
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                },
                "meta": {
                    "$ref": "#/definitions/api.AggregateMeta"
                }
            }
        },
        "api.AggregateStreamTarget": {
            "type": "object",
            "required": [
                "bitstreams_id",
                "stream_id"
            ],
            "properties": {
                "bitstreams_id": {
                    "type": "string"
                },
                "stream_id": {
                    "type": "string"
                }
            }
        },
        "api.AggregateStreamsData": {
            "type": "object",
            "properties": {
                "list": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/api.AggregateStream"
                    }
                },
                "matching_counts_by_edge": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "integer"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "api.AggregateStreamsResp": {
            "type": "object",
            "properties": {
                "data": {
                    "$ref": "#/definitions/api.AggregateStreamsData"
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                },
                "meta": {
                    "$ref": "#/definitions/api.AggregateMeta"
                }
            }
        },
        "api.AggregateTemplateReference": {
            "type": "object",
            "required": [
                "bitstreams_id",
                "template_id"
            ],
            "properties": {
                "bitstreams_id": {
                    "type": "string"
                },
                "template_id": {
                    "type": "integer"
                }
            }
        },
        "api.AggregateTemplateUsageData": {
            "type": "object",
            "properties": {
                "servers": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/api.AggregateTemplateUsageServer"
                    }
                }
            }
        },
        "api.AggregateTemplateUsageResp": {
            "type": "object",
            "properties": {
                "data": {
                    "$ref": "#/definitions/api.AggregateTemplateUsageData"
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                },
                "meta": {
                    "$ref": "#/definitions/api.AggregateMeta"
                }
            }
        },
        "api.AggregateTemplateUsageServer": {
            "type": "object",
            "properties": {
                "bitstreams_id": {
                    "type": "string"
                },
                "live_session_count": {
                    "type": "integer"
                },
                "live_sessions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/api.TemplateLiveSessionUsage"
                    }
                },
                "offline_session_count": {
                    "type": "integer"
                },
                "offline_sessions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/api.TemplateOfflineSessionUsage"
                    }
                },
                "server_name": {
                    "type": "string"
                }
            }
        },
        "api.AggregateTemplatesData": {
            "type": "object",
            "properties": {
                "templates": {
                    "type": "object",
                    "additionalProperties": {
                        "$ref": "#/definitions/api.AggregateResolvedTemplate"
                    }
                }
            }
        },
        "api.AggregateTemplatesRequest": {
            "type": "object",
            "required": [
                "references"
            ],
            "properties": {
                "bitstreams_id": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "location_id": {
                    "type": "integer"
                },
                "references": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                        "$ref": "#/definitions/api.AggregateTemplateReference"
                    }
                }
            }
        },
        "api.AggregateTemplatesResp": {
            "type": "object",
            "properties": {
                "data": {
                    "$ref": "#/definitions/api.AggregateTemplatesData"
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                },
                "meta": {
                    "$ref": "#/definitions/api.AggregateMeta"
                }
            }
        },
        "api.AggregateTranscoding": {
            "type": "object",
            "properties": {
                "additional_paths": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "bitstreams_id": {
                    "type": "string"
                },
                "created_at": {
                    "type": "integer"
                },
                "description": {
                    "type": "string"
                },
                "format": {
                    "type": "string",
                    "enum": [
                        "mkv",
                        "mp4"
                    ]
                },
                "full_path": {
                    "type": "string"
                },
                "input_file": {
                    "$ref": "#/definitions/api.TranscodingInputFile"
                },
                "input_subs_files": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/api.TranscodingInputSubtitleFile"
                    }
                },
                "name": {
                    "type": "string"
                },
                "output_id": {
                    "type": "string"
                },
                "path": {
                    "type": "string"
                },
                "post_processing_status": {
                    "type": "integer"
                },
                "progress": {
                    "type": "integer"
                },
                "server_name": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "status_mesg": {
                    "type": "string"
                },
                "template_id": {
                    "type": "integer"
                },
                "transcoding_ended_at": {
                    "type": "integer"
                },
                "transcoding_id": {
                    "type": "string"
                },
                "transcoding_started_at": {
                    "type": "integer"
                }
            }
        },
        "api.AggregateTranscodingProgress": {
            "type": "object",
            "properties": {
                "bitstreams_id": {
                    "type": "string"
                },
                "progress": {
                    "type": "integer"
                },
                "server_name": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "status_mesg": {
                    "type": "string"
                },
                "transcoding_id": {
                    "type": "string"
                }
            }
        },
        "api.AggregateTranscodingProgressRequest": {
            "type": "object",
            "required": [
                "targets"
            ],
            "properties": {
                "bitstreams_id": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "location_id": {
                    "type": "integer"
                },
                "targets": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                        "$ref": "#/definitions/api.AggregateTranscodingTarget"
                    }
                }
            }
        },
        "api.AggregateTranscodingProgressResp": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object",
                    "additionalProperties": {
                        "$ref": "#/definitions/api.AggregateTranscodingProgress"
                    }
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                },
                "meta": {
                    "$ref": "#/definitions/api.AggregateMeta"
                }
            }
        },
        "api.AggregateTranscodingTarget": {
            "type": "object",
            "required": [
                "bitstreams_id",
                "transcoding_id"
            ],
            "properties": {
                "bitstreams_id": {
                    "type": "string"
                },
                "transcoding_id": {
                    "type": "string"
                }
            }
        },
        "api.AggregateTranscodingsData": {
            "type": "object",
            "properties": {
                "list": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/api.AggregateTranscoding"
                    }
                },
                "matching_counts_by_edge": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "integer"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "api.AggregateTranscodingsResp": {
            "type": "object",
            "properties": {
                "data": {
                    "$ref": "#/definitions/api.AggregateTranscodingsData"
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                },
                "meta": {
                    "$ref": "#/definitions/api.AggregateMeta"
                }
            }
        },
        "api.AggregateWarning": {
            "type": "object",
            "properties": {
                "bitstreams_id": {
                    "type": "string"
                },
                "message": {
                    "type": "string"
                },
                "operation": {
                    "type": "string"
                },
                "server_name": {
                    "type": "string"
                }
            }
        },
        "api.AssignBitstreamsLocationReq": {
            "type": "object",
            "required": [
                "bitstreams_id"
            ],
            "properties": {
                "bitstreams_id": {
                    "type": "string"
                },
                "location_id": {
                    "type": "integer"
                }
            }
        },
        "api.AtscDemodulatorCardST": {
            "type": "object",
            "properties": {
                "card": {
                    "type": "integer"
                },
                "program_number": {
                    "type": "integer"
                },
                "tuner": {
                    "type": "integer"
                }
            }
        },
        "api.BaseResp": {
            "type": "object",
            "properties": {
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.BatchMode": {
            "type": "string",
            "enum": [
                "EXPLICIT_IDS",
                "ALL_MATCHING"
            ],
            "x-enum-varnames": [
                "BatchModeExplicit",
                "BatchModeAllMatching"
            ]
        },
        "api.BitstreamsDetail": {
            "type": "object",
            "properties": {
                "architecture": {
                    "type": "string"
                },
                "bitstreams_id": {
                    "type": "string"
                },
                "cert_duration_days": {
                    "type": "integer"
                },
                "expires_at": {
                    "description": "ExpiresAt is the client cert's NotAfter for connected/not_connected rows,\nor the pending /enroll/setup token expiry for pending_enrollment rows.",
                    "type": "string"
                },
                "firmware": {
                    "$ref": "#/definitions/api.BitstreamsFirmwareUpgradeStatus"
                },
                "license": {
                    "$ref": "#/definitions/api.BitstreamsLicenseStatus"
                },
                "location": {
                    "description": "slash-separated path derived from location_id",
                    "type": "string"
                },
                "location_id": {
                    "type": "integer"
                },
                "release": {
                    "$ref": "#/definitions/api.BitstreamsReleaseStatus"
                },
                "resource_sync": {
                    "$ref": "#/definitions/api.BitstreamsResourceSyncStatus"
                },
                "server_name": {
                    "type": "string"
                },
                "status": {
                    "description": "connected | pending_enrollment | not_connected | expired",
                    "type": "string"
                }
            }
        },
        "api.BitstreamsFirmwareUpgradeStatus": {
            "type": "object",
            "properties": {
                "in_progress": {
                    "type": "boolean"
                },
                "reboot_required": {
                    "type": "boolean"
                }
            }
        },
        "api.BitstreamsLicenseStatus": {
            "type": "object",
            "properties": {
                "auth": {
                    "description": "true if license is both valid and active",
                    "type": "boolean"
                },
                "auth_time": {
                    "type": "string"
                },
                "expiration_time": {
                    "type": "string"
                },
                "expired": {
                    "type": "boolean"
                },
                "hardware_overlimit": {
                    "type": "boolean"
                },
                "notice": {
                    "type": "boolean"
                },
                "start_notice": {
                    "type": "boolean"
                }
            }
        },
        "api.BitstreamsReleaseStatus": {
            "type": "object",
            "properties": {
                "current_release": {
                    "type": "string"
                },
                "latest_release": {
                    "type": "string"
                },
                "send_notification": {
                    "type": "boolean"
                }
            }
        },
        "api.BitstreamsResourceSyncStatus": {
            "type": "object",
            "properties": {
                "failed": {
                    "description": "number of resources that failed synchronization",
                    "type": "integer"
                },
                "last_full_sync_at": {
                    "type": "string"
                },
                "pending": {
                    "description": "number of resources pending synchronization",
                    "type": "integer"
                },
                "state": {
                    "description": "paused, syncing, degraded or synced",
                    "type": "string"
                },
                "user_errors": {
                    "description": "failures the operator can fix, e.g. an overlong absorbed template name",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "api.CaptureCardST": {
            "type": "object",
            "properties": {
                "bit_depth": {
                    "description": "Input bit depth:\n0 - default (8-bit)\n8-bit - uyvy422\n10-bit - v210 (yuv422p10)",
                    "type": "integer",
                    "enum": [
                        0,
                        8,
                        10
                    ]
                },
                "format": {
                    "description": "Input format to expect.\nIf set to \"\" or \"autodetect\", any supported input format will be accepted.\nIf set to one of format codes from \"supported_formats\" array (see GET /api/v3/capture_cards),\nthe stream will only run if selected format code matches the format of transmitted signal.",
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "port": {
                    "description": "required for Macnica device, optional for Decklink",
                    "type": "string"
                },
                "protocol": {
                    "type": "string"
                },
                "st2110_audio_sdp": {
                    "description": "SDP to receive audio over ST2110 (for capture cards that support ST2110)",
                    "type": "string"
                },
                "st2110_video_sdp": {
                    "description": "SDP to receive video over ST2110 (for capture cards that support ST2110)",
                    "type": "string"
                }
            }
        },
        "api.CreateLocationReq": {
            "type": "object",
            "required": [
                "name"
            ],
            "properties": {
                "name": {
                    "type": "string",
                    "maxLength": 64
                },
                "parent_id": {
                    "type": "integer"
                }
            }
        },
        "api.CreateLocationResp": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object",
                    "properties": {
                        "location": {
                            "$ref": "#/definitions/api.LocationNode"
                        }
                    }
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.CreateSecretReq": {
            "type": "object",
            "required": [
                "name"
            ],
            "properties": {
                "name": {
                    "type": "string"
                },
                "secret_id": {
                    "type": "string"
                },
                "secret_key": {
                    "type": "string"
                }
            }
        },
        "api.CreateSecretResp": {
            "type": "object",
            "properties": {
                "data": {
                    "$ref": "#/definitions/api.SecretST"
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.DeleteBitstreamsEnrollmentResp": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object",
                    "properties": {
                        "bitstreams_id": {
                            "type": "string"
                        },
                        "disconnected": {
                            "description": "false if the Bitstreams server was not connected during delete",
                            "type": "boolean"
                        },
                        "removed_cert_serial": {
                            "type": "string"
                        }
                    }
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.EnrollRenewReq": {
            "type": "object",
            "required": [
                "server_name"
            ],
            "properties": {
                "cert_duration_days": {
                    "description": "Days in [0,30]; 0 or omitted keeps the enrolled value; otherwise must be 1–30.",
                    "type": "integer"
                },
                "server_name": {
                    "type": "string"
                }
            }
        },
        "api.EnrollRenewResp": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object",
                    "properties": {
                        "bitstreams_id": {
                            "type": "string"
                        },
                        "cert_duration_days": {
                            "type": "integer"
                        },
                        "cert_not_after": {
                            "type": "string"
                        }
                    }
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.EnrollSetupReq": {
            "type": "object",
            "required": [
                "server_name"
            ],
            "properties": {
                "address": {
                    "description": "Optional address (URL or IP) of the Bitstreams server being enrolled. It is not used to reach the server and this call does not enroll it: enrollment is completed by presenting the returned token to the Bitstreams server.",
                    "type": "string"
                },
                "cert_duration_days": {
                    "description": "Days in [0,30], default is 30 if 0 or not specified.",
                    "type": "integer"
                },
                "location_id": {
                    "type": "integer"
                },
                "server_name": {
                    "description": "Alphanumeric only (letters and numbers); no spaces or symbols. Max 64 characters.",
                    "type": "string",
                    "maxLength": 64,
                    "example": "bitstreams1"
                }
            }
        },
        "api.EnrollSetupResp": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object",
                    "properties": {
                        "expires_at": {
                            "type": "string"
                        },
                        "manager_url": {
                            "type": "string"
                        },
                        "token": {
                            "type": "string"
                        }
                    }
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.GetAuthenticatorCodeResp": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object",
                    "properties": {
                        "authenticator_code": {
                            "type": "string"
                        }
                    }
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.GetSecretUsageResp": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object",
                    "properties": {
                        "in_use": {
                            "type": "integer"
                        }
                    }
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.GetSecretsListResp": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object",
                    "properties": {
                        "list": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/api.SecretST"
                            }
                        },
                        "total": {
                            "type": "integer"
                        }
                    }
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.HostInfo": {
            "type": "object",
            "properties": {
                "board_id": {
                    "type": "string"
                },
                "cpu_id": {
                    "type": "string"
                },
                "motherboard": {
                    "type": "string"
                },
                "processor_version": {
                    "type": "string"
                },
                "server_id": {
                    "type": "string"
                },
                "server_serial_number": {
                    "type": "string"
                },
                "t1m_count": {
                    "type": "integer"
                },
                "vpu_count": {
                    "type": "integer"
                }
            }
        },
        "api.ImageDetailST": {
            "type": "object",
            "properties": {
                "create_time": {
                    "type": "integer"
                },
                "id": {
                    "type": "integer"
                },
                "image_id": {
                    "type": "string"
                },
                "image_name": {
                    "type": "string"
                },
                "in_used": {
                    "type": "integer"
                },
                "md5": {
                    "type": "string"
                },
                "size": {
                    "type": "integer"
                },
                "url": {
                    "type": "string"
                }
            }
        },
        "api.ImagesDeleteResp": {
            "type": "object",
            "properties": {
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.ImagesGetListResp": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object",
                    "properties": {
                        "list": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/api.ImageDetailST"
                            }
                        },
                        "total": {
                            "type": "integer"
                        }
                    }
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.ImagesUploadResp": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object",
                    "properties": {
                        "list": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/api.ImageDetailST"
                            }
                        }
                    }
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.ListBitstreamsDetailsResp": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object",
                    "properties": {
                        "bitstreams": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/api.BitstreamsDetail"
                            }
                        }
                    }
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.ListBitstreamsResp": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object",
                    "properties": {
                        "bitstreams": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    }
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.ListLocationsResp": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object",
                    "properties": {
                        "locations": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/api.LocationNode"
                            }
                        }
                    }
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.LocationNode": {
            "type": "object",
            "properties": {
                "bitstreams_count": {
                    "type": "integer"
                },
                "id": {
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                },
                "parent_id": {
                    "type": "integer",
                    "x-nullable": true
                },
                "sort_order": {
                    "type": "integer"
                }
            }
        },
        "api.MoveLocationReq": {
            "type": "object",
            "properties": {
                "parent_id": {
                    "type": "integer"
                }
            }
        },
        "api.NetworkRXTXST": {
            "type": "object",
            "properties": {
                "device": {
                    "type": "string"
                },
                "rx": {
                    "type": "number"
                },
                "rx_speed": {
                    "type": "number"
                },
                "tx": {
                    "type": "number"
                },
                "tx_speed": {
                    "type": "number"
                }
            }
        },
        "api.OutputIssue": {
            "type": "object",
            "properties": {
                "latest_alert_message": {
                    "type": "string"
                },
                "latest_alert_name": {
                    "type": "string"
                },
                "latest_alert_time": {
                    "type": "string"
                },
                "latest_alert_type": {
                    "type": "string"
                },
                "playback_id": {
                    "type": "string"
                }
            }
        },
        "api.PermissionInfo": {
            "type": "object",
            "properties": {
                "card_limit": {
                    "type": "integer"
                },
                "t1m_only": {
                    "type": "integer"
                }
            }
        },
        "api.RateControlSettings": {
            "type": "object",
            "properties": {
                "rc_cbr_enable_lookahead": {
                    "type": "boolean",
                    "default": true
                },
                "rc_cbr_gop_preset_idx": {
                    "description": "enable_lookahead = true: (4, 5, 8, 9); enable_lookahead = false: (1, 3, 4, 5, 7, 8, 9, 10)",
                    "type": "integer",
                    "default": 9
                },
                "rc_cbr_lookahead_depth": {
                    "description": "4-40",
                    "type": "integer",
                    "default": 4
                },
                "rc_crf_mode_value": {
                    "description": "0-51 (23 is default) overrides global settings from advancedParams",
                    "type": "integer",
                    "default": 23
                },
                "rc_mode": {
                    "description": "\"vbr\", \"cbr\", \"crf\".",
                    "type": "string",
                    "default": "vbr"
                },
                "rc_override_global": {
                    "description": "When enabled, other params in RC settings may take effect.",
                    "type": "boolean",
                    "default": false
                },
                "rc_vbv_buffer_size_ms": {
                    "description": "10-3000 Coded picture buffer size in milliseconds. Overrides global settings from advancedParams",
                    "type": "integer",
                    "default": 3000
                }
            }
        },
        "api.RenameLocationReq": {
            "type": "object",
            "required": [
                "name"
            ],
            "properties": {
                "name": {
                    "type": "string",
                    "maxLength": 64
                }
            }
        },
        "api.RenameLocationResp": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object",
                    "properties": {
                        "location": {
                            "$ref": "#/definitions/api.LocationNode"
                        }
                    }
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.SRTListenerOutput": {
            "type": "object",
            "properties": {
                "enable_encryption": {
                    "type": "boolean"
                },
                "passphrase": {
                    "type": "string"
                },
                "stream_key": {
                    "description": "Supply a custom stream key (up to 64 characters) [a-zA-Z0-9\\-_]",
                    "type": "string"
                }
            }
        },
        "api.SRTListenerSettingsST": {
            "type": "object",
            "properties": {
                "outputs": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/api.SRTListenerOutput"
                    }
                }
            }
        },
        "api.SecretST": {
            "type": "object",
            "properties": {
                "created_at": {
                    "type": "integer"
                },
                "id": {
                    "type": "integer"
                },
                "in_use": {
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                },
                "secret_id": {
                    "type": "string"
                }
            }
        },
        "api.StreamInputURLsST": {
            "type": "object",
            "properties": {
                "region": {
                    "type": "string"
                },
                "urls": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "api.StreamLatestAlert": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "time": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "api.StreamMapping": {
            "type": "object",
            "properties": {
                "codec": {
                    "description": "Codec name, audio only, '*' for any codec or allowed values: [\"aac\", \"mp2\", \"mp3\", \"eac3\", \"ac3\", \"opus\", \"flac\", \"pcm_alaw\"].",
                    "type": "string"
                },
                "input_pid": {
                    "description": "Input PID, which can be '*' or a decimal-based integer in the range of 1-8191.",
                    "type": "string"
                },
                "lang": {
                    "description": "ISO 639 language code, or '*' for all languages.",
                    "type": "string"
                },
                "mode": {
                    "description": "Mode of the stream mapping:\n  * passthru - Pass through the stream PID\n  * remap - Remap the stream PID\n  * drop - Drop the stream; can only be used in the last item of mapping",
                    "type": "string",
                    "enum": [
                        "passthru",
                        "remap",
                        "drop"
                    ]
                },
                "order": {
                    "description": "Order of the stream mapping. It can be a non-negative integer or '#'.\n  * For multicast output, '0' must be used to represent the first item in which the type must be 'PMT'.\n  * '#' must be used to represent the last item in which the mode can be set to 'drop' or 'passthru' and the rest to '*'.",
                    "type": "string"
                },
                "output_pid": {
                    "description": "Output PID, which can be '*' or a decimal-based integer in the range of 16-8190, 32-8186 for PMT.",
                    "type": "string"
                },
                "type": {
                    "description": "Type \"data\" is for SCTE-35 only.",
                    "type": "string",
                    "enum": [
                        "*",
                        "PMT",
                        "video",
                        "audio",
                        "subtitle",
                        "teletext",
                        "data"
                    ]
                }
            }
        },
        "api.StreamOutputURL": {
            "type": "object",
            "properties": {
                "region": {
                    "type": "string"
                },
                "urls": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "api.StreamPlaybackHTTPSettingsST": {
            "type": "object",
            "properties": {
                "custom_manifest_name": {
                    "description": "Supply a custom manifest name (up to 64 characters) [a-zA-Z0-9\\-_] to use in HLS/DASH URLs in place of Playback ID.",
                    "type": "string"
                },
                "enable_dash": {
                    "type": "boolean"
                },
                "enable_hls": {
                    "type": "boolean"
                },
                "recording_settings": {
                    "$ref": "#/definitions/api.StreamV3HTTPRecordingSettings"
                },
                "visibility": {
                    "type": "string",
                    "enum": [
                        "public",
                        "signed"
                    ]
                }
            }
        },
        "api.StreamPlaybackV3": {
            "type": "object",
            "required": [
                "output_name",
                "output_type",
                "template_id"
            ],
            "properties": {
                "capture_card_settings": {
                    "type": "object",
                    "properties": {
                        "capture_card_outputs": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/api.CaptureCardST"
                            }
                        }
                    }
                },
                "cmaf_push_settings": {
                    "type": "object",
                    "properties": {
                        "base_url": {
                            "type": "string"
                        },
                        "id3_interval_ms": {
                            "description": "ID3 event interval in milliseconds (valid range: 1-1000ms, required when id3_track is true)",
                            "type": "integer"
                        },
                        "id3_track": {
                            "description": "Enable ID3 metadata track generation for DASH-IF Interface-1 compliance",
                            "type": "boolean"
                        }
                    }
                },
                "enabled": {
                    "description": "Whether the playback is enabled. Only enabled playbacks run when stream is started. THis is a read-only field.",
                    "type": "boolean"
                },
                "file_settings": {
                    "type": "object",
                    "properties": {
                        "format": {
                            "type": "string",
                            "enum": [
                                "mkv",
                                "mp4"
                            ]
                        },
                        "max_file_duration_seconds": {
                            "type": "integer"
                        }
                    }
                },
                "http_settings": {
                    "$ref": "#/definitions/api.StreamPlaybackHTTPSettingsST"
                },
                "mediapackagev2_settings": {
                    "type": "object",
                    "properties": {
                        "ingest_url": {
                            "type": "string"
                        },
                        "secret_id": {
                            "type": "integer"
                        }
                    }
                },
                "mpegts_settings": {
                    "type": "object",
                    "properties": {
                        "enable": {
                            "type": "boolean"
                        },
                        "program_number": {
                            "description": "1-65535",
                            "type": "integer"
                        }
                    }
                },
                "multicast_settings": {
                    "type": "object",
                    "properties": {
                        "service_provider": {
                            "description": "Applies to multicast, srt_listener and srt_push output modes. Defaults to \"Bitstreams\" when empty. Max 255 characters.",
                            "type": "string"
                        }
                    }
                },
                "output_name": {
                    "description": "A name for this output (up to 64 bytes of printable UTF-8; unprintable characters and '\\\\' are not allowed)",
                    "type": "string"
                },
                "output_type": {
                    "type": "string",
                    "enum": [
                        "http",
                        "multicast",
                        "rtmp_push",
                        "srt_push",
                        "srt_listener",
                        "file",
                        "capture_card",
                        "mediapackagev2",
                        "cmaf_push",
                        "whip"
                    ]
                },
                "output_urls": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/api.StreamOutputURL"
                    }
                },
                "playback_id": {
                    "type": "string"
                },
                "rtmp_push_settings": {
                    "type": "object",
                    "properties": {
                        "single_url": {
                            "type": "boolean"
                        }
                    }
                },
                "srt_listener_settings": {
                    "$ref": "#/definitions/api.SRTListenerSettingsST"
                },
                "stream_remap": {
                    "type": "object",
                    "properties": {
                        "enabled": {
                            "type": "boolean"
                        },
                        "stream_mappings": {
                            "description": "If no video mapping is found in the stream mappings, a video passthrough mapping will be automatically added.",
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/api.StreamMapping"
                            }
                        }
                    }
                },
                "template_id": {
                    "type": "integer"
                },
                "template_version": {
                    "description": "template update timestamp that is currently used by the playback (if enabled and active). This is a read-only field",
                    "type": "integer"
                },
                "whip_settings": {
                    "$ref": "#/definitions/api.WHIPSettingsST"
                }
            }
        },
        "api.StreamV3HTTPRecordingSettings": {
            "type": "object",
            "properties": {
                "base_path": {
                    "type": "string"
                },
                "enabled": {
                    "type": "boolean"
                }
            }
        },
        "api.SystemAtscDemodCard": {
            "type": "object",
            "properties": {
                "bitstreams_id": {
                    "type": "string"
                },
                "device": {
                    "type": "integer"
                },
                "model": {
                    "type": "string"
                },
                "tuner_count": {
                    "type": "integer"
                }
            }
        },
        "api.SystemCaptureCard": {
            "type": "object",
            "properties": {
                "bitstreams_id": {
                    "type": "string"
                },
                "group_id": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "license": {
                    "description": "N/A (decklink), Valid, or Invalid (macnica). Informative only. Has no effect on processing so far.",
                    "type": "string",
                    "enum": [
                        "N/A",
                        "Valid",
                        "Invalid"
                    ]
                },
                "port": {
                    "type": "string"
                },
                "protocol": {
                    "type": "string",
                    "enum": [
                        "decklink",
                        "macnica"
                    ]
                },
                "standard": {
                    "description": "SDI or ST2110",
                    "type": "string"
                },
                "supported_input_formats": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/common.CaptureCardFormat"
                    }
                },
                "supported_output_formats": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/common.CaptureCardFormat"
                    }
                },
                "used_by": {
                    "type": "string"
                }
            }
        },
        "api.SystemDevicesData": {
            "type": "object",
            "properties": {
                "atsc_cards": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/api.SystemAtscDemodCard"
                    }
                },
                "capture_cards": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/api.SystemCaptureCard"
                    }
                },
                "vpus": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/api.SystemVPUDevice"
                    }
                }
            }
        },
        "api.SystemDevicesResp": {
            "type": "object",
            "properties": {
                "data": {
                    "$ref": "#/definitions/api.SystemDevicesData"
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.SystemLicense": {
            "type": "object",
            "properties": {
                "auth": {
                    "type": "boolean"
                },
                "auth_time": {
                    "type": "string"
                },
                "bitstreams_id": {
                    "type": "string"
                },
                "days_after": {
                    "type": "integer"
                },
                "expiration_time": {
                    "type": "string"
                },
                "expired": {
                    "type": "boolean"
                },
                "hardware_overlimit": {
                    "type": "boolean"
                },
                "host_info": {
                    "$ref": "#/definitions/api.HostInfo"
                },
                "license_version": {
                    "type": "string"
                },
                "notice": {
                    "type": "boolean"
                },
                "permission_info": {
                    "$ref": "#/definitions/api.PermissionInfo"
                },
                "start_notice": {
                    "type": "boolean"
                }
            }
        },
        "api.SystemLicensesData": {
            "type": "object",
            "properties": {
                "licenses": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/api.SystemLicense"
                    }
                }
            }
        },
        "api.SystemLicensesResp": {
            "type": "object",
            "properties": {
                "data": {
                    "$ref": "#/definitions/api.SystemLicensesData"
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.SystemVPUDevice": {
            "type": "object",
            "properties": {
                "bitstreams_id": {
                    "type": "string"
                },
                "device": {
                    "type": "string"
                },
                "firmware_revision": {
                    "type": "string"
                },
                "host_ip": {
                    "type": "string"
                },
                "model": {
                    "type": "string"
                },
                "serial": {
                    "type": "string"
                },
                "temperature": {
                    "description": "in degrees Celcius",
                    "type": "integer"
                }
            }
        },
        "api.TemplateAdvancedParamsQuadraDecoderST": {
            "type": "object",
            "properties": {
                "deinterlace_mode": {
                    "description": "send_frame outputs one frame per input frame; send_field outputs one frame per field",
                    "type": "string",
                    "default": "send_frame",
                    "enum": [
                        "send_frame",
                        "send_field"
                    ]
                },
                "deinterlace_parity": {
                    "description": "Field parity: auto, tff (top field first) or bff (bottom field first)",
                    "type": "string",
                    "default": "auto",
                    "enum": [
                        "auto",
                        "tff",
                        "bff"
                    ]
                },
                "enable_multicore_joint_mode": {
                    "type": "boolean",
                    "default": false
                },
                "weave": {
                    "description": "\"\", \"disabled\", \"enabled-w\", \"enabled-wd\", \"enabled-w-2\", \"enabled-wd-2\"",
                    "type": "string",
                    "default": "disabled"
                }
            }
        },
        "api.TemplateAdvancedParamsQuadraEncoderST": {
            "type": "object",
            "properties": {
                "crf_mode_value": {
                    "description": "0-51 (23 is default)",
                    "type": "integer",
                    "default": 23
                },
                "enable_lookahead": {
                    "type": "boolean",
                    "default": true
                },
                "enable_multicore_joint_mode": {
                    "type": "boolean",
                    "default": false
                },
                "enable_rdo_quant": {
                    "type": "boolean",
                    "default": true
                },
                "enable_steady_bitrate": {
                    "type": "boolean",
                    "default": false
                },
                "enable_timecode_passthru": {
                    "description": "Legacy passthrough switch for Bitstreams 3.0.0 and earlier clients. timecode_mode is introduced in Bitstreams 3.0.1.\nWrite (create/update): when present, overrides timecode_mode if mode is empty, \"off\", or \"passthrough\"\n(true→passthrough, false→off); ignored when mode is \"system_utc\" or \"auto\"; normalized away and not stored.\nRead (get/list): populated from timecode_mode (false for off, true for passthrough); omitted for system_utc and auto.",
                    "type": "boolean"
                },
                "frame_rate_handling": {
                    "description": "\"capped\", \"force\"",
                    "type": "string",
                    "default": "capped"
                },
                "gop_preset_idx": {
                    "description": "enable_lookahead = true: (4, 5, 8, 9); enable_lookahead = false: (1, 3, 4, 5, 7, 8, 9, 10)",
                    "type": "integer",
                    "default": 8
                },
                "level_h264": {
                    "description": "\"auto\", \"1.0\", \"1.2\", \"1.3\", \"2.0\", \"2.1\", \"2.2\", \"3.0\", \"3.1\", \"3.2\", \"4.0\", \"4.1\", \"4.2\", \"5.0\", \"5.1\", \"5.2\", \"6.0\", \"6.1\", \"6.2\"",
                    "type": "string",
                    "default": "auto"
                },
                "level_h265": {
                    "description": "\"auto\", \"1.0\", \"2.0\", \"2.1\", \"3.0\", \"3.1\", \"4.0\", \"4.1\", \"5.0\", \"5.1\", \"5.2\", \"6.0\", \"6.1\", \"6.2\"",
                    "type": "string",
                    "default": "auto"
                },
                "lookahead_depth": {
                    "description": "4-40",
                    "type": "integer",
                    "default": 4
                },
                "profile_h264": {
                    "description": "\"auto\", \"baseline\", \"main\", \"high\", \"high10\"",
                    "type": "string",
                    "default": "auto"
                },
                "profile_h265": {
                    "description": "\"auto\", \"main\", \"main10\"",
                    "type": "string",
                    "default": "auto"
                },
                "rdo_level": {
                    "description": "1-3",
                    "type": "integer",
                    "default": 1
                },
                "timecode_mode": {
                    "description": "Canonical embedded timecode mode: \"off\", \"passthrough\", \"system_utc\", \"auto\" (introduced in Bitstreams 3.0.1).\nWrite (create/update): legacy enable_timecode_passthru overrides a stale empty/off/passthrough value;\nresult is stored and enable_timecode_passthru is stripped.\nRead (get/list): always returned; enable_timecode_passthru is also populated for Bitstreams 3.0.0\nand earlier clients when mode is off or passthrough.",
                    "type": "string",
                    "default": "off"
                },
                "vbv_buffer_size_ms": {
                    "description": "10-3000 Coded picture buffer size in milliseconds.",
                    "type": "integer",
                    "default": 3000
                }
            }
        },
        "api.TemplateAdvancedParamsQuadraFilterST": {
            "type": "object",
            "properties": {
                "hw_scale_mode": {
                    "description": "Downscaling only:\"auto\", \"nearest_neighbor\", \"fir_blit\", \"bicubic\"",
                    "type": "string",
                    "default": "auto"
                },
                "upscale_mode": {
                    "description": "SW Upscaling only:\"disabled\", \"bicubic\", \"lanczos\"",
                    "type": "string",
                    "default": "disabled"
                }
            }
        },
        "api.TemplateAdvancedParamsQuadraST": {
            "type": "object",
            "properties": {
                "custom_vpu_xcoder_params": {
                    "type": "string"
                },
                "custom_vpu_xcoder_params_enable": {
                    "type": "boolean",
                    "default": false
                },
                "decoder_params": {
                    "$ref": "#/definitions/api.TemplateAdvancedParamsQuadraDecoderST"
                },
                "encoder_params": {
                    "$ref": "#/definitions/api.TemplateAdvancedParamsQuadraEncoderST"
                },
                "filter_params": {
                    "$ref": "#/definitions/api.TemplateAdvancedParamsQuadraFilterST"
                }
            }
        },
        "api.TemplateAudioST": {
            "type": "object",
            "properties": {
                "bitrate": {
                    "description": "aac: 20-640; ac3: X-640 (mono: 64, stereo: 96, 3ch: 128, 4ch: 160, 5.0/5.1: 192); eac3: 32-640, opus: 6-(255*channel) e.g. mono: 6-255, stereo: 6-510, up to 6-2040 for 8ch",
                    "type": "integer"
                },
                "channel": {
                    "description": "aac: 0-8 but aac_he_v2 profile supports only 2; ac3: 0-6; eac3: 0-8, opus: 0-8",
                    "type": "integer"
                },
                "codec": {
                    "description": "\"aac\", \"ac3\", \"eac3\", \"opus\", \"copy\"",
                    "type": "string"
                },
                "default_language": {
                    "description": "language = \"copy\" only: \"copy\" or ISO 639 language code",
                    "type": "string"
                },
                "input_index": {
                    "description": "-1 - 10 (-1 for \"*\")",
                    "type": "integer"
                },
                "language": {
                    "description": "\"copy\" or ISO 639 language code",
                    "type": "string"
                },
                "profile": {
                    "description": "aac only: \"aac_low\", \"aac_he\", \"aac_he_v2\"; others: \"copy\"",
                    "type": "string"
                },
                "samplerate": {
                    "description": "aac_low: (\"48k\", \"44.1k\", \"32k\", \"24k\", \"22.05k\", \"16k\", \"12k\", \"11.025k\"); aac_he/aac_he_v2: (\"48k\", \"44.1k\", \"32k\", \"24k\", \"22.05k\"); ac3: (\"48k\", \"44.1k\", \"32k\"); eac3: (\"48k\", \"44.1k\", \"32k\"); opus: (\"48k\", \"24k\", \"16k\", \"12k\", \"8k\")",
                    "type": "string"
                }
            }
        },
        "api.TemplateCreateReq": {
            "type": "object",
            "required": [
                "name"
            ],
            "properties": {
                "advanced_params_quadra": {
                    "$ref": "#/definitions/api.TemplateAdvancedParamsQuadraST"
                },
                "description": {
                    "description": "0-100 characters",
                    "type": "string"
                },
                "format": {
                    "$ref": "#/definitions/api.TemplateFormatST"
                },
                "name": {
                    "description": "1-64 characters",
                    "type": "string"
                },
                "output": {
                    "$ref": "#/definitions/api.TemplateOutputST"
                }
            }
        },
        "api.TemplateCreateResp": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object",
                    "properties": {
                        "template_id": {
                            "type": "integer"
                        }
                    }
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.TemplateDeleteResp": {
            "type": "object",
            "properties": {
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.TemplateDetailST": {
            "type": "object",
            "required": [
                "name"
            ],
            "properties": {
                "advanced_params_quadra": {
                    "$ref": "#/definitions/api.TemplateAdvancedParamsQuadraST"
                },
                "create_time": {
                    "description": "Unix timestamp in seconds",
                    "type": "integer"
                },
                "description": {
                    "description": "0-100 characters",
                    "type": "string"
                },
                "format": {
                    "$ref": "#/definitions/api.TemplateFormatST"
                },
                "id": {
                    "type": "integer"
                },
                "name": {
                    "description": "1-64 characters",
                    "type": "string"
                },
                "organization_id": {
                    "type": "integer"
                },
                "output": {
                    "$ref": "#/definitions/api.TemplateOutputST"
                },
                "update_time": {
                    "description": "Unix timestamp in seconds",
                    "type": "integer"
                },
                "user_id": {
                    "type": "integer"
                }
            }
        },
        "api.TemplateFormatST": {
            "type": "object",
            "properties": {
                "deinterlace_mode": {
                    "description": "\"send_frame\" or \"send_field\"",
                    "type": "string",
                    "default": "send_frame",
                    "enum": [
                        "send_frame",
                        "send_field"
                    ]
                },
                "deinterlace_parity": {
                    "description": "\"auto\", \"tff\", \"bff\"",
                    "type": "string",
                    "default": "auto",
                    "enum": [
                        "auto",
                        "tff",
                        "bff"
                    ]
                },
                "enable_hls_combined_audio": {
                    "type": "boolean",
                    "default": false
                },
                "hls_format": {
                    "description": "\"ts\" or \"fmp4\"",
                    "type": "string",
                    "default": "fmp4"
                },
                "mpegts_null_stuffing": {
                    "type": "boolean",
                    "default": false
                },
                "mpegts_null_stuffing_extra": {
                    "description": "extra muxrate in kbps, 0-5000 (validated even when mpegts_null_stuffing is false)",
                    "type": "integer",
                    "default": 0
                },
                "mpegts_tv_system": {
                    "description": "\"dvb\" or \"atsc\"",
                    "type": "string",
                    "default": "dvb"
                },
                "pixel_format_mode": {
                    "description": "\"passthrough\", \"force8bit\"",
                    "type": "string",
                    "default": "passthrough"
                },
                "rendition_structure": {
                    "description": "\"single\" or \"multiple\"",
                    "type": "string",
                    "default": "multiple"
                },
                "segment_duration": {
                    "description": "1.0-20.0, HLS only config, segment duration in seconds, minimal increment is 0.1",
                    "type": "number",
                    "default": 2
                },
                "segments_stored": {
                    "description": "2-15, HLS only config, segment window size",
                    "type": "integer",
                    "default": 15
                }
            }
        },
        "api.TemplateGetDetailResp": {
            "type": "object",
            "properties": {
                "data": {
                    "$ref": "#/definitions/api.TemplateDetailST"
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.TemplateGetListResp": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object",
                    "properties": {
                        "list": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/api.TemplateDetailST"
                            }
                        },
                        "total": {
                            "description": "Based only on names[], ids[], search_string, and timezone_offset.",
                            "type": "integer"
                        },
                        "used_template_ids": {
                            "description": "Based only on templates listed in \"list\".",
                            "type": "array",
                            "items": {
                                "type": "integer"
                            }
                        }
                    }
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.TemplateGlobalAudioLevelControlST": {
            "type": "object",
            "properties": {
                "enabled": {
                    "description": "Enable or disable global audio level control.",
                    "type": "boolean",
                    "default": false
                },
                "integrated_loudness": {
                    "description": "Integrated loudness (LUFS) target. Range is -70.0 to -5.0. Default value is -24.0.",
                    "type": "number",
                    "default": -24
                },
                "loudness_range": {
                    "description": "Loudness range (LU) target. Range is 1.0 - 50.0. Default value is 7.0.",
                    "type": "number",
                    "default": 7
                },
                "true_peak": {
                    "description": "True peak (dBTP) target. Range is -9.0 - +0.0. Default value is -2.0.",
                    "type": "number",
                    "default": -2
                }
            }
        },
        "api.TemplateLiveSessionUsage": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "playbacks": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/api.TemplatePlaybackItem"
                    }
                },
                "status": {
                    "type": "string"
                }
            }
        },
        "api.TemplateLogoHotSwapFailed": {
            "type": "object",
            "properties": {
                "playback_id": {
                    "type": "string"
                },
                "playback_name": {
                    "type": "string"
                },
                "reason": {
                    "type": "string"
                },
                "stream_id": {
                    "type": "string"
                },
                "stream_name": {
                    "type": "string"
                }
            }
        },
        "api.TemplateLogoHotSwapResult": {
            "type": "object",
            "properties": {
                "failed": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/api.TemplateLogoHotSwapFailed"
                    }
                },
                "updated": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/api.TemplateLogoHotSwapUpdated"
                    }
                }
            }
        },
        "api.TemplateLogoHotSwapUpdated": {
            "type": "object",
            "properties": {
                "playback_id": {
                    "type": "string"
                },
                "playback_name": {
                    "type": "string"
                },
                "stream_id": {
                    "type": "string"
                },
                "stream_name": {
                    "type": "string"
                }
            }
        },
        "api.TemplateLogoST": {
            "type": "object",
            "properties": {
                "img_id": {
                    "type": "string"
                },
                "location": {
                    "description": "\"top_left\", \"top_right\", \"bottom_left\", \"bottom_right\"",
                    "type": "string"
                },
                "location_type": {
                    "description": "\"fixed\", \"pixel\"",
                    "type": "string"
                },
                "max_height": {
                    "type": "integer",
                    "default": 0
                },
                "max_width": {
                    "description": "MaxWidth / MaxHeight reserve a worst-case bounding box for hot-swap\nreplacement images. Required when output.enable_logo_hot_swap is true,\nin which case the logo image and any future hot-swap image must fit\ninside this box. Ignored otherwise (legacy behavior: bounds derived\nfrom the loaded logo image).",
                    "type": "integer",
                    "default": 0
                },
                "x": {
                    "description": "location_type = \"pixel\" only: 10-max_width-10 (max_width is the maximum width of the video settings of the template)",
                    "type": "integer"
                },
                "y": {
                    "description": "location_type = \"pixel\" only: 10-max_height-10 (max_height is the maximum height of the video settings of the template)",
                    "type": "integer"
                }
            }
        },
        "api.TemplateOfflineSessionUsage": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                }
            }
        },
        "api.TemplateOutputST": {
            "type": "object",
            "properties": {
                "audio": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/api.TemplateAudioST"
                    }
                },
                "default_audio_lang": {
                    "description": "ISO 639 language code",
                    "type": "string",
                    "default": "eng"
                },
                "enable_logo_hot_swap": {
                    "description": "EnableLogoHotSwap allows image-only logo changes to be pushed to running streams.\nOther Graphic Overlay changes still require stream restart before taking effect.",
                    "type": "boolean",
                    "default": false
                },
                "global_audio_level_control": {
                    "$ref": "#/definitions/api.TemplateGlobalAudioLevelControlST"
                },
                "logo": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/api.TemplateLogoST"
                    }
                },
                "set_logo": {
                    "type": "boolean",
                    "default": false
                },
                "video": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/api.TemplateVideoST"
                    }
                },
                "webvtt": {
                    "$ref": "#/definitions/api.TemplateWebVTTST"
                },
                "webvtt_cc": {
                    "$ref": "#/definitions/api.TemplateWebVTTCCST"
                }
            }
        },
        "api.TemplatePlaybackItem": {
            "type": "object",
            "properties": {
                "hot_swap_ready": {
                    "type": "boolean"
                },
                "playback_id": {
                    "type": "string"
                },
                "playback_name": {
                    "type": "string"
                }
            }
        },
        "api.TemplateStreamItem": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "playbacks": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/api.TemplatePlaybackItem"
                    }
                },
                "state": {
                    "type": "string"
                }
            }
        },
        "api.TemplateStreamsData": {
            "type": "object",
            "properties": {
                "streams": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/api.TemplateStreamItem"
                    }
                }
            }
        },
        "api.TemplateStreamsResp": {
            "type": "object",
            "properties": {
                "data": {
                    "$ref": "#/definitions/api.TemplateStreamsData"
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.TemplateUpdateData": {
            "type": "object",
            "properties": {
                "overlay_update": {
                    "$ref": "#/definitions/api.TemplateLogoHotSwapResult"
                }
            }
        },
        "api.TemplateUpdateReq": {
            "type": "object",
            "required": [
                "name"
            ],
            "properties": {
                "advanced_params_quadra": {
                    "$ref": "#/definitions/api.TemplateAdvancedParamsQuadraST"
                },
                "description": {
                    "description": "0-100 characters",
                    "type": "string"
                },
                "format": {
                    "$ref": "#/definitions/api.TemplateFormatST"
                },
                "name": {
                    "description": "1-64 characters",
                    "type": "string"
                },
                "output": {
                    "$ref": "#/definitions/api.TemplateOutputST"
                }
            }
        },
        "api.TemplateUpdateResp": {
            "type": "object",
            "properties": {
                "data": {
                    "$ref": "#/definitions/api.TemplateUpdateData"
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.TemplateUsageData": {
            "type": "object",
            "properties": {
                "live_session_count": {
                    "type": "integer"
                },
                "live_sessions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/api.TemplateLiveSessionUsage"
                    }
                },
                "offline_session_count": {
                    "type": "integer"
                },
                "offline_sessions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/api.TemplateOfflineSessionUsage"
                    }
                }
            }
        },
        "api.TemplateUsageResp": {
            "type": "object",
            "properties": {
                "data": {
                    "$ref": "#/definitions/api.TemplateUsageData"
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.TemplateVideoST": {
            "type": "object",
            "properties": {
                "bitrate": {
                    "description": "100-100000 in kbps",
                    "type": "integer"
                },
                "capture_card_format": {
                    "type": "string"
                },
                "codec": {
                    "description": "\"h264\", \"h265\", \"av1\", \"raw_sdi\", \"lcevc_h264_null\", \"lcevc_hevc_null\"",
                    "type": "string"
                },
                "fps": {
                    "description": "1.0-60.0",
                    "type": "number"
                },
                "fps_rational": {
                    "type": "string"
                },
                "height": {
                    "description": "128-8192 (128-4352 for av1) or 0 for source resolution",
                    "type": "integer"
                },
                "level": {
                    "description": "H.264/H.265 with/without LCEVC only. Empty inherits global; \"auto\" leaves the encoder default.",
                    "type": "string"
                },
                "profile": {
                    "description": "H.264/H.265 with/without LCEVC only. Empty inherits global; \"auto\" leaves the encoder default.",
                    "type": "string"
                },
                "rc_settings": {
                    "description": "If left empty, VBR mode will be used.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/api.RateControlSettings"
                        }
                    ]
                },
                "width": {
                    "description": "128-8192 (144-4096 for av1) or 0 for source resolution",
                    "type": "integer"
                }
            }
        },
        "api.TemplateWebVTTCCST": {
            "type": "object",
            "properties": {
                "enabled": {
                    "type": "boolean",
                    "default": false
                },
                "languages": {
                    "description": "comma-separated ISO 639 codes (up to 4) or \"*\"",
                    "type": "string",
                    "default": "*"
                }
            }
        },
        "api.TemplateWebVTTST": {
            "type": "object",
            "properties": {
                "enabled": {
                    "type": "boolean",
                    "default": false
                },
                "language": {
                    "description": "ISO 639 language code or '*' to convert all languages.; To specify more than 1 ISO 639 language code, specify them with commas in between (e.g., eng,swe,fin).",
                    "type": "string"
                },
                "priority": {
                    "description": "\"teletext\", \"dvb_subtitle\"",
                    "type": "string",
                    "default": "teletext"
                }
            }
        },
        "api.TransVersionsST": {
            "type": "object",
            "properties": {
                "num": {
                    "type": "integer"
                },
                "version": {
                    "type": "string"
                }
            }
        },
        "api.TranscodingInputFile": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                },
                "path": {
                    "type": "string"
                },
                "size": {
                    "type": "integer"
                },
                "type": {
                    "type": "string"
                },
                "unmanaged": {
                    "description": "Whether the file is managed by Bitstreams or not. Filepath passed via /api/v3/transcoding/from_filepath\nwill be marked as unmanaged, so that it's not deleted when deleting an encoding session that uses it.",
                    "type": "boolean"
                }
            }
        },
        "api.TranscodingInputSubtitleFile": {
            "type": "object",
            "properties": {
                "name": {
                    "description": "same as language",
                    "type": "string"
                },
                "original_name": {
                    "description": "name of file as received from user",
                    "type": "string"
                },
                "path": {
                    "type": "string"
                },
                "size": {
                    "type": "integer"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "api.UpdateAuthenticatorCodeReq": {
            "type": "object",
            "required": [
                "authenticator_code"
            ],
            "properties": {
                "authenticator_code": {
                    "type": "string"
                }
            }
        },
        "api.UpdateAuthenticatorCodeResp": {
            "type": "object",
            "properties": {
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.UpdateSecretReq": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                },
                "secret_id": {
                    "type": "string"
                },
                "secret_key": {
                    "type": "string"
                }
            }
        },
        "api.VPUAverageLoadST": {
            "type": "object",
            "properties": {
                "codec": {
                    "type": "string"
                },
                "fw_load": {
                    "type": "integer"
                },
                "inst": {
                    "description": "Instance count, MAX = 128",
                    "type": "integer"
                },
                "load": {
                    "description": "Active instaneous load of VPU HW (0-100)",
                    "type": "integer"
                },
                "mem": {
                    "description": "Memory usage",
                    "type": "integer"
                },
                "model_load": {
                    "description": "Approximate load if working at frame rate (dec/enc only)",
                    "type": "integer"
                },
                "pm_fps": {
                    "type": "integer"
                },
                "pm_pps": {
                    "type": "integer"
                },
                "smem": {
                    "type": "integer"
                }
            }
        },
        "api.VPUModelsST": {
            "type": "object",
            "properties": {
                "host_num": {
                    "type": "integer"
                },
                "model": {
                    "type": "string"
                },
                "num": {
                    "type": "integer"
                }
            }
        },
        "api.WHIPOutput": {
            "type": "object",
            "properties": {
                "auth_token": {
                    "type": "string"
                },
                "url": {
                    "type": "string"
                }
            }
        },
        "api.WHIPSettingsST": {
            "type": "object",
            "properties": {
                "outputs": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/api.WHIPOutput"
                    }
                }
            }
        },
        "common.CaptureCardFormat": {
            "type": "object",
            "properties": {
                "description": {
                    "type": "string"
                },
                "fps_rational_string": {
                    "type": "string"
                },
                "fps_string": {
                    "type": "string"
                },
                "height": {
                    "type": "integer"
                },
                "interlaced": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "width": {
                    "type": "integer"
                }
            }
        }
    }
}