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.
79 lines
4.1 KiB
Swift
79 lines
4.1 KiB
Swift
//
|
|
// TeamRoom.swift
|
|
//
|
|
// Generated by openapi-generator
|
|
// https://openapi-generator.tech
|
|
//
|
|
|
|
import Foundation
|
|
|
|
public struct TeamRoom: Sendable, Codable, ParameterConvertible, Hashable {
|
|
|
|
/** Archived reports that the room has been closed. It is the platform's own Space attribute — the same one the Team client writes — and NOT a field of the work facet, so there is exactly one answer to \"is this room open\". */
|
|
public var archived: Bool?
|
|
/** Bindings are what this room is ABOUT, each a \"<kind>:<ref>\" string — \"project:acme/web\", \"repo:hanzoai/cloud\", \"issue:1010\". One list rather than one field per kind, because the next thing a room can be about should not be a schema change; and a bound value is opaque here on purpose, since the app that owns a project is the app that can resolve one. HIP-0523 §2: a binding is a REFERENCE, never a copy — a room holding an issue's title or status would be the parallel work-item store HIP-1160 §1 forbids. */
|
|
public var bindings: [String]?
|
|
/** Direct reports that this is a room between people rather than a named room. It is derived from the document's class, so it cannot disagree with what the client will render. */
|
|
public var direct: Bool?
|
|
/** ID is the room document's own id, and the value the bind op addresses. It is unique within a space, not across the org. */
|
|
public var id: String?
|
|
/** Life is the room's lifecycle INTENT — \"standing\" or \"bound\" (HIP-0523 §2). Absent on the document it reads \"standing\": a room nobody classified is one that persists. */
|
|
public var life: String?
|
|
/** Members are the account uuids in the room, agents included: an agent projects as a space member under a uuid derived from its id, so a caller comparing this against GET /v1/bot/members learns which rooms an agent is in. */
|
|
public var members: [String]?
|
|
/** Name is what a person sees in a sidebar. A direct message carries none, so this is empty for one — the members are its name. */
|
|
public var name: String?
|
|
/** Private reports that the room is restricted to its members. */
|
|
public var _private: Bool?
|
|
/** Space is the space uuid holding this room. It is part of the room's address: two spaces of one org may each hold a room with the same name, and only the pair identifies one. */
|
|
public var space: String?
|
|
/** Topic is the room's own one-line subject, as the Team client sets it. */
|
|
public var topic: String?
|
|
|
|
public init(archived: Bool? = nil, bindings: [String]? = nil, direct: Bool? = nil, id: String? = nil, life: String? = nil, members: [String]? = nil, name: String? = nil, _private: Bool? = nil, space: String? = nil, topic: String? = nil) {
|
|
self.archived = archived
|
|
self.bindings = bindings
|
|
self.direct = direct
|
|
self.id = id
|
|
self.life = life
|
|
self.members = members
|
|
self.name = name
|
|
self._private = _private
|
|
self.space = space
|
|
self.topic = topic
|
|
}
|
|
|
|
public enum CodingKeys: String, CodingKey, CaseIterable {
|
|
case archived
|
|
case bindings
|
|
case direct
|
|
case id
|
|
case life
|
|
case members
|
|
case name
|
|
case _private = "private"
|
|
case space
|
|
case topic
|
|
}
|
|
|
|
// Encodable protocol methods
|
|
|
|
public func encode(to encoder: Encoder) throws {
|
|
var container = encoder.container(keyedBy: CodingKeys.self)
|
|
try container.encodeIfPresent(archived, forKey: .archived)
|
|
try container.encodeIfPresent(bindings, forKey: .bindings)
|
|
try container.encodeIfPresent(direct, forKey: .direct)
|
|
try container.encodeIfPresent(id, forKey: .id)
|
|
try container.encodeIfPresent(life, forKey: .life)
|
|
try container.encodeIfPresent(members, forKey: .members)
|
|
try container.encodeIfPresent(name, forKey: .name)
|
|
try container.encodeIfPresent(_private, forKey: ._private)
|
|
try container.encodeIfPresent(space, forKey: .space)
|
|
try container.encodeIfPresent(topic, forKey: .topic)
|
|
}
|
|
}
|
|
|
|
|
|
@available(iOS 13, tvOS 13, watchOS 6, macOS 10.15, *)
|
|
extension TeamRoom: Identifiable {}
|