mirror of
https://github.com/hanzoai/swift-sdk.git
synced 2026-10-30 18:20:19 +00:00
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.
64 lines
3.1 KiB
Swift
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 {}
|