Files
zeekay 1df3ddf6bd Regenerate against the document the deployment answers for
The projection these were generated from predated the compute migration, so
they described /v1/visor — which the API serves at zero paths now.

No /v1/visor path survives here.
2026-09-05 18:55:38 -07:00

64 lines
3.1 KiB
Swift

//
// Recording.swift
//
// Generated by openapi-generator
// https://openapi-generator.tech
//
import Foundation
public struct Recording: Sendable, Codable, ParameterConvertible, Hashable {
/** Bucket is the object store bucket the recording is written to. It is stated beside the key rather than folded into one URI so a client reads two facts instead of splitting a string. */
public var bucket: String?
/** Error is the media server's reason when a recording failed, and empty otherwise. */
public var error: String?
/** ID is the media server's egress id — the handle a later read names. */
public var id: String?
/** Object is the key inside that bucket. Empty only while the media server has not named a file yet. It says WHERE the recording is, not how to fetch it. Reading one back is a separate decision this surface deliberately does not make: a link to a private conversation needs its own answer about who may follow it and for how long, and inventing a short one here would be worse than not having it. */
public var object: String?
/** Room is the room this recording is of. */
public var room: String?
/** Started is when the recording began, as the media server reports it: its own `started_at`, verbatim and unconverted. LiveKit's egress service sets that field from UnixNano, and a conversion this side cannot check against the running server would be a number that looks right and is wrong by a factor of a billion. 0 means it has not started. */
public var started: Int64?
/** Status is the media server's own state name: EGRESS_STARTING, EGRESS_ACTIVE, EGRESS_ENDING, EGRESS_COMPLETE, EGRESS_FAILED, EGRESS_ABORTED or EGRESS_LIMIT_REACHED. It is passed through rather than folded into a vocabulary of ours, so the answer cannot mean something the media server did not say. */
public var status: String?
public init(bucket: String? = nil, error: String? = nil, id: String? = nil, object: String? = nil, room: String? = nil, started: Int64? = nil, status: String? = nil) {
self.bucket = bucket
self.error = error
self.id = id
self.object = object
self.room = room
self.started = started
self.status = status
}
public enum CodingKeys: String, CodingKey, CaseIterable {
case bucket
case error
case id
case object
case room
case started
case status
}
// Encodable protocol methods
public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encodeIfPresent(bucket, forKey: .bucket)
try container.encodeIfPresent(error, forKey: .error)
try container.encodeIfPresent(id, forKey: .id)
try container.encodeIfPresent(object, forKey: .object)
try container.encodeIfPresent(room, forKey: .room)
try container.encodeIfPresent(started, forKey: .started)
try container.encodeIfPresent(status, forKey: .status)
}
}
@available(iOS 13, tvOS 13, watchOS 6, macOS 10.15, *)
extension Recording: Identifiable {}