extend type Query { processes: [Process!]! process(id: ID!): Process probe(id: ID!): Probe! } type ProcessConfigIO { id: String! address: String! options: [String!]! } type ProcessConfigLimits { cpu_usage: Float! memory_bytes: Uint64! waitfor_seconds: Uint64! } type ProcessConfig { id: String! type: String! reference: String! input: [ProcessConfigIO!]! output: [ProcessConfigIO!]! options: [String!]! reconnect: Boolean! reconnect_delay_seconds: Uint64! autostart: Boolean! stale_timeout_seconds: Uint64! limits: ProcessConfigLimits! } type ProcessState { order: String! state: String! runtime_seconds: Uint64! reconnect_seconds: Int! last_logline: String! progress: Progress! memory_bytes: Uint64! cpu_usage: Float! command: [String!]! } type ProcessReportLogEntry { timestamp: Time! data: String! } interface IProcessReportHistoryEntry { created_at: Time! prelude: [String!]! log: [ProcessReportLogEntry!]! } type ProcessReportHistoryEntry implements IProcessReportHistoryEntry { created_at: Time! prelude: [String!]! log: [ProcessReportLogEntry!]! } type ProcessReport implements IProcessReportHistoryEntry { created_at: Time! prelude: [String!]! log: [ProcessReportLogEntry!]! history: [ProcessReportHistoryEntry!]! } type Process { id: String! type: String! reference: String! created_at: Time! config: ProcessConfig! state: ProcessState! report: ProcessReport! metadata: Map } type ProgressIO { id: String! address: String! index: Uint64! stream: Uint64! format: String! type: String! codec: String! coder: String! frame: Uint64! fps: Float! packet: Uint64! pps: Float! size_kb: Uint64! bitrate_kbit: Float! pixfmt: String! q: Float! width: Uint64! height: Uint64! sampling: Uint64! layout: String! channels: Uint64! avstream: AVStream } type Progress { input: [ProgressIO!]! output: [ProgressIO!]! frame: Uint64! packet: Uint64! fps: Float! q: Float! size_kb: Uint64! time: Float! bitrate_kbit: Float! speed: Float! drop: Uint64! dup: Uint64! } type AVStreamIO { state: String! packet: Uint64! time: Uint64! size_kb: Uint64! } type AVStream { input: AVStreamIO! output: AVStreamIO! aqueue: Uint64! queue: Uint64! dup: Uint64! drop: Uint64! enc: Uint64! looping: Boolean! duplicating: Boolean! gop: String! } type ProbeIO { url: String! index: Uint64! stream: Uint64! language: String! type: String! codec: String! coder: String! bitrate_kbps: Float! duration_seconds: Float! fps: Float! pix_fmt: String! width: Uint64! height: Uint64! sampling: Uint64! layout: String! channels: Uint64! } type Probe { streams: [ProbeIO!]! log: [String!]! }