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

119 lines
7.0 KiB
Swift

//
// IssueView.swift
//
// Generated by openapi-generator
// https://openapi-generator.tech
//
import Foundation
public struct IssueView: Sendable, Codable, ParameterConvertible, Hashable {
/** Assignee is who holds the work — an IAM username, or the login of the FIRST assignee when a forge issue has several. Absent when nobody holds it, which is exactly the state a claim needs. */
public var assignee: String?
/** CreatedAt is when the item was opened, in unix seconds. 0 when the source gave no parseable timestamp. */
public var createdAt: Int64?
/** Description is the body, markdown as its author wrote it. Absent when empty. */
public var description: String?
/** DueAt is when the work is due, in unix seconds; absent means no due date. A forge row takes it from its MILESTONE's due date, since a forge issue has no deadline of its own. Never before StartAt, and never past 2200-01-01. */
public var dueAt: Int64?
/** ExtRef anchors the item to something outside the todo — a mirrored issue (\"github:owner/repo#123\"), a pushed PR branch, or a record on another plane. It is the idempotency key the mirror upsert matches on. Absent when the item has no external origin. */
public var extRef: String?
/** ID is the work item's opaque handle, and it is NOT how you address it — ProjectKey plus Number is. Its shape says which source answered: a forge issue's is the forge's own numeric id in decimal, an index row's a minted \"issue_\" id. */
public var id: String?
/** Identifier is the human handle, \"<key>#<number>\" — the board and the number on it, joined. ONE spelling whichever source answered, because a list where forge rows read cli#1 and index rows read OPS-3 is two products in one list. */
public var identifier: String?
/** Kind is what the item IS: issue, pr or epic. Set once at create and never changed, so a row does not migrate between surfaces. Deliberately not \"task\" — that word is the async plane (contract.go). */
public var kind: String?
/** Labels are the item's remaining tags, with the status and priority labels lifted OUT — a column that stayed here would render twice, once as the card's column and once as a chip on the card. Always present; empty is []. */
public var labels: [String]?
/** Number is the item's number ON ITS BOARD, from 1 and monotonic there — the forge's own issue number for a forge row, allocated inside the create transaction for an index row so it cannot race. Unique per board, never across the org. */
public var number: Int64?
/** Priority is urgent, high, medium, low or none. Also a label on a forge row. Never empty: \"none\" when nothing names one, so callers compare a value rather than test for absence. */
public var priority: String?
/** ProjectKey is the board this item is on: the repository name for a forge issue, the index board's key otherwise. With Number it is the item's address in every other route. */
public var projectKey: String?
/** Repo is the git repository the item is bound to, so a repository's Issues and PRs tabs are filters over this one table. Absent when the item is not repo-bound. */
public var repo: String?
/** Source is which surface OPENED it: team, git, crm, helpdesk, cms or agent. Also set once. It is the ORIGIN, not the subject — source=helpdesk is an engineering issue opened from a support escalation, not a support ticket. */
public var source: String?
/** StartAt is when the work starts, in unix seconds; absent means unscheduled. A forge row takes it from when the issue was opened, but only once the issue has a due date — an interval needs both ends. */
public var startAt: Int64?
/** Status is the board column: backlog, todo, in_progress, done or canceled, and nothing else. On a forge row it is read off a LABEL, so relabelling in the forge web UI moves the card here and vice versa — and a CLOSED forge issue reads done whatever its labels say. Never empty: \"backlog\" when nothing names a column. */
public var status: String?
/** Title is the item's one-line summary. */
public var title: String?
/** UpdatedAt is when it last changed, in unix seconds. */
public var updatedAt: Int64?
public init(assignee: String? = nil, createdAt: Int64? = nil, description: String? = nil, dueAt: Int64? = nil, extRef: String? = nil, id: String? = nil, identifier: String? = nil, kind: String? = nil, labels: [String]? = nil, number: Int64? = nil, priority: String? = nil, projectKey: String? = nil, repo: String? = nil, source: String? = nil, startAt: Int64? = nil, status: String? = nil, title: String? = nil, updatedAt: Int64? = nil) {
self.assignee = assignee
self.createdAt = createdAt
self.description = description
self.dueAt = dueAt
self.extRef = extRef
self.id = id
self.identifier = identifier
self.kind = kind
self.labels = labels
self.number = number
self.priority = priority
self.projectKey = projectKey
self.repo = repo
self.source = source
self.startAt = startAt
self.status = status
self.title = title
self.updatedAt = updatedAt
}
public enum CodingKeys: String, CodingKey, CaseIterable {
case assignee
case createdAt
case description
case dueAt
case extRef
case id
case identifier
case kind
case labels
case number
case priority
case projectKey
case repo
case source
case startAt
case status
case title
case updatedAt
}
// Encodable protocol methods
public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encodeIfPresent(assignee, forKey: .assignee)
try container.encodeIfPresent(createdAt, forKey: .createdAt)
try container.encodeIfPresent(description, forKey: .description)
try container.encodeIfPresent(dueAt, forKey: .dueAt)
try container.encodeIfPresent(extRef, forKey: .extRef)
try container.encodeIfPresent(id, forKey: .id)
try container.encodeIfPresent(identifier, forKey: .identifier)
try container.encodeIfPresent(kind, forKey: .kind)
try container.encodeIfPresent(labels, forKey: .labels)
try container.encodeIfPresent(number, forKey: .number)
try container.encodeIfPresent(priority, forKey: .priority)
try container.encodeIfPresent(projectKey, forKey: .projectKey)
try container.encodeIfPresent(repo, forKey: .repo)
try container.encodeIfPresent(source, forKey: .source)
try container.encodeIfPresent(startAt, forKey: .startAt)
try container.encodeIfPresent(status, forKey: .status)
try container.encodeIfPresent(title, forKey: .title)
try container.encodeIfPresent(updatedAt, forKey: .updatedAt)
}
}
@available(iOS 13, tvOS 13, watchOS 6, macOS 10.15, *)
extension IssueView: Identifiable {}