{
    "swagger": "2.0",
    "info": {
        "description": "Bitstreams is a live and offline encoding application using NETINT's Quadra VPU.",
        "title": "Bitstreams",
        "contact": {},
        "version": "v3.0.0"
    },
    "paths": {
        "/api/v3/atsc/tuners": {
            "get": {
                "description": "Lists Dektec cards with per-tuner config, enabled state, and last scan.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ATSC"
                ],
                "summary": "List ATSC tuners",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.GetAtscTunersResp"
                        }
                    }
                }
            },
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ATSC"
                ],
                "summary": "Set ATSC tuner frequency/modulation",
                "parameters": [
                    {
                        "description": "tuner config",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.AtscTunerConfigReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.AtscActionResp"
                        }
                    }
                }
            }
        },
        "/api/v3/atsc/tuners/disable": {
            "put": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ATSC"
                ],
                "summary": "Disable an ATSC tuner",
                "parameters": [
                    {
                        "description": "tuner",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.AtscTunerActionReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.AtscActionResp"
                        }
                    }
                }
            }
        },
        "/api/v3/atsc/tuners/enable": {
            "put": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ATSC"
                ],
                "summary": "Enable (tune + scan) an ATSC tuner",
                "parameters": [
                    {
                        "description": "tuner",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.AtscTunerActionReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.AtscActionResp"
                        }
                    }
                }
            }
        },
        "/api/v3/atsc/tuners/rescan": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ATSC"
                ],
                "summary": "Rescan an ATSC tuner",
                "parameters": [
                    {
                        "description": "tuner",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.AtscTunerActionReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.AtscActionResp"
                        }
                    }
                }
            }
        },
        "/api/v3/atsc/tuners/streams": {
            "post": {
                "description": "Returns the streams whose atsc_demodulator_card input is this tuner. A tuner cannot be disabled while any stream uses it; the UI calls this before disabling.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ATSC"
                ],
                "summary": "List streams configured to use an ATSC tuner",
                "parameters": [
                    {
                        "description": "tuner",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.AtscTunerActionReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.GetAtscTunerStreamsResp"
                        }
                    }
                }
            }
        },
        "/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/backup": {
            "get": {
                "description": "Download a backup file which contains secrets, templates, overlay images, and streams.",
                "produces": [
                    "application/octet-stream"
                ],
                "tags": [
                    "Backup/Restore"
                ],
                "summary": "Download a backup file.",
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/v3/capture_cards": {
            "get": {
                "description": "Retrieves the list of available capture cards for live input from SDI.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Other"
                ],
                "summary": "Get Available Capture Cards",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.GetCaptureCardsListResp"
                        }
                    }
                }
            }
        },
        "/api/v3/diagnostics": {
            "get": {
                "description": "Download diagnostics dump containing command outputs, logs, and app state.",
                "produces": [
                    "application/octet-stream"
                ],
                "tags": [
                    "Backup/Restore"
                ],
                "summary": "Download diagnostics dump file.",
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/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"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "integer"
                        },
                        "collectionFormat": "csv",
                        "name": "ids",
                        "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"
                    }
                ],
                "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": "integer",
                        "format": "int64",
                        "description": "Organization ID",
                        "name": "organization_id",
                        "in": "formData",
                        "required": true
                    },
                    {
                        "type": "file",
                        "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/manager": {
            "get": {
                "description": "Returns manager URLs merged with local connection agent enrollment state. Secrets such as enroll tokens and client certificates are omitted.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Manager"
                ],
                "summary": "List manager connections",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Organization ID (required when using JWT authentication)",
                        "name": "organization_id",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.ListManagerConnectionsResp"
                        }
                    }
                }
            }
        },
        "/api/v3/manager/setup": {
            "post": {
                "description": "Configures manager connectivity for this server: persists the manager URL, provisions an API access token, and enrolls the local connection agent with the manager gateway.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Manager"
                ],
                "summary": "Enroll edge with Bitstreams manager",
                "parameters": [
                    {
                        "description": "Manager enrollment request",
                        "name": "object",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.SetupEnrollmentReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.SetupEnrollmentResp"
                        }
                    }
                }
            }
        },
        "/api/v3/manager/{id}": {
            "delete": {
                "description": "Removes a manager when the server's connection agent has an enrollment for that manager URL, also clears the enrollment state.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Manager"
                ],
                "summary": "Delete manager configuration",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Manager ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "Organization ID (required when using JWT authentication)",
                        "name": "organization_id",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.DeleteManagerResp"
                        }
                    }
                }
            }
        },
        "/api/v3/networking/settings": {
            "get": {
                "description": "Retrieves current networking settings.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Networking"
                ],
                "summary": "Get Networking Settings",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.GetNetworkingSettingsResp"
                        }
                    }
                }
            },
            "post": {
                "description": "Updates networking settings.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Networking"
                ],
                "summary": "Update Networking Settings",
                "parameters": [
                    {
                        "description": "Networking settings struct",
                        "name": "object",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.UpdateNetworkingSettingsReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v3/notifications": {
            "get": {
                "description": "Retrieves a list of notifications for the authenticated user",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Notifications"
                ],
                "summary": "Get Notifications List",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Page number for pagination",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Number of items per page",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "description": "Filter notifications by type (e.g. 'warning', 'error', 'info')",
                        "name": "type",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter notifications by stream ID",
                        "name": "stream_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Search notifications by message",
                        "name": "search_string",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/http.NotifyListResponse"
                        }
                    }
                }
            }
        },
        "/api/v3/other/information": {
            "get": {
                "description": "Retrieves system resource information and status for a specific region.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Resource"
                ],
                "summary": "Get Resource Information",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Region to get resource information from",
                        "name": "region",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.InformationResp"
                        }
                    }
                }
            }
        },
        "/api/v3/other/information_v2": {
            "get": {
                "description": "Retrieves console dashboard hardware snapshot for a specific region.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Resource"
                ],
                "summary": "Get Resource Information (v2)",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Region to get resource information from",
                        "name": "region",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.InformationV2Resp"
                        }
                    }
                }
            }
        },
        "/api/v3/other/rescan_vpu": {
            "post": {
                "description": "Triggers a VPU rescan operation on the stream-trans service. If new devices are discovered, they may appear within 10 seconds.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Resource"
                ],
                "summary": "Rescan VPU",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v3/regions": {
            "get": {
                "description": "Retrieves the region aliases associated to Edge.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Other"
                ],
                "summary": "Get Available Regions",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.RegionListResp"
                        }
                    }
                }
            }
        },
        "/api/v3/restore": {
            "post": {
                "description": "Restore system state (secrets, templates, and streams) from a backup file. Note that the existing secrets, templates and streams are completely overwritten by restore.",
                "consumes": [
                    "application/octet-stream"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Backup/Restore"
                ],
                "summary": "Restore system state from a backup file.",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.RestoreResp"
                        }
                    }
                }
            }
        },
        "/api/v3/runtime_schema": {
            "get": {
                "description": "Retrieves the schema used to validate runtime override settings for live encoding sessions.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Live Session"
                ],
                "summary": "Get Runtime Settings Schema",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.RuntimeSchemaRespV3"
                        }
                    }
                }
            }
        },
        "/api/v3/secrets": {
            "get": {
                "description": "Retrieves a list of 3rd-party secrets stored in Bitstreams.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Secrets"
                ],
                "summary": "List 3rd-party secrets stored in Bitstreams",
                "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 can be requried 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 to Bitstreams",
                "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}": {
            "delete": {
                "description": "Removing will only succeed if the credential is not used by any templates/streams.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Secrets"
                ],
                "summary": "Remove a 3rd-party secret credential from Bitstreams.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v3/streams": {
            "get": {
                "description": "Provides a list of live sessions based on various query parameters such as page, limit, and status.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Live Session"
                ],
                "summary": "List Sessions",
                "parameters": [
                    {
                        "type": "boolean",
                        "default": false,
                        "description": "true: only return the total number of live sessions, false: return the list of live sessions and total number",
                        "name": "count_only",
                        "in": "query"
                    },
                    {
                        "maximum": 100,
                        "type": "integer",
                        "default": 10,
                        "description": "Number of live sessions per page, min 1 (value smaller than 1 will be set to 10), max 50 (value bigger than 50 will be set to 50)",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "description": "Live session names, should pass by the form of \"names[]=name1\u0026names[]=name2\"",
                        "name": "names",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "asc",
                            "desc"
                        ],
                        "type": "string",
                        "default": "desc",
                        "description": "In effect only when used with order_by",
                        "name": "order",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "id",
                            "name",
                            "create_time"
                        ],
                        "type": "string",
                        "default": "id",
                        "description": "Order by field",
                        "name": "order_by",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "default": 1,
                        "description": "Page number, should be greater than 0",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "maxLength": 200,
                        "type": "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;",
                        "name": "search_string",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "description": "Stream status, should pass by the form of \"status[]=stopped\u0026status[]=active\"",
                        "name": "status",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "integer"
                        },
                        "collectionFormat": "csv",
                        "description": "Template IDs, should pass by the form of \"template_id[]=id1\u0026template_id[]=id2\"",
                        "name": "template_id",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.StreamGetListRespV3"
                        }
                    }
                }
            },
            "post": {
                "description": "Creates a new live session with the provided configuration.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Live Session"
                ],
                "summary": "Create Session",
                "parameters": [
                    {
                        "description": "Stream creation request data",
                        "name": "object",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.StreamCreateReqV3"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.StreamCreateRespV3"
                        }
                    }
                }
            }
        },
        "/api/v3/streams/batch/clear_warnings": {
            "post": {
                "description": "Clears the latest warning for multiple live sessions if the latest alert is a warning. The cleared warning will no longer be displayed on the Dashboard nor affect the \"Live Session Detail\" status.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Live Session"
                ],
                "summary": "Batch Clear Warnings",
                "parameters": [
                    {
                        "description": "Batch clear warnings request",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.BatchOperationReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BatchOperationResp"
                        }
                    }
                }
            }
        },
        "/api/v3/streams/batch/delete": {
            "post": {
                "description": "Deletes multiple live sessions in batch. If success.length == 0 and failed.length \u003e 0, the response will carry err_code=1; otherwise err_code=0. When both stream_ids and all=true are specified, only all=true is considered.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Live Session"
                ],
                "summary": "Batch Delete Live Sessions",
                "parameters": [
                    {
                        "description": "Batch delete live sessions request",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.BatchOperationReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BatchOperationResp"
                        }
                    }
                }
            }
        },
        "/api/v3/streams/batch/start": {
            "post": {
                "description": "Starts multiple live sessions in batch. If success.length == 0 and failed.length \u003e 0, the response will carry err_code=1; otherwise err_code=0. When both stream_ids and all=true are specified, only all=true is considered.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Live Session"
                ],
                "summary": "Batch Start Live Sessions",
                "parameters": [
                    {
                        "description": "Batch start live sessions request",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.BatchOperationReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BatchOperationResp"
                        }
                    }
                }
            }
        },
        "/api/v3/streams/batch/stop": {
            "post": {
                "description": "Stops multiple live sessions in batch. If success.length == 0 and failed.length \u003e 0, the response will carry err_code=1; otherwise err_code=0. When both stream_ids and all=true are specified, only all=true is considered.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Live Session"
                ],
                "summary": "Batch Stop Live Sessions",
                "parameters": [
                    {
                        "description": "Batch stop live sessions request",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.BatchOperationReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BatchOperationResp"
                        }
                    }
                }
            }
        },
        "/api/v3/streams/batch/switch_active_url": {
            "post": {
                "description": "Switches the active URL for a live multicast input encoding session.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Live Session"
                ],
                "summary": "Switch Active URL for a list of streams",
                "parameters": [
                    {
                        "description": "Batch input switch request",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.BatchSwitchActiveURLReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BatchOperationResp"
                        }
                    }
                }
            }
        },
        "/api/v3/streams/csv_export": {
            "post": {
                "description": "Exports the selected live sessions as a CSV file for bulk setup workflows.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "text/csv"
                ],
                "tags": [
                    "Live Session"
                ],
                "summary": "Export Sessions as CSV",
                "parameters": [
                    {
                        "description": "CSV export request data",
                        "name": "object",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.StreamCSVExportReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "CSV file",
                        "schema": {
                            "type": "file"
                        }
                    }
                }
            }
        },
        "/api/v3/streams/csv_import": {
            "post": {
                "description": "Imports live sessions from a CSV file. The import is create-only and fails the entire job if any row is invalid.",
                "consumes": [
                    "multipart/form-data"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Live Session"
                ],
                "summary": "Import Sessions from CSV",
                "parameters": [
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "Organization ID",
                        "name": "organization_id",
                        "in": "formData"
                    },
                    {
                        "type": "file",
                        "description": "CSV file to import",
                        "name": "file",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.StreamCSVImportResp"
                        }
                    }
                }
            }
        },
        "/api/v3/streams/health_report": {
            "get": {
                "description": "Retrieves the total health of all active live encoding sessions. The error count is for streams with serious issues, warning is for streams that can still have outputs but may need attention, and running is for freshly started streams pending input or healthy streams.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Live Session"
                ],
                "summary": "Get Session Health",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "User ID",
                        "name": "user_id",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.StreamTotalHealthReportResp"
                        }
                    }
                }
            }
        },
        "/api/v3/streams/issues": {
            "get": {
                "description": "Get list of streams with output issues such as warnings and errors.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Live Session"
                ],
                "summary": "Get List of Streams with Issues",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "User ID",
                        "name": "user_id",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Page number for pagination, default 1",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Number of items per page, 1-50, default 10",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Order by field",
                        "name": "order_by",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Order direction (asc or desc)",
                        "name": "order",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "description": "Alert types (info, warning, error)",
                        "name": "alert_types",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Search string (max 200 characters)",
                        "name": "search_string",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.StreamGetListIssuesResp"
                        }
                    }
                }
            }
        },
        "/api/v3/streams/name/{name}": {
            "get": {
                "description": "Determine if a live encoding name is already being used. (Does not support \".\" and \"..\", please use [Get Live Session List with `count_only=true`] instead)",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Live Session"
                ],
                "summary": "Get Name",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Stream name",
                        "name": "name",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.StreamNameExistResp"
                        }
                    }
                }
            }
        },
        "/api/v3/streams/{stream_id}": {
            "get": {
                "description": "Retrieves detailed information about a specific encoding session, including status and settings.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Live Session"
                ],
                "summary": "Get Session Details",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Stream ID",
                        "name": "stream_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.StreamGetRespV3"
                        }
                    }
                }
            },
            "put": {
                "description": "Modifies the configuration of an existing live encoding session using the provided update parameters.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Live Session"
                ],
                "summary": "Update Sessions",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Stream ID",
                        "name": "stream_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Stream update request data",
                        "name": "object",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.StreamUpdateReqV3"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.StreamUpdateRespV3"
                        }
                    }
                }
            },
            "delete": {
                "description": "Permanently deletes a live encoding session.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Live Session"
                ],
                "summary": "Delete Session",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Stream ID",
                        "name": "stream_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.StreamDeleteRespV3"
                        }
                    }
                }
            }
        },
        "/api/v3/streams/{stream_id}/events": {
            "get": {
                "description": "Retrieves a list of events related to a specific stream.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Live Session"
                ],
                "summary": "Get Session Events",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Stream ID",
                        "name": "stream_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "Page number for pagination",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Number of items per page",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Region alias to filter events",
                        "name": "region",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.StreamEventV3ListResp"
                        }
                    }
                }
            }
        },
        "/api/v3/streams/{stream_id}/playback_status": {
            "get": {
                "description": "Retrieves status of a particular playback belonging to a live encoding session.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Live Session"
                ],
                "summary": "Get Session Playback Status",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Stream ID",
                        "name": "stream_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Playback ID",
                        "name": "playback_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.StreamGetPlaybackStatusRespV3"
                        }
                    }
                }
            }
        },
        "/api/v3/streams/{stream_id}/probe_report": {
            "get": {
                "description": "Gets the probe report for a live session.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Live Session"
                ],
                "summary": "Get Stream Probe Report",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Stream ID",
                        "name": "stream_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.StreamGetProbeReportRespV3"
                        }
                    }
                }
            }
        },
        "/api/v3/streams/{stream_id}/probe_source": {
            "put": {
                "description": "Probes the source of a live session.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Live Session"
                ],
                "summary": "Probe Source",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Stream ID",
                        "name": "stream_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v3/streams/{stream_id}/recordings": {
            "get": {
                "description": "Returns a paginated list of VOD recordings, including output path, status, and start/end timestamps, sorted by time in descending order.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Live Session"
                ],
                "summary": "Retrieve List of VOD Recordings for a Stream",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Stream ID",
                        "name": "stream_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "Page number for pagination, default 1",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Number of items per page, 1-50, default 10",
                        "name": "limit",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.StreamGetRecordingsListRespV3"
                        }
                    }
                }
            }
        },
        "/api/v3/streams/{stream_id}/recordings/disk_usage": {
            "get": {
                "description": "Returns free and total disk space for the recording filesystem of the stream's recordable HTTP playback.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Live Session"
                ],
                "summary": "Get recording disk usage",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Stream ID",
                        "name": "stream_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.RecordingDiskUsageResp"
                        }
                    }
                }
            }
        },
        "/api/v3/streams/{stream_id}/runtime_settings": {
            "put": {
                "description": "Updates runtime override settings for an existing live encoding session.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Live Session"
                ],
                "summary": "Update Session Runtime Settings",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Stream ID",
                        "name": "stream_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Runtime settings update request data",
                        "name": "object",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.StreamRuntimeSettingsUpdateReqV3"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v3/streams/{stream_id}/slate": {
            "get": {
                "description": "Returns current status of the Stream Slate, if enabled in stream configuration.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Live Session"
                ],
                "summary": "Get Stream Slate state",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Stream ID",
                        "name": "stream_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.GetStreamSlateV3Resp"
                        }
                    }
                }
            },
            "post": {
                "description": "Updates Stream Slate state, if Slate support is enabled in stream configuration.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Live Session"
                ],
                "summary": "Set Stream Slate state",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Stream ID",
                        "name": "stream_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "New Stream Slate state",
                        "name": "object",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.SetStreamSlateV3Req"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.GetStreamSlateV3Resp"
                        }
                    }
                }
            }
        },
        "/api/v3/streams/{stream_id}/source_info": {
            "get": {
                "description": "Retrieves source info of a live encoding session.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Live Session"
                ],
                "summary": "Get Session Input Details",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Stream ID",
                        "name": "stream_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.StreamGetSourceInfoRespV3"
                        }
                    }
                }
            }
        },
        "/api/v3/streams/{stream_id}/source_reports": {
            "get": {
                "description": "Retrieves source reports of all playbacks in a session.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Live Session"
                ],
                "summary": "Get All Session Input Reports",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Stream ID",
                        "name": "stream_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.StreamGetSourceReportsRespV3"
                        }
                    }
                }
            }
        },
        "/api/v3/streams/{stream_id}/start": {
            "put": {
                "description": "Starts the specific live encoding session. For push inputs, stream may not start immediately until publish point is receiving an input.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Live Session"
                ],
                "summary": "Start Session",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Stream ID",
                        "name": "stream_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v3/streams/{stream_id}/start_recording": {
            "put": {
                "description": "Starts VOD recording. Valid only for HTTP playbacks with recording enabled. Valid only if recording is not started yet and the corresponding HTTP playback is active.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Live Session"
                ],
                "summary": "Start VOD Recording",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Stream ID",
                        "name": "stream_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v3/streams/{stream_id}/stop": {
            "put": {
                "description": "Stop an active live encoding session.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Live Session"
                ],
                "summary": "Stop Session",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Stream ID",
                        "name": "stream_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v3/streams/{stream_id}/stop_recording": {
            "put": {
                "description": "Stops the VOD recording. Valid only for HTTP playbacks with recording enabled. Valid only if the stream is being recorded.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Live Session"
                ],
                "summary": "Stop VOD Recording",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Stream ID",
                        "name": "stream_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v3/streams/{stream_id}/switch_active_url": {
            "put": {
                "description": "Switches the active URL for a live multicast input encoding session.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Live Session"
                ],
                "summary": "Switch Active URL",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Stream ID",
                        "name": "stream_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "Active URL (0: Input A - InputURLs[0].URLs[0], 1: Input B - InputURLs[0].URLs[1])",
                        "name": "active_url_index",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v3/streams/{stream_id}/{playback_id}/disable": {
            "put": {
                "description": "Disables a specific playback within a live session. Disabled playbacks will not run when the stream is started and can be updated while the stream is running.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Live Session"
                ],
                "summary": "Disable Playback",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Stream ID",
                        "name": "stream_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Playback ID",
                        "name": "playback_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v3/streams/{stream_id}/{playback_id}/enable": {
            "put": {
                "description": "Enables a specific playback within a live session. Only enabled playbacks will run when the stream is started.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Live Session"
                ],
                "summary": "Enable Playback",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Stream ID",
                        "name": "stream_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Playback ID",
                        "name": "playback_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/api/v3/streams/{stream_id}/{playback_id}/update": {
            "put": {
                "description": "Updates the settings of a specific playback within a live session. This can be done while the stream is running if the playback is disabled.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Live Session"
                ],
                "summary": "Update Playback",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Stream ID",
                        "name": "stream_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Playback ID",
                        "name": "playback_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Playback update request data",
                        "name": "object",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.UpdatePlaybackReqV3"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.BaseResp"
                        }
                    }
                }
            }
        },
        "/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"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "integer"
                        },
                        "collectionFormat": "csv",
                        "name": "ids",
                        "in": "query"
                    },
                    {
                        "maximum": 50,
                        "type": "integer",
                        "default": 10,
                        "description": "Min is 1 and max is 50.",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "name": "names",
                        "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"
                    },
                    {
                        "maxLength": 200,
                        "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",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Template ID",
                        "name": "template_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.TemplateStreamsResp"
                        }
                    }
                }
            }
        },
        "/api/v3/transcoding": {
            "get": {
                "description": "Retrieves a list of offline encoding sessions based on query parameters such as page, limit, and status.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Offline Sessions"
                ],
                "summary": "Get Offline Sessions List",
                "parameters": [
                    {
                        "type": "boolean",
                        "default": false,
                        "description": "true: only return the total number of offline sessions, false: return the list of offline sessions and total number",
                        "name": "count_only",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "description": "Output format, should pass by the form of \"format[]=mkv\u0026format[]=mp4\"",
                        "name": "format",
                        "in": "query"
                    },
                    {
                        "maximum": 100,
                        "type": "integer",
                        "default": 10,
                        "description": "Number of offline sessions per page, min 1 (value smaller than 1 will be set to 10), max 50 (value bigger than 50 will be set to 50)",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "asc",
                            "desc"
                        ],
                        "type": "string",
                        "default": "desc",
                        "description": "In effect only when used with order_by",
                        "name": "order",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "id",
                            "input_file",
                            "progress"
                        ],
                        "type": "string",
                        "default": "id",
                        "description": "Order by field",
                        "name": "order_by",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "default": 1,
                        "description": "Page number, should be greater than 0",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "maxLength": 200,
                        "type": "string",
                        "description": "Search string, fields can be fuzzy searched(case insensitive): name, description, input_file.name, input_file.path, output_file.format, output_file.full_path;",
                        "name": "search_string",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "description": "Offline session status, should pass by the form of \"status[]=stopped\u0026status[]=running\"",
                        "name": "status",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "integer"
                        },
                        "collectionFormat": "csv",
                        "description": "Template IDs, should pass by the form of \"template_id[]=id1\u0026template_id[]=id2\"",
                        "name": "template_id",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.TranscodingGetListResp"
                        }
                    }
                }
            },
            "post": {
                "description": "Creates an offline encoding session with the provided configuration. Not recommended for large files or output/mount locations with slow IO speeds as these may timeout on request reply. See \"from_filepath\" endpoint for larger files.",
                "consumes": [
                    "multipart/form-data"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Offline Sessions"
                ],
                "summary": "Create Offline Session",
                "parameters": [
                    {
                        "type": "file",
                        "description": "File to be transcoded (max 2GB)",
                        "name": "input_file",
                        "in": "formData",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Name of the transcoding session",
                        "name": "name",
                        "in": "formData",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Description of the transcoding session",
                        "name": "description",
                        "in": "formData"
                    },
                    {
                        "type": "integer",
                        "description": "Template ID for transcoding",
                        "name": "output_file.template_id",
                        "in": "formData",
                        "required": true
                    },
                    {
                        "enum": [
                            "mkv",
                            "mp4",
                            "hls"
                        ],
                        "type": "string",
                        "description": "Output format",
                        "name": "output_file.format",
                        "in": "formData",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Output file path",
                        "name": "output_file.path",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.TranscodingCreateResp"
                        }
                    }
                }
            }
        },
        "/api/v3/transcoding/from_filepath": {
            "post": {
                "description": "Creates an offline encoding session with the provided configuration. Recommended for large files.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Offline Sessions"
                ],
                "summary": "Create Offline Session (from filepath)",
                "parameters": [
                    {
                        "description": "Full path to source file to be transcoded, must start with /mnt",
                        "name": "input_filepath",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "Name of the transcoding session",
                        "name": "name",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "Description of the transcoding session",
                        "name": "description",
                        "in": "body",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "Template ID for transcoding",
                        "name": "output_file.template_id",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "description": "Output format",
                        "name": "output_file.format",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "mkv",
                                "mp4",
                                "hls"
                            ]
                        }
                    },
                    {
                        "description": "Absolute path for output file path, needs to start with '/mnt', formats 'mkv' and 'mp4' need to include file name and if ladder template is used, first output uses the provided path/name and extra outputs are placed in indexed subfolders in path, for 'hls' is the directory where master.m3u8 will sit, do not use reserved directory names 'to-be-PP' and 'subs'",
                        "name": "output_file.path",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.TranscodingCreateResp"
                        }
                    }
                }
            }
        },
        "/api/v3/transcoding/health_report": {
            "get": {
                "description": "Retrieves the health status summary of all offline encoding sessions. The report includes total count of sessions, number of running sessions (actively processing), queued sessions (waiting to start), failed sessions (with serious issues), and stopped sessions (manually stopped).",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Offline Sessions"
                ],
                "summary": "Get Offline Session Health Report",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.TransHealthReportResp"
                        }
                    }
                }
            }
        },
        "/api/v3/transcoding/progress": {
            "get": {
                "description": "Retrieves offline encoding session progress based on the transcoding ID.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Offline Sessions"
                ],
                "summary": "Get Offline Session Progress",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Transcoding ID",
                        "name": "transcoding_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.TranscodingProgressResp"
                        }
                    }
                }
            }
        },
        "/api/v3/transcoding/{transcoding_id}": {
            "get": {
                "description": "Retrieves an offline encoding session details based on transcoding ID parameter.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Offline Sessions"
                ],
                "summary": "Get Offline Session Details",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Transcoding ID",
                        "name": "transcoding_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.TranscodingGetResp"
                        }
                    }
                }
            },
            "delete": {
                "description": "Deletes an offline encoding session based on the transcoding ID.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Offline Sessions"
                ],
                "summary": "Delete Offline Session",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Transcoding ID",
                        "name": "transcoding_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.TranscodingDeleteResp"
                        }
                    }
                }
            }
        },
        "/api/v3/transcoding/{transcoding_id}/start": {
            "put": {
                "description": "Starts an offline encoding session based on transcoding ID.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Offline Sessions"
                ],
                "summary": "Start Offline Session",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Transcoding ID",
                        "name": "transcoding_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.TranscodingStartResp"
                        }
                    }
                }
            }
        },
        "/api/v3/transcoding/{transcoding_id}/stop": {
            "put": {
                "description": "Stops an offline encoding session based on the transcoding ID.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Offline Sessions"
                ],
                "summary": "Stop Offline Session",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Transcoding ID",
                        "name": "transcoding_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.TranscodingStopResp"
                        }
                    }
                }
            }
        },
        "/api/v3/transcoding/{transcoding_id}/update": {
            "put": {
                "description": "Update an offline encoding session based on transcoding ID - Currently only appends post-processing task for subtitling.",
                "consumes": [
                    "multipart/form-data"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Offline Sessions"
                ],
                "summary": "Update Offline Session",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Transcoding ID",
                        "name": "transcoding_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "file",
                        "description": "WebVTT subtitle files to be added (*.vtt, max 100MB each)",
                        "name": "input_subs",
                        "in": "formData"
                    },
                    {
                        "type": "string",
                        "description": "Comma-separated list of languages to add as subtitles (recommended BCP 47 format, e.g., en,zh-Hans,fr-CA)",
                        "name": "subtitle_names",
                        "in": "formData"
                    },
                    {
                        "type": "string",
                        "description": "Comma-separated list of languages to delete from subtitles (recommended BCP 47 format)",
                        "name": "delete_names",
                        "in": "formData"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.TranscodingUpdateResp"
                        }
                    }
                }
            }
        }
    },
    "definitions": {
        "api.AtscActionResp": {
            "type": "object",
            "properties": {
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.AtscChannelST": {
            "type": "object",
            "properties": {
                "has_virtual_channel": {
                    "type": "boolean"
                },
                "major": {
                    "type": "integer"
                },
                "minor": {
                    "type": "integer"
                },
                "pid": {
                    "type": "integer"
                },
                "program_number": {
                    "type": "integer"
                },
                "service_name": {
                    "type": "string"
                },
                "short_name": {
                    "type": "string"
                }
            }
        },
        "api.AtscDemodulatorCardST": {
            "type": "object",
            "properties": {
                "card": {
                    "type": "integer"
                },
                "program_number": {
                    "type": "integer"
                },
                "tuner": {
                    "type": "integer"
                }
            }
        },
        "api.AtscTunerActionReq": {
            "type": "object",
            "properties": {
                "card": {
                    "type": "integer"
                },
                "tuner": {
                    "type": "integer"
                }
            }
        },
        "api.AtscTunerConfigReq": {
            "type": "object",
            "properties": {
                "card": {
                    "type": "integer"
                },
                "extra_args": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "frequency_hz": {
                    "type": "integer"
                },
                "modulation": {
                    "type": "string"
                },
                "multicast_url": {
                    "description": "MulticastURL is the per-tuner local multicast group the tuner publishes on.\nOptional: when empty the server auto-assigns the deterministic default\nudp://239.1.\u003ccard\u003e.\u003ctuner\u003e:\u003cbase_port\u003e?localaddr=127.0.0.1. Supplying an\nexplicit udp://\u003cIPv4 multicast\u003e:\u003cport\u003e[?localaddr=\u003cip\u003e] value is reserved for a\nfuture advanced mode / external callers; it is validated and rejected if\nmalformed or already in use by another tuner.",
                    "type": "string"
                },
                "tuner": {
                    "type": "integer"
                }
            }
        },
        "api.AtscTunerST": {
            "type": "object",
            "properties": {
                "bitrate_bps": {
                    "type": "integer"
                },
                "card": {
                    "type": "integer"
                },
                "channels": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/api.AtscChannelST"
                    }
                },
                "default_multicast_url": {
                    "description": "DefaultMulticastURL is the address lms auto-assigns when MulticastURL is empty\n(udp://239.1.\u003ccard\u003e.\u003ctuner\u003e:\u003cbase_port\u003e?localaddr=127.0.0.1). The UI shows it\nso the operator sees the effective address and can override it; it is always\npopulated, independent of whether a value has been stored.",
                    "type": "string"
                },
                "enabled": {
                    "type": "boolean"
                },
                "error": {
                    "type": "string"
                },
                "extra_args": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "failed": {
                    "description": "Failed is true when the tuner is enabled but its tune process keeps exiting\n(e.g. a Dektec attach error); Error carries the reason from tsp. This lets the\nUI show an explicit error instead of an indistinguishable \"no signal\".",
                    "type": "boolean"
                },
                "frequency_hz": {
                    "type": "integer"
                },
                "locked": {
                    "type": "boolean"
                },
                "model": {
                    "type": "string"
                },
                "modulation": {
                    "type": "string"
                },
                "multicast_url": {
                    "type": "string"
                },
                "scan_time": {
                    "type": "string"
                },
                "tuner": {
                    "type": "integer"
                }
            }
        },
        "api.AtscTunerStreamRefST": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                },
                "stream_id": {
                    "type": "string"
                }
            }
        },
        "api.AuthCheckJWTReq": {
            "type": "object",
            "properties": {
                "key_id": {
                    "type": "string"
                },
                "playback_id": {
                    "type": "string"
                },
                "token": {
                    "type": "string"
                }
            }
        },
        "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.BatchOperationDataST": {
            "type": "object",
            "properties": {
                "failed": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/api.BatchOperationErrorST"
                    }
                },
                "skipped": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/api.BatchOperationErrorST"
                    }
                },
                "success": {
                    "description": "IDs that were successfully operated",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "api.BatchOperationErrorST": {
            "type": "object",
            "properties": {
                "id": {
                    "description": "Live session ID",
                    "type": "string"
                },
                "reason": {
                    "description": "Reason for failure",
                    "type": "string"
                }
            }
        },
        "api.BatchOperationReq": {
            "type": "object",
            "properties": {
                "all": {
                    "description": "If true, applies to all live sessions",
                    "type": "boolean",
                    "default": false
                },
                "stream_ids": {
                    "description": "Live session IDs specified (ignored if all=true)",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "api.BatchOperationResp": {
            "type": "object",
            "properties": {
                "data": {
                    "$ref": "#/definitions/api.BatchOperationDataST"
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.BatchSwitchActiveURLReq": {
            "type": "object",
            "properties": {
                "active_url_index": {
                    "description": "0: InputURLs[0].URLs[0], 1: InputURLs[0].URLs[1], multicast input only",
                    "type": "integer"
                },
                "all": {
                    "description": "If true, applies to all live sessions",
                    "type": "boolean",
                    "default": false
                },
                "stream_ids": {
                    "description": "Live session IDs specified (ignored if all=true)",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "api.CaptureCardInfo": {
            "type": "object",
            "properties": {
                "group_id": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "port": {
                    "type": "string"
                },
                "protocol": {
                    "type": "string",
                    "enum": [
                        "decklink"
                    ]
                },
                "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.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": "optional",
                    "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.CreateSecretReq": {
            "type": "object",
            "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.DeleteManagerResp": {
            "type": "object",
            "properties": {
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.EventV3": {
            "type": "object",
            "properties": {
                "ended_at": {
                    "type": "string"
                },
                "event_id": {
                    "type": "string"
                },
                "started_at": {
                    "type": "string"
                }
            }
        },
        "api.GetAtscTunerStreamsResp": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object",
                    "properties": {
                        "streams": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/api.AtscTunerStreamRefST"
                            }
                        }
                    }
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.GetAtscTunersResp": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object",
                    "properties": {
                        "tuners": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/api.AtscTunerST"
                            }
                        }
                    }
                },
                "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.GetCaptureCardsListResp": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object",
                    "properties": {
                        "list": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/api.CaptureCardInfo"
                            }
                        }
                    }
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.GetNetworkingSettingsResp": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object",
                    "required": [
                        "external_domain",
                        "external_http_port",
                        "external_http_scheme",
                        "external_rtmp_port",
                        "external_srt_listener_port",
                        "external_srt_port"
                    ],
                    "properties": {
                        "available_ips": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        },
                        "default_external_domain": {
                            "type": "string"
                        },
                        "external_domain": {
                            "type": "string"
                        },
                        "external_http_port": {
                            "type": "integer"
                        },
                        "external_http_scheme": {
                            "type": "string",
                            "enum": [
                                "http",
                                "https"
                            ]
                        },
                        "external_rtmp_port": {
                            "type": "integer"
                        },
                        "external_srt_listener_port": {
                            "type": "integer"
                        },
                        "external_srt_port": {
                            "type": "integer"
                        },
                        "release_notification_disabled": {
                            "description": "Reserved for UI interface, do not use/rely upon. Server will ignore any values provided.",
                            "type": "boolean"
                        }
                    }
                },
                "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.GetStreamSlateV3Resp": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object",
                    "properties": {
                        "image_id": {
                            "type": "integer"
                        },
                        "loading": {
                            "type": "boolean"
                        },
                        "shown": {
                            "type": "boolean"
                        }
                    }
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "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.Information": {
            "type": "object",
            "properties": {
                "cpu": {
                    "type": "object",
                    "properties": {
                        "used_percent": {
                            "description": "Host CPU usage, 0-100",
                            "type": "number"
                        }
                    }
                },
                "memory": {
                    "type": "object",
                    "properties": {
                        "total": {
                            "description": "Total memory in system, GB",
                            "type": "number"
                        },
                        "used_percent": {
                            "description": "Memory usage, 0-100",
                            "type": "number"
                        }
                    }
                },
                "storage": {
                    "type": "object",
                    "properties": {
                        "total_mb": {
                            "description": "Total disk space under /mnt, MB",
                            "type": "integer"
                        },
                        "used_mb": {
                            "description": "Used disk space under /mnt, MB",
                            "type": "integer"
                        }
                    }
                },
                "vpu": {
                    "type": "object",
                    "properties": {
                        "smem": {
                            "description": "VPU shared memory usage, 0-100",
                            "type": "integer"
                        },
                        "vpu_list": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/api.VPUListST"
                            }
                        },
                        "vpu_module_average": {
                            "type": "object",
                            "additionalProperties": {
                                "$ref": "#/definitions/api.VPUModuleAverage"
                            }
                        }
                    }
                }
            }
        },
        "api.InformationResp": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object",
                    "properties": {
                        "info": {
                            "$ref": "#/definitions/api.Information"
                        }
                    }
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.InformationV2": {
            "type": "object",
            "properties": {
                "cpu": {
                    "type": "object",
                    "properties": {
                        "num": {
                            "type": "integer"
                        },
                        "used_num": {
                            "type": "number"
                        },
                        "used_percent": {
                            "description": "Host CPU usage, 0-100",
                            "type": "number"
                        }
                    }
                },
                "host_num": {
                    "type": "integer"
                },
                "memory": {
                    "type": "object",
                    "properties": {
                        "total": {
                            "description": "Total memory in system, GB",
                            "type": "number"
                        },
                        "used_percent": {
                            "description": "Memory usage, 0-100",
                            "type": "number"
                        }
                    }
                },
                "storage": {
                    "type": "object",
                    "properties": {
                        "total_mb": {
                            "description": "Total disk space under /mnt, MB",
                            "type": "integer"
                        },
                        "used_mb": {
                            "description": "Used disk space under /mnt, MB",
                            "type": "integer"
                        }
                    }
                },
                "vpu": {
                    "type": "object",
                    "properties": {
                        "average_load": {
                            "type": "object",
                            "additionalProperties": {
                                "$ref": "#/definitions/api.VPUAverageLoadST"
                            }
                        },
                        "list": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/api.VPUListST"
                            }
                        },
                        "num": {
                            "type": "integer"
                        }
                    }
                }
            }
        },
        "api.InformationV2Resp": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object",
                    "properties": {
                        "info": {
                            "$ref": "#/definitions/api.InformationV2"
                        }
                    }
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.ListManagerConnectionsResp": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object",
                    "properties": {
                        "list": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/api.ManagerConnection"
                            }
                        }
                    }
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.ManagerConnection": {
            "type": "object",
            "properties": {
                "agent_updated_at": {
                    "type": "string"
                },
                "connected": {
                    "type": "boolean"
                },
                "edge_id": {
                    "type": "string"
                },
                "has_connected_at_least_once": {
                    "type": "boolean"
                },
                "last_error": {
                    "description": "Latest connection/enrollment failure from the local connection agent (active manager only).",
                    "type": "string"
                },
                "last_error_at": {
                    "description": "RFC3339 timestamp of last_error.",
                    "type": "string"
                },
                "manager_id": {
                    "type": "integer"
                },
                "manager_url_base": {
                    "type": "string"
                },
                "manager_url_key": {
                    "type": "string"
                },
                "priority": {
                    "type": "integer"
                },
                "url": {
                    "type": "string"
                }
            }
        },
        "api.ObjectMessageST": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "string"
                },
                "message": {
                    "type": "string"
                }
            }
        },
        "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.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.RecordingDiskUsageData": {
            "type": "object",
            "properties": {
                "free_bytes": {
                    "type": "integer"
                },
                "is_low": {
                    "type": "boolean"
                },
                "total_bytes": {
                    "type": "integer"
                }
            }
        },
        "api.RecordingDiskUsageResp": {
            "type": "object",
            "properties": {
                "data": {
                    "$ref": "#/definitions/api.RecordingDiskUsageData"
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.RegionDataST": {
            "type": "object",
            "properties": {
                "region_alias": {
                    "type": "string"
                }
            }
        },
        "api.RegionListResp": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object",
                    "properties": {
                        "list": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/api.RegionDataST"
                            }
                        }
                    }
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.RestoreResp": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object",
                    "properties": {
                        "stream_warnings": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/api.ObjectMessageST"
                            }
                        },
                        "template_warnings": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/api.ObjectMessageST"
                            }
                        }
                    }
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.RuntimeSchemaRespV3": {
            "type": "object",
            "properties": {
                "data": {},
                "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.SetStreamSlateV3Req": {
            "type": "object",
            "properties": {
                "image_id": {
                    "type": "integer"
                },
                "shown": {
                    "type": "boolean"
                }
            }
        },
        "api.SetupEnrollmentReq": {
            "type": "object",
            "required": [
                "manager_token",
                "manager_url"
            ],
            "properties": {
                "manager_token": {
                    "description": "format: \"\u003cedge_id\u003e_\u003chex_secret\u003e\"; edge_id is the prefix before the first '_'",
                    "type": "string"
                },
                "manager_url": {
                    "description": "url or ip address",
                    "type": "string"
                },
                "renewal": {
                    "description": "when true, skip creating a new ni_lms.managers row (cert renewal)",
                    "type": "boolean"
                }
            }
        },
        "api.SetupEnrollmentResp": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object",
                    "properties": {
                        "token": {
                            "type": "string"
                        }
                    }
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.StreamCSVCreatedItem": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                },
                "stream_id": {
                    "type": "string"
                }
            }
        },
        "api.StreamCSVExportReq": {
            "type": "object",
            "required": [
                "mode"
            ],
            "properties": {
                "exclude_ids": {
                    "description": "Live session IDs to exclude (ignored if mode=EXPLICIT_IDS)",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "mode": {
                    "description": "Selection strategy: explicit IDs or all matching filters",
                    "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": {
                    "description": "Live session IDs specified (ignored if mode=ALL_MATCHING)",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "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.StreamCSVImportError": {
            "type": "object",
            "properties": {
                "column": {
                    "type": "string"
                },
                "message": {
                    "type": "string"
                },
                "row": {
                    "type": "integer"
                },
                "value": {
                    "type": "string"
                }
            }
        },
        "api.StreamCSVImportResp": {
            "type": "object",
            "properties": {
                "created": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/api.StreamCSVCreatedItem"
                    }
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                },
                "errors": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/api.StreamCSVImportError"
                    }
                }
            }
        },
        "api.StreamCreateReqV3": {
            "type": "object",
            "properties": {
                "atsc_demodulator_card_input": {
                    "$ref": "#/definitions/api.AtscDemodulatorCardST"
                },
                "capture_card_input": {
                    "$ref": "#/definitions/api.CaptureCardST"
                },
                "cover_image_url": {
                    "type": "string"
                },
                "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"
                },
                "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\nstream-trans 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"
                    }
                },
                "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 must be an integer in [1, 65535].\nOnly the \"prg\" key is accepted; other query keys are rejected. If omitted\non an MPTS source, stream-trans rejects the stream at task init with\n\"Alert Program ID Not Found\" listing 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"
                },
                "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"
                }
            }
        },
        "api.StreamCreateRespV3": {
            "type": "object",
            "properties": {
                "data": {
                    "$ref": "#/definitions/api.StreamDataV3"
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.StreamDataV3": {
            "type": "object",
            "properties": {
                "atsc_demodulator_card_input": {
                    "$ref": "#/definitions/api.AtscDemodulatorCardST"
                },
                "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"
                },
                "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\nstream-trans 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 must be an integer in [1, 65535].\nOnly the \"prg\" key is accepted; other query keys are rejected. If omitted\non an MPTS source, stream-trans rejects the stream at task init with\n\"Alert Program ID Not Found\" listing 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"
                },
                "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.StreamDeleteRespV3": {
            "type": "object",
            "properties": {
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.StreamEventV3ListResp": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object",
                    "properties": {
                        "limit": {
                            "type": "integer"
                        },
                        "list": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/api.EventV3"
                            }
                        },
                        "order": {
                            "description": "true desc",
                            "type": "boolean"
                        },
                        "order_by": {
                            "type": "string",
                            "example": ""
                        },
                        "page": {
                            "type": "integer"
                        },
                        "region": {
                            "type": "string"
                        },
                        "stream_id": {
                            "type": "string"
                        },
                        "total": {
                            "type": "integer"
                        },
                        "total_page": {
                            "type": "integer"
                        }
                    }
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.StreamGetListIssuesResp": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object",
                    "properties": {
                        "list": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/api.StreamIssues"
                            }
                        },
                        "total": {
                            "type": "integer"
                        }
                    }
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.StreamGetListRespV3": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object",
                    "properties": {
                        "list": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/api.StreamDataV3"
                            }
                        },
                        "total": {
                            "type": "integer"
                        }
                    }
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.StreamGetPlaybackStatusRespV3": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object",
                    "properties": {
                        "output_stream_key": {
                            "type": "string"
                        },
                        "status": {
                            "description": "Status indicates the current state of the playback stream:\n*  0 - Idle (Stream is initialized but not active)\n*  1 - Active (Stream is currently active and running)",
                            "type": "integer",
                            "example": 1
                        }
                    }
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.StreamGetProbeReportRespV3": {
            "type": "object",
            "properties": {
                "data": {
                    "$ref": "#/definitions/common.FFProbeReportLMS"
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.StreamGetRecordingsListRespV3": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object",
                    "properties": {
                        "list": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/api.StreamRecordingV3"
                            }
                        },
                        "total": {
                            "type": "integer"
                        }
                    }
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.StreamGetRespV3": {
            "type": "object",
            "properties": {
                "data": {
                    "$ref": "#/definitions/api.StreamDataV3"
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.StreamGetSourceInfoRespV3": {
            "type": "object",
            "properties": {
                "data": {
                    "$ref": "#/definitions/common.InputReport"
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.StreamGetSourceReportsRespV3": {
            "type": "object",
            "properties": {
                "data": {
                    "$ref": "#/definitions/common.MasterReport"
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.StreamInputURLsST": {
            "type": "object",
            "properties": {
                "region": {
                    "type": "string"
                },
                "urls": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "api.StreamIssues": {
            "type": "object",
            "properties": {
                "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"
                    }
                },
                "stream_id": {
                    "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.StreamNameExistResp": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object",
                    "properties": {
                        "exist": {
                            "type": "boolean"
                        }
                    }
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "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",
            "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 Edge\" when empty. Max 255 characters.",
                            "type": "string"
                        }
                    }
                },
                "output_name": {
                    "description": "A name for this output (up to 64 printable ASCII characters; '\\\\' is 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.StreamRecordingV3": {
            "type": "object",
            "properties": {
                "end_time": {
                    "type": "integer"
                },
                "event_id": {
                    "type": "string"
                },
                "output_path": {
                    "type": "string"
                },
                "playback_id": {
                    "type": "string"
                },
                "recording_id": {
                    "type": "string"
                },
                "start_time": {
                    "type": "integer"
                },
                "status": {
                    "type": "string"
                }
            }
        },
        "api.StreamRuntimeSettingsUpdateReqV3": {
            "type": "object",
            "properties": {
                "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"
                }
            }
        },
        "api.StreamTotalHealthReportResp": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object",
                    "properties": {
                        "error": {
                            "type": "integer",
                            "example": 1
                        },
                        "running": {
                            "type": "integer",
                            "example": 1
                        },
                        "total": {
                            "type": "integer",
                            "example": 3
                        },
                        "warning": {
                            "type": "integer",
                            "example": 1
                        }
                    }
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.StreamUpdateReqV3": {
            "type": "object",
            "properties": {
                "atsc_demodulator_card_input": {
                    "$ref": "#/definitions/api.AtscDemodulatorCardST"
                },
                "capture_card_input": {
                    "$ref": "#/definitions/api.CaptureCardST"
                },
                "cover_image_url": {
                    "type": "string"
                },
                "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"
                },
                "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\nstream-trans 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"
                    }
                },
                "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 must be an integer in [1, 65535].\nOnly the \"prg\" key is accepted; other query keys are rejected. If omitted\non an MPTS source, stream-trans rejects the stream at task init with\n\"Alert Program ID Not Found\" listing 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"
                },
                "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"
                }
            }
        },
        "api.StreamUpdateRespV3": {
            "type": "object",
            "properties": {
                "data": {
                    "$ref": "#/definitions/api.StreamDataV3"
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.StreamV3HTTPRecordingSettings": {
            "type": "object",
            "properties": {
                "base_path": {
                    "type": "string"
                },
                "enabled": {
                    "type": "boolean"
                }
            }
        },
        "api.TemplateAdvancedParamsQuadraDecoderST": {
            "type": "object",
            "properties": {
                "deinterlace_mode": {
                    "type": "string",
                    "default": "send_frame"
                },
                "deinterlace_parity": {
                    "type": "string",
                    "default": "auto"
                },
                "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": {
                    "type": "boolean",
                    "default": false
                },
                "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
                },
                "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; 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",
            "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",
            "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"
                },
                "deinterlace_parity": {
                    "description": "\"auto\", \"tff\", \"bff\"",
                    "type": "string",
                    "default": "auto"
                },
                "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",
                    "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.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.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",
            "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.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\"",
                    "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 only. Empty inherits global; \"auto\" leaves the encoder default.",
                    "type": "string"
                },
                "profile": {
                    "description": "H.264/H.265 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.TransHealthReportResp": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object",
                    "properties": {
                        "failed": {
                            "type": "integer",
                            "example": 1
                        },
                        "queued": {
                            "type": "integer",
                            "example": 1
                        },
                        "running": {
                            "type": "integer",
                            "example": 1
                        },
                        "stopped": {
                            "type": "integer",
                            "example": 1
                        },
                        "total": {
                            "type": "integer",
                            "example": 3
                        }
                    }
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.TranscodingCreateResp": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object",
                    "properties": {
                        "transcoding_id": {
                            "type": "string"
                        }
                    }
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.TranscodingData": {
            "type": "object",
            "properties": {
                "additional_paths": {
                    "type": "array",
                    "items": {
                        "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"
                },
                "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.TranscodingDeleteResp": {
            "type": "object",
            "properties": {
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.TranscodingGetListResp": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object",
                    "properties": {
                        "list": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/api.TranscodingData"
                            }
                        },
                        "total": {
                            "type": "integer"
                        }
                    }
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.TranscodingGetResp": {
            "type": "object",
            "properties": {
                "data": {
                    "$ref": "#/definitions/api.TranscodingData"
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "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.TranscodingProgress": {
            "type": "object",
            "properties": {
                "progress": {
                    "type": "integer"
                },
                "status": {
                    "type": "string"
                },
                "status_mesg": {
                    "type": "string"
                }
            }
        },
        "api.TranscodingProgressResp": {
            "type": "object",
            "properties": {
                "data": {
                    "description": "key is transcoding_id",
                    "type": "object",
                    "additionalProperties": {
                        "$ref": "#/definitions/api.TranscodingProgress"
                    }
                },
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.TranscodingStartResp": {
            "type": "object",
            "properties": {
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.TranscodingStopResp": {
            "type": "object",
            "properties": {
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "api.TranscodingUpdateResp": {
            "type": "object",
            "properties": {
                "err_code": {
                    "type": "integer"
                },
                "err_message": {
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "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.UpdateNetworkingSettingsReq": {
            "type": "object",
            "required": [
                "external_domain",
                "external_http_port",
                "external_http_scheme",
                "external_rtmp_port",
                "external_srt_listener_port",
                "external_srt_port"
            ],
            "properties": {
                "external_domain": {
                    "type": "string"
                },
                "external_http_port": {
                    "type": "integer"
                },
                "external_http_scheme": {
                    "type": "string",
                    "enum": [
                        "http",
                        "https"
                    ]
                },
                "external_rtmp_port": {
                    "type": "integer"
                },
                "external_srt_listener_port": {
                    "type": "integer"
                },
                "external_srt_port": {
                    "type": "integer"
                },
                "release_notification_disabled": {
                    "description": "Reserved for UI interface, do not use/rely upon. Server will ignore any values provided.",
                    "type": "boolean"
                }
            }
        },
        "api.UpdatePlaybackReqV3": {
            "type": "object",
            "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 Edge\" when empty. Max 255 characters.",
                            "type": "string"
                        }
                    }
                },
                "output_name": {
                    "description": "A name for this output (up to 64 printable ASCII characters; '\\\\' is 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.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.VPUListST": {
            "type": "object",
            "properties": {
                "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.VPUModuleAverage": {
            "type": "object",
            "properties": {
                "fw_load": {
                    "description": "Active instaneous CPU load of FW (0-100)",
                    "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"
                }
            }
        },
        "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.AudioReport": {
            "type": "object",
            "properties": {
                "bitrate": {
                    "type": "integer"
                },
                "channel": {
                    "type": "integer"
                },
                "codec": {
                    "type": "string"
                },
                "index": {
                    "type": "integer"
                },
                "language": {
                    "type": "string"
                },
                "pid": {
                    "type": "string"
                },
                "samplerate": {
                    "type": "integer"
                }
            }
        },
        "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"
                }
            }
        },
        "common.DataReport": {
            "type": "object",
            "properties": {
                "bitrate": {
                    "type": "integer"
                },
                "codec": {
                    "type": "string"
                },
                "codec_type": {
                    "type": "string"
                },
                "index": {
                    "type": "integer"
                },
                "language": {
                    "type": "string"
                },
                "pid": {
                    "type": "string"
                }
            }
        },
        "common.FFProbeReportLMS": {
            "type": "object",
            "properties": {
                "last_updated": {
                    "type": "string"
                },
                "notes": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "ongoing_probe": {
                    "type": "boolean"
                },
                "programs_lms": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/common.LMSFFProbeProgram"
                    }
                },
                "url_used": {
                    "type": "string"
                }
            }
        },
        "common.InputReport": {
            "type": "object",
            "properties": {
                "audio_bytes": {
                    "type": "integer"
                },
                "audio_report": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/common.AudioReport"
                    }
                },
                "data_report": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/common.DataReport"
                    }
                },
                "num_corrupt_packets": {
                    "type": "integer"
                },
                "num_frames": {
                    "type": "integer"
                },
                "num_packets": {
                    "type": "integer"
                },
                "pat_pid": {
                    "type": "string"
                },
                "pcr_pid": {
                    "type": "string"
                },
                "pmt_pid": {
                    "type": "string"
                },
                "program_number": {
                    "type": "string"
                },
                "time_window_corrupted_packets": {
                    "type": "integer"
                },
                "time_window_corrupted_packets_ratio": {
                    "type": "number"
                },
                "time_window_total_packets": {
                    "type": "integer"
                },
                "video_bytes": {
                    "type": "integer"
                },
                "video_report": {
                    "$ref": "#/definitions/common.VideoReport"
                }
            }
        },
        "common.LMSFFProbeProgram": {
            "type": "object",
            "properties": {
                "pmt_pid": {
                    "type": "string"
                },
                "program_id": {
                    "type": "string"
                },
                "provider_name": {
                    "type": "string"
                },
                "service_name": {
                    "type": "string"
                },
                "streamsLMS": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/common.LMSFFProbeStream"
                    }
                }
            }
        },
        "common.LMSFFProbeStream": {
            "type": "object",
            "properties": {
                "cc_present": {
                    "type": "string"
                },
                "channel_layout": {
                    "type": "string"
                },
                "channels": {
                    "type": "integer"
                },
                "codec_index": {
                    "type": "integer"
                },
                "codec_name": {
                    "type": "string"
                },
                "codec_type": {
                    "type": "string"
                },
                "field_order": {
                    "description": "bb, tt, bt, tb, progressive",
                    "type": "string"
                },
                "fps": {
                    "type": "string"
                },
                "global_index": {
                    "type": "integer"
                },
                "height": {
                    "type": "integer"
                },
                "language": {
                    "type": "string"
                },
                "pid": {
                    "type": "string"
                },
                "pix_fmt": {
                    "type": "string"
                },
                "sample_rate": {
                    "type": "string"
                },
                "width": {
                    "type": "integer"
                }
            }
        },
        "common.MasterReport": {
            "type": "object",
            "properties": {
                "combined_report": {
                    "$ref": "#/definitions/common.InputReport"
                },
                "playback_reports": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/common.PlaybackReport"
                    }
                }
            }
        },
        "common.PlaybackReport": {
            "type": "object",
            "properties": {
                "input_report": {
                    "$ref": "#/definitions/common.InputReport"
                },
                "playback_id": {
                    "type": "string"
                },
                "playback_name": {
                    "type": "string"
                }
            }
        },
        "common.VideoReport": {
            "type": "object",
            "properties": {
                "bitdepth": {
                    "type": "integer"
                },
                "bitrate": {
                    "type": "integer"
                },
                "codec": {
                    "type": "string"
                },
                "fps": {
                    "type": "number"
                },
                "height": {
                    "type": "integer"
                },
                "index": {
                    "type": "integer"
                },
                "pid": {
                    "type": "string"
                },
                "pix_fmt": {
                    "type": "string"
                },
                "scan_type": {
                    "type": "string"
                },
                "width": {
                    "type": "integer"
                }
            }
        },
        "http.NotifyListResponse": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "object",
                    "properties": {
                        "limit": {
                            "type": "integer",
                            "example": 10
                        },
                        "list": {
                            "type": "array",
                            "items": {
                                "type": "object",
                                "properties": {
                                    "created_at": {
                                        "type": "string",
                                        "example": "2024-01-31 15:04:05"
                                    },
                                    "message": {
                                        "type": "string",
                                        "example": "Stream source aspect ratio 1920 x 1080 is different from output 640 x 480"
                                    },
                                    "stream_id": {
                                        "type": "string",
                                        "example": "b9cddabcda044cf8846255cf69d21be0"
                                    },
                                    "title": {
                                        "type": "string",
                                        "example": "Alert Input vs Output Aspect Ratio Check"
                                    },
                                    "type": {
                                        "type": "string",
                                        "example": "warning"
                                    }
                                }
                            }
                        },
                        "page": {
                            "type": "integer",
                            "example": 1
                        },
                        "total": {
                            "type": "integer",
                            "example": 13
                        },
                        "total_page": {
                            "type": "integer",
                            "example": 2
                        }
                    }
                },
                "err_code": {
                    "type": "integer",
                    "example": 0
                },
                "err_message": {
                    "type": "string",
                    "example": ""
                }
            }
        }
    }
}