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

655 lines
53 KiB
Swift

//
// TodoAPI.swift
//
// Generated by openapi-generator
// https://openapi-generator.tech
//
import Foundation
open class TodoAPI {
/**
Refused — a board is a repository on the forge
- parameter key: (path)
- parameter apiConfiguration: The configuration for the http request.
- returns: Void
*/
@available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
open class func deleteTodoProjectsByKey(key: String, apiConfiguration: HanzoAPIConfiguration = HanzoAPIConfiguration.shared) async throws(ErrorResponse) {
return try await deleteTodoProjectsByKeyWithRequestBuilder(key: key, apiConfiguration: apiConfiguration).execute().body
}
/**
Refused — a board is a repository on the forge
- DELETE /v1/todo/projects/{key}
- Answers 405. A todo board IS a repository on this deployment's forge, so creating, renaming and deleting one is a FORGE operation carried out with FORGE permissions. Offering it here would put a second endpoint on the same object, guarded by this surface instead of by the forge — a weaker guard on the same thing. So the route exists and refuses, rather than 404ing: \"not this service's job\" and \"no such thing\" are different facts, and the body names the forge so a caller knows where the job IS done. What this surface DOES own is the work on a board: list the boards you can see, read and file their issues, move a card between columns, and read the schedule a milestone is. Those are the routes beside this one.
- Bearer Token:
- type: http
- name: bearer
- parameter key: (path)
- parameter apiConfiguration: The configuration for the http request.
- returns: RequestBuilder<Void>
*/
open class func deleteTodoProjectsByKeyWithRequestBuilder(key: String, apiConfiguration: HanzoAPIConfiguration = HanzoAPIConfiguration.shared) -> RequestBuilder<Void> {
var localVariablePath = "/v1/todo/projects/{key}"
let keyPreEscape = "\(APIHelper.mapValueToPathItem(key))"
let keyPostEscape = keyPreEscape.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed) ?? ""
localVariablePath = localVariablePath.replacingOccurrences(of: "{key}", with: keyPostEscape, options: .literal, range: nil)
let localVariableURLString = apiConfiguration.basePath + localVariablePath
let localVariableParameters: [String: any Sendable]? = nil
let localVariableUrlComponents = URLComponents(string: localVariableURLString)
let localVariableNillableHeaders: [String: (any Sendable)?] = [
:
]
let localVariableHeaderParameters = APIHelper.rejectNilHeaders(localVariableNillableHeaders)
let localVariableRequestBuilder: RequestBuilder<Void>.Type = apiConfiguration.requestBuilderFactory.getNonDecodableBuilder()
return localVariableRequestBuilder.init(method: "DELETE", URLString: (localVariableUrlComponents?.string ?? localVariableURLString), parameters: localVariableParameters, headers: localVariableHeaderParameters, requiresAuthentication: true, apiConfiguration: apiConfiguration)
}
/**
Returns a board's issues — work items with their column, priority, assignee, labels and schedule.
- parameter key: (query) Key is the project whose issues to list, from the path. EMPTY means every project in the org — the global board. It is a filter like the rest of this struct rather than an address, which is what lets one op answer both \&quot;this board\&quot; and \&quot;all the work\&quot; without a second surface disagreeing with the first about what a column is. (optional)
- parameter status: (query) Status keeps only issues in that board column: backlog, todo, in_progress, done or canceled. An unknown value is refused with 400. (optional)
- parameter kind: (query) Kind keeps only work items of that shape: issue, pr or epic. An unknown value is refused with 400. (optional)
- parameter repo: (query) Repo keeps only issues bound to that git repository. (optional)
- parameter label: (query) Label keeps only issues carrying that label, compared case-insensitively. This is how a board narrows to something SMALLER than a repository — the one mechanism for it. An estate whose apps are directories inside one repository (hanzoai/cloud carries ~140 of them) has no repository per app to address, so the app is a label: &#x60;label&#x3D;app/meet&#x60; is the meet board. Nothing is provisioned to make one exist; a board is the query. (optional)
- parameter source: (query) Source keeps only issues opened from that surface: team, git, crm, helpdesk, cms or agent. An unknown value is refused with 400. (optional)
- parameter scheduled: (query) Scheduled keeps only issues that carry a date — a start, a due date or both. This is the timeline&#39;s slice of the board: pass scheduled&#x3D;true to get exactly the rows a gantt has somewhere to draw, instead of fetching every issue and discarding the undated ones client-side. (optional)
- parameter apiConfiguration: The configuration for the http request.
- returns: [IssueView]
*/
@available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
open class func getTodoBoard(key: String? = nil, status: String? = nil, kind: String? = nil, repo: String? = nil, label: String? = nil, source: String? = nil, scheduled: Bool? = nil, apiConfiguration: HanzoAPIConfiguration = HanzoAPIConfiguration.shared) async throws(ErrorResponse) -> [IssueView] {
return try await getTodoBoardWithRequestBuilder(key: key, status: status, kind: kind, repo: repo, label: label, source: source, scheduled: scheduled, apiConfiguration: apiConfiguration).execute().body
}
/**
Returns a board's issues — work items with their column, priority, assignee, labels and schedule.
- GET /v1/todo/board
- Returns a board's issues — work items with their column, priority, assignee, labels and schedule. WHICH board is a filter, not an address. Bound to a repository (the key from the path) it is that project's board; left unbound it is the org's whole board; narrowed by label it is a board smaller than any repository — which is the only way an app that lives as a directory inside a shared repository can have one. Every combination is the same rows through the same projection, so no two boards can disagree about what a column means. The column is a LABEL on the forge, so the board and the forge web UI are the same object seen twice: relabelling in either moves the card in both. A closed issue reads as done whatever its labels say.
- Bearer Token:
- type: http
- name: bearer
- parameter key: (query) Key is the project whose issues to list, from the path. EMPTY means every project in the org — the global board. It is a filter like the rest of this struct rather than an address, which is what lets one op answer both \&quot;this board\&quot; and \&quot;all the work\&quot; without a second surface disagreeing with the first about what a column is. (optional)
- parameter status: (query) Status keeps only issues in that board column: backlog, todo, in_progress, done or canceled. An unknown value is refused with 400. (optional)
- parameter kind: (query) Kind keeps only work items of that shape: issue, pr or epic. An unknown value is refused with 400. (optional)
- parameter repo: (query) Repo keeps only issues bound to that git repository. (optional)
- parameter label: (query) Label keeps only issues carrying that label, compared case-insensitively. This is how a board narrows to something SMALLER than a repository — the one mechanism for it. An estate whose apps are directories inside one repository (hanzoai/cloud carries ~140 of them) has no repository per app to address, so the app is a label: &#x60;label&#x3D;app/meet&#x60; is the meet board. Nothing is provisioned to make one exist; a board is the query. (optional)
- parameter source: (query) Source keeps only issues opened from that surface: team, git, crm, helpdesk, cms or agent. An unknown value is refused with 400. (optional)
- parameter scheduled: (query) Scheduled keeps only issues that carry a date — a start, a due date or both. This is the timeline&#39;s slice of the board: pass scheduled&#x3D;true to get exactly the rows a gantt has somewhere to draw, instead of fetching every issue and discarding the undated ones client-side. (optional)
- parameter apiConfiguration: The configuration for the http request.
- returns: RequestBuilder<[IssueView]>
*/
open class func getTodoBoardWithRequestBuilder(key: String? = nil, status: String? = nil, kind: String? = nil, repo: String? = nil, label: String? = nil, source: String? = nil, scheduled: Bool? = nil, apiConfiguration: HanzoAPIConfiguration = HanzoAPIConfiguration.shared) -> RequestBuilder<[IssueView]> {
let localVariablePath = "/v1/todo/board"
let localVariableURLString = apiConfiguration.basePath + localVariablePath
let localVariableParameters: [String: any Sendable]? = nil
var localVariableUrlComponents = URLComponents(string: localVariableURLString)
localVariableUrlComponents?.queryItems = APIHelper.mapValuesToQueryItems([
"key": (wrappedValue: key?.asParameter(codableHelper: apiConfiguration.codableHelper), isExplode: true),
"status": (wrappedValue: status?.asParameter(codableHelper: apiConfiguration.codableHelper), isExplode: true),
"kind": (wrappedValue: kind?.asParameter(codableHelper: apiConfiguration.codableHelper), isExplode: true),
"repo": (wrappedValue: repo?.asParameter(codableHelper: apiConfiguration.codableHelper), isExplode: true),
"label": (wrappedValue: label?.asParameter(codableHelper: apiConfiguration.codableHelper), isExplode: true),
"source": (wrappedValue: source?.asParameter(codableHelper: apiConfiguration.codableHelper), isExplode: true),
"scheduled": (wrappedValue: scheduled?.asParameter(codableHelper: apiConfiguration.codableHelper), isExplode: true),
])
let localVariableNillableHeaders: [String: (any Sendable)?] = [
:
]
let localVariableHeaderParameters = APIHelper.rejectNilHeaders(localVariableNillableHeaders)
let localVariableRequestBuilder: RequestBuilder<[IssueView]>.Type = apiConfiguration.requestBuilderFactory.getBuilder()
return localVariableRequestBuilder.init(method: "GET", URLString: (localVariableUrlComponents?.string ?? localVariableURLString), parameters: localVariableParameters, headers: localVariableHeaderParameters, requiresAuthentication: true, apiConfiguration: apiConfiguration)
}
/**
Answers across every project in the org.
- parameter q: (query) Q matches an issue&#39;s title or description. A word from the issue, which is what someone remembers — not its number, which is what they are looking up. (optional)
- parameter project: (query) Project narrows to one team key; \&quot;\&quot; searches every project in the org, which is the point of this op. (optional)
- parameter status: (query) Status keeps one board column: backlog, todo, in_progress, done, canceled. (optional)
- parameter kind: (query) Kind keeps one shape: issue, pr, epic. (optional)
- parameter repo: (query) Repo keeps issues bound to one git repository. (optional)
- parameter room: (query) Room keeps issues bound to one collaboration room, spelled \&quot;&lt;space&gt;_&lt;room&gt;\&quot; — the exact value GET /v1/meet/call answers with, so a channel&#39;s call and its todo list name the room the same way. This is the read a channel view runs to draw its own list; it spans every board of the org, because the work a channel is about is not confined to one board. (optional)
- parameter source: (query) Source keeps one origin: team, git, crm, helpdesk, cms, agent. \&quot;git\&quot; is how you ask for the mirrored GitHub issues specifically. (optional)
- parameter assignee: (query) Assignee keeps issues held by one person. Pass \&quot;me\&quot; for yourself. (optional)
- parameter limit: (query) Limit caps the answer; 0 means the default, and anything above the ceiling is clamped rather than refused — a search that errors on being too broad teaches people to guess. (optional)
- parameter apiConfiguration: The configuration for the http request.
- returns: IssueHits
*/
@available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
open class func getTodoIssues(q: String? = nil, project: String? = nil, status: String? = nil, kind: String? = nil, repo: String? = nil, room: String? = nil, source: String? = nil, assignee: String? = nil, limit: Int64? = nil, apiConfiguration: HanzoAPIConfiguration = HanzoAPIConfiguration.shared) async throws(ErrorResponse) -> IssueHits {
return try await getTodoIssuesWithRequestBuilder(q: q, project: project, status: status, kind: kind, repo: repo, room: room, source: source, assignee: assignee, limit: limit, apiConfiguration: apiConfiguration).execute().body
}
/**
Answers across every project in the org.
- GET /v1/todo/issues
- Answers across every project in the org. The org comes from the validated principal and never from the request: a caller able to name the org could read another tenant's backlog, and a search is exactly the shape that would quietly return it.
- Bearer Token:
- type: http
- name: bearer
- parameter q: (query) Q matches an issue&#39;s title or description. A word from the issue, which is what someone remembers — not its number, which is what they are looking up. (optional)
- parameter project: (query) Project narrows to one team key; \&quot;\&quot; searches every project in the org, which is the point of this op. (optional)
- parameter status: (query) Status keeps one board column: backlog, todo, in_progress, done, canceled. (optional)
- parameter kind: (query) Kind keeps one shape: issue, pr, epic. (optional)
- parameter repo: (query) Repo keeps issues bound to one git repository. (optional)
- parameter room: (query) Room keeps issues bound to one collaboration room, spelled \&quot;&lt;space&gt;_&lt;room&gt;\&quot; — the exact value GET /v1/meet/call answers with, so a channel&#39;s call and its todo list name the room the same way. This is the read a channel view runs to draw its own list; it spans every board of the org, because the work a channel is about is not confined to one board. (optional)
- parameter source: (query) Source keeps one origin: team, git, crm, helpdesk, cms, agent. \&quot;git\&quot; is how you ask for the mirrored GitHub issues specifically. (optional)
- parameter assignee: (query) Assignee keeps issues held by one person. Pass \&quot;me\&quot; for yourself. (optional)
- parameter limit: (query) Limit caps the answer; 0 means the default, and anything above the ceiling is clamped rather than refused — a search that errors on being too broad teaches people to guess. (optional)
- parameter apiConfiguration: The configuration for the http request.
- returns: RequestBuilder<IssueHits>
*/
open class func getTodoIssuesWithRequestBuilder(q: String? = nil, project: String? = nil, status: String? = nil, kind: String? = nil, repo: String? = nil, room: String? = nil, source: String? = nil, assignee: String? = nil, limit: Int64? = nil, apiConfiguration: HanzoAPIConfiguration = HanzoAPIConfiguration.shared) -> RequestBuilder<IssueHits> {
let localVariablePath = "/v1/todo/issues"
let localVariableURLString = apiConfiguration.basePath + localVariablePath
let localVariableParameters: [String: any Sendable]? = nil
var localVariableUrlComponents = URLComponents(string: localVariableURLString)
localVariableUrlComponents?.queryItems = APIHelper.mapValuesToQueryItems([
"q": (wrappedValue: q?.asParameter(codableHelper: apiConfiguration.codableHelper), isExplode: true),
"project": (wrappedValue: project?.asParameter(codableHelper: apiConfiguration.codableHelper), isExplode: true),
"status": (wrappedValue: status?.asParameter(codableHelper: apiConfiguration.codableHelper), isExplode: true),
"kind": (wrappedValue: kind?.asParameter(codableHelper: apiConfiguration.codableHelper), isExplode: true),
"repo": (wrappedValue: repo?.asParameter(codableHelper: apiConfiguration.codableHelper), isExplode: true),
"room": (wrappedValue: room?.asParameter(codableHelper: apiConfiguration.codableHelper), isExplode: true),
"source": (wrappedValue: source?.asParameter(codableHelper: apiConfiguration.codableHelper), isExplode: true),
"assignee": (wrappedValue: assignee?.asParameter(codableHelper: apiConfiguration.codableHelper), isExplode: true),
"limit": (wrappedValue: limit?.asParameter(codableHelper: apiConfiguration.codableHelper), isExplode: true),
])
let localVariableNillableHeaders: [String: (any Sendable)?] = [
:
]
let localVariableHeaderParameters = APIHelper.rejectNilHeaders(localVariableNillableHeaders)
let localVariableRequestBuilder: RequestBuilder<IssueHits>.Type = apiConfiguration.requestBuilderFactory.getBuilder()
return localVariableRequestBuilder.init(method: "GET", URLString: (localVariableUrlComponents?.string ?? localVariableURLString), parameters: localVariableParameters, headers: localVariableHeaderParameters, requiresAuthentication: true, apiConfiguration: apiConfiguration)
}
/**
Returns the boards of your org — the places your work actually is.
- parameter apiConfiguration: The configuration for the http request.
- returns: [TodoProject]
*/
@available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
open class func getTodoProjects(apiConfiguration: HanzoAPIConfiguration = HanzoAPIConfiguration.shared) async throws(ErrorResponse) -> [TodoProject] {
return try await getTodoProjectsWithRequestBuilder(apiConfiguration: apiConfiguration).execute().body
}
/**
Returns the boards of your org — the places your work actually is.
- GET /v1/todo/projects
- Returns the boards of your org — the places your work actually is. The key addresses the board's issues. A BOARD IS A PLACE WORK IS, not an object somebody provisioned. So the list is assembled from the work itself: the repositories your org has filed issues on, plus the boards the index holds. A repository with nothing on it is not in the list and is still perfectly addressable — GET /projects/<name> reads it and a create files into it — so nothing is lost by leaving it out. Measured, which is why: reading the forge's whole repository inventory put 745 boards here, of which all but a handful were vendored forks and mirrors (.github, .profile, DOMPurify, BoatAttack) that will never carry this org's work. A list that long is not a list — the estate's real roadmap was in it somewhere and no one could see it. The forge half is the FORGE's answer for your own account, so two people in one org can legitimately see different boards.
- Bearer Token:
- type: http
- name: bearer
- parameter apiConfiguration: The configuration for the http request.
- returns: RequestBuilder<[TodoProject]>
*/
open class func getTodoProjectsWithRequestBuilder(apiConfiguration: HanzoAPIConfiguration = HanzoAPIConfiguration.shared) -> RequestBuilder<[TodoProject]> {
let localVariablePath = "/v1/todo/projects"
let localVariableURLString = apiConfiguration.basePath + localVariablePath
let localVariableParameters: [String: any Sendable]? = nil
let localVariableUrlComponents = URLComponents(string: localVariableURLString)
let localVariableNillableHeaders: [String: (any Sendable)?] = [
:
]
let localVariableHeaderParameters = APIHelper.rejectNilHeaders(localVariableNillableHeaders)
let localVariableRequestBuilder: RequestBuilder<[TodoProject]>.Type = apiConfiguration.requestBuilderFactory.getBuilder()
return localVariableRequestBuilder.init(method: "GET", URLString: (localVariableUrlComponents?.string ?? localVariableURLString), parameters: localVariableParameters, headers: localVariableHeaderParameters, requiresAuthentication: true, apiConfiguration: apiConfiguration)
}
/**
Returns one board of your org by its key — the repository name.
- parameter key: (path) Key is the project&#39;s org-unique handle: 2-8 uppercase alphanumerics starting with a letter (\&quot;ENG\&quot;, \&quot;OPS2\&quot;). Matched case-insensitively.
- parameter apiConfiguration: The configuration for the http request.
- returns: TodoProject
*/
@available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
open class func getTodoProjectsByKey(key: String, apiConfiguration: HanzoAPIConfiguration = HanzoAPIConfiguration.shared) async throws(ErrorResponse) -> TodoProject {
return try await getTodoProjectsByKeyWithRequestBuilder(key: key, apiConfiguration: apiConfiguration).execute().body
}
/**
Returns one board of your org by its key — the repository name.
- GET /v1/todo/projects/{key}
- Returns one board of your org by its key — the repository name. 404 when your org has no repository under that key, or when your own forge account cannot see it.
- Bearer Token:
- type: http
- name: bearer
- parameter key: (path) Key is the project&#39;s org-unique handle: 2-8 uppercase alphanumerics starting with a letter (\&quot;ENG\&quot;, \&quot;OPS2\&quot;). Matched case-insensitively.
- parameter apiConfiguration: The configuration for the http request.
- returns: RequestBuilder<TodoProject>
*/
open class func getTodoProjectsByKeyWithRequestBuilder(key: String, apiConfiguration: HanzoAPIConfiguration = HanzoAPIConfiguration.shared) -> RequestBuilder<TodoProject> {
var localVariablePath = "/v1/todo/projects/{key}"
let keyPreEscape = "\(APIHelper.mapValueToPathItem(key))"
let keyPostEscape = keyPreEscape.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed) ?? ""
localVariablePath = localVariablePath.replacingOccurrences(of: "{key}", with: keyPostEscape, options: .literal, range: nil)
let localVariableURLString = apiConfiguration.basePath + localVariablePath
let localVariableParameters: [String: any Sendable]? = nil
let localVariableUrlComponents = URLComponents(string: localVariableURLString)
let localVariableNillableHeaders: [String: (any Sendable)?] = [
:
]
let localVariableHeaderParameters = APIHelper.rejectNilHeaders(localVariableNillableHeaders)
let localVariableRequestBuilder: RequestBuilder<TodoProject>.Type = apiConfiguration.requestBuilderFactory.getBuilder()
return localVariableRequestBuilder.init(method: "GET", URLString: (localVariableUrlComponents?.string ?? localVariableURLString), parameters: localVariableParameters, headers: localVariableHeaderParameters, requiresAuthentication: true, apiConfiguration: apiConfiguration)
}
/**
Returns a board's issues — work items with their column, priority, assignee, labels and schedule.
- parameter key: (path) Key is the project whose issues to list, from the path. EMPTY means every project in the org — the global board. It is a filter like the rest of this struct rather than an address, which is what lets one op answer both \&quot;this board\&quot; and \&quot;all the work\&quot; without a second surface disagreeing with the first about what a column is.
- parameter status: (query) Status keeps only issues in that board column: backlog, todo, in_progress, done or canceled. An unknown value is refused with 400. (optional)
- parameter kind: (query) Kind keeps only work items of that shape: issue, pr or epic. An unknown value is refused with 400. (optional)
- parameter repo: (query) Repo keeps only issues bound to that git repository. (optional)
- parameter label: (query) Label keeps only issues carrying that label, compared case-insensitively. This is how a board narrows to something SMALLER than a repository — the one mechanism for it. An estate whose apps are directories inside one repository (hanzoai/cloud carries ~140 of them) has no repository per app to address, so the app is a label: &#x60;label&#x3D;app/meet&#x60; is the meet board. Nothing is provisioned to make one exist; a board is the query. (optional)
- parameter source: (query) Source keeps only issues opened from that surface: team, git, crm, helpdesk, cms or agent. An unknown value is refused with 400. (optional)
- parameter scheduled: (query) Scheduled keeps only issues that carry a date — a start, a due date or both. This is the timeline&#39;s slice of the board: pass scheduled&#x3D;true to get exactly the rows a gantt has somewhere to draw, instead of fetching every issue and discarding the undated ones client-side. (optional)
- parameter apiConfiguration: The configuration for the http request.
- returns: [IssueView]
*/
@available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
open class func getTodoProjectsByKeyIssues(key: String, status: String? = nil, kind: String? = nil, repo: String? = nil, label: String? = nil, source: String? = nil, scheduled: Bool? = nil, apiConfiguration: HanzoAPIConfiguration = HanzoAPIConfiguration.shared) async throws(ErrorResponse) -> [IssueView] {
return try await getTodoProjectsByKeyIssuesWithRequestBuilder(key: key, status: status, kind: kind, repo: repo, label: label, source: source, scheduled: scheduled, apiConfiguration: apiConfiguration).execute().body
}
/**
Returns a board's issues — work items with their column, priority, assignee, labels and schedule.
- GET /v1/todo/projects/{key}/issues
- Returns a board's issues — work items with their column, priority, assignee, labels and schedule. WHICH board is a filter, not an address. Bound to a repository (the key from the path) it is that project's board; left unbound it is the org's whole board; narrowed by label it is a board smaller than any repository — which is the only way an app that lives as a directory inside a shared repository can have one. Every combination is the same rows through the same projection, so no two boards can disagree about what a column means. The column is a LABEL on the forge, so the board and the forge web UI are the same object seen twice: relabelling in either moves the card in both. A closed issue reads as done whatever its labels say.
- Bearer Token:
- type: http
- name: bearer
- parameter key: (path) Key is the project whose issues to list, from the path. EMPTY means every project in the org — the global board. It is a filter like the rest of this struct rather than an address, which is what lets one op answer both \&quot;this board\&quot; and \&quot;all the work\&quot; without a second surface disagreeing with the first about what a column is.
- parameter status: (query) Status keeps only issues in that board column: backlog, todo, in_progress, done or canceled. An unknown value is refused with 400. (optional)
- parameter kind: (query) Kind keeps only work items of that shape: issue, pr or epic. An unknown value is refused with 400. (optional)
- parameter repo: (query) Repo keeps only issues bound to that git repository. (optional)
- parameter label: (query) Label keeps only issues carrying that label, compared case-insensitively. This is how a board narrows to something SMALLER than a repository — the one mechanism for it. An estate whose apps are directories inside one repository (hanzoai/cloud carries ~140 of them) has no repository per app to address, so the app is a label: &#x60;label&#x3D;app/meet&#x60; is the meet board. Nothing is provisioned to make one exist; a board is the query. (optional)
- parameter source: (query) Source keeps only issues opened from that surface: team, git, crm, helpdesk, cms or agent. An unknown value is refused with 400. (optional)
- parameter scheduled: (query) Scheduled keeps only issues that carry a date — a start, a due date or both. This is the timeline&#39;s slice of the board: pass scheduled&#x3D;true to get exactly the rows a gantt has somewhere to draw, instead of fetching every issue and discarding the undated ones client-side. (optional)
- parameter apiConfiguration: The configuration for the http request.
- returns: RequestBuilder<[IssueView]>
*/
open class func getTodoProjectsByKeyIssuesWithRequestBuilder(key: String, status: String? = nil, kind: String? = nil, repo: String? = nil, label: String? = nil, source: String? = nil, scheduled: Bool? = nil, apiConfiguration: HanzoAPIConfiguration = HanzoAPIConfiguration.shared) -> RequestBuilder<[IssueView]> {
var localVariablePath = "/v1/todo/projects/{key}/issues"
let keyPreEscape = "\(APIHelper.mapValueToPathItem(key))"
let keyPostEscape = keyPreEscape.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed) ?? ""
localVariablePath = localVariablePath.replacingOccurrences(of: "{key}", with: keyPostEscape, options: .literal, range: nil)
let localVariableURLString = apiConfiguration.basePath + localVariablePath
let localVariableParameters: [String: any Sendable]? = nil
var localVariableUrlComponents = URLComponents(string: localVariableURLString)
localVariableUrlComponents?.queryItems = APIHelper.mapValuesToQueryItems([
"status": (wrappedValue: status?.asParameter(codableHelper: apiConfiguration.codableHelper), isExplode: true),
"kind": (wrappedValue: kind?.asParameter(codableHelper: apiConfiguration.codableHelper), isExplode: true),
"repo": (wrappedValue: repo?.asParameter(codableHelper: apiConfiguration.codableHelper), isExplode: true),
"label": (wrappedValue: label?.asParameter(codableHelper: apiConfiguration.codableHelper), isExplode: true),
"source": (wrappedValue: source?.asParameter(codableHelper: apiConfiguration.codableHelper), isExplode: true),
"scheduled": (wrappedValue: scheduled?.asParameter(codableHelper: apiConfiguration.codableHelper), isExplode: true),
])
let localVariableNillableHeaders: [String: (any Sendable)?] = [
:
]
let localVariableHeaderParameters = APIHelper.rejectNilHeaders(localVariableNillableHeaders)
let localVariableRequestBuilder: RequestBuilder<[IssueView]>.Type = apiConfiguration.requestBuilderFactory.getBuilder()
return localVariableRequestBuilder.init(method: "GET", URLString: (localVariableUrlComponents?.string ?? localVariableURLString), parameters: localVariableParameters, headers: localVariableHeaderParameters, requiresAuthentication: true, apiConfiguration: apiConfiguration)
}
/**
Returns ONE work item in full — its description included.
- parameter key: (path) Key is the board — the repository name, or an index board&#39;s key.
- parameter num: (path) Num is the issue&#39;s number on that board.
- parameter apiConfiguration: The configuration for the http request.
- returns: IssueView
*/
@available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
open class func getTodoProjectsByKeyIssuesByNum(key: String, num: Int64, apiConfiguration: HanzoAPIConfiguration = HanzoAPIConfiguration.shared) async throws(ErrorResponse) -> IssueView {
return try await getTodoProjectsByKeyIssuesByNumWithRequestBuilder(key: key, num: num, apiConfiguration: apiConfiguration).execute().body
}
/**
Returns ONE work item in full — its description included.
- GET /v1/todo/projects/{key}/issues/{num}
- Returns ONE work item in full — its description included. The list reads answer a board, and a board is a summary: the description is where the actual content of a work item lives — what an issue asks for, what an epic's acceptance criteria are — and no read on this surface returned it. The address is the one PATCH already accepts, so an item you can move is now an item you can read. It reads the forge directly rather than filtering the org fan-out, then falls back to the index for a board the forge has never heard of — the same order, and the same reason, as GetProject: a row is one kind of thing however it came to exist, so a caller does not have to know which store it is in to fetch it.
- Bearer Token:
- type: http
- name: bearer
- parameter key: (path) Key is the board — the repository name, or an index board&#39;s key.
- parameter num: (path) Num is the issue&#39;s number on that board.
- parameter apiConfiguration: The configuration for the http request.
- returns: RequestBuilder<IssueView>
*/
open class func getTodoProjectsByKeyIssuesByNumWithRequestBuilder(key: String, num: Int64, apiConfiguration: HanzoAPIConfiguration = HanzoAPIConfiguration.shared) -> RequestBuilder<IssueView> {
var localVariablePath = "/v1/todo/projects/{key}/issues/{num}"
let keyPreEscape = "\(APIHelper.mapValueToPathItem(key))"
let keyPostEscape = keyPreEscape.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed) ?? ""
localVariablePath = localVariablePath.replacingOccurrences(of: "{key}", with: keyPostEscape, options: .literal, range: nil)
let numPreEscape = "\(APIHelper.mapValueToPathItem(num))"
let numPostEscape = numPreEscape.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed) ?? ""
localVariablePath = localVariablePath.replacingOccurrences(of: "{num}", with: numPostEscape, options: .literal, range: nil)
let localVariableURLString = apiConfiguration.basePath + localVariablePath
let localVariableParameters: [String: any Sendable]? = nil
let localVariableUrlComponents = URLComponents(string: localVariableURLString)
let localVariableNillableHeaders: [String: (any Sendable)?] = [
:
]
let localVariableHeaderParameters = APIHelper.rejectNilHeaders(localVariableNillableHeaders)
let localVariableRequestBuilder: RequestBuilder<IssueView>.Type = apiConfiguration.requestBuilderFactory.getBuilder()
return localVariableRequestBuilder.init(method: "GET", URLString: (localVariableUrlComponents?.string ?? localVariableURLString), parameters: localVariableParameters, headers: localVariableHeaderParameters, requiresAuthentication: true, apiConfiguration: apiConfiguration)
}
/**
Summarises one room's work.
- parameter room: (path) Room is the room, spelled \&quot;&lt;space&gt;_&lt;room&gt;\&quot; — the same value GET /v1/meet/call answers with, so a channel&#39;s call and its work name the room identically. From the path.
- parameter apiConfiguration: The configuration for the http request.
- returns: RoomWork
*/
@available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
open class func getTodoRoomsByRoom(room: String, apiConfiguration: HanzoAPIConfiguration = HanzoAPIConfiguration.shared) async throws(ErrorResponse) -> RoomWork {
return try await getTodoRoomsByRoomWithRequestBuilder(room: room, apiConfiguration: apiConfiguration).execute().body
}
/**
Summarises one room's work.
- GET /v1/todo/rooms/{room}
- Summarises one room's work. The room is opaque here and is deliberately not resolved: this package cannot say whether a room exists — apps/team owns that document — so an unknown room answers an EMPTY board rather than a 404. That is the honest answer and the useful one: a channel that has never had an item filed in it and a channel id that was mistyped both have no work, and inventing a distinction would require this surface to hold a second copy of the room list (HIP-0523 §2 forbids it, and it would drift the first time a room was renamed). Tenancy is the validated principal's org and nothing else, so a caller cannot read another tenant's channel by naming its room.
- Bearer Token:
- type: http
- name: bearer
- parameter room: (path) Room is the room, spelled \&quot;&lt;space&gt;_&lt;room&gt;\&quot; — the same value GET /v1/meet/call answers with, so a channel&#39;s call and its work name the room identically. From the path.
- parameter apiConfiguration: The configuration for the http request.
- returns: RequestBuilder<RoomWork>
*/
open class func getTodoRoomsByRoomWithRequestBuilder(room: String, apiConfiguration: HanzoAPIConfiguration = HanzoAPIConfiguration.shared) -> RequestBuilder<RoomWork> {
var localVariablePath = "/v1/todo/rooms/{room}"
let roomPreEscape = "\(APIHelper.mapValueToPathItem(room))"
let roomPostEscape = roomPreEscape.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed) ?? ""
localVariablePath = localVariablePath.replacingOccurrences(of: "{room}", with: roomPostEscape, options: .literal, range: nil)
let localVariableURLString = apiConfiguration.basePath + localVariablePath
let localVariableParameters: [String: any Sendable]? = nil
let localVariableUrlComponents = URLComponents(string: localVariableURLString)
let localVariableNillableHeaders: [String: (any Sendable)?] = [
:
]
let localVariableHeaderParameters = APIHelper.rejectNilHeaders(localVariableNillableHeaders)
let localVariableRequestBuilder: RequestBuilder<RoomWork>.Type = apiConfiguration.requestBuilderFactory.getBuilder()
return localVariableRequestBuilder.init(method: "GET", URLString: (localVariableUrlComponents?.string ?? localVariableURLString), parameters: localVariableParameters, headers: localVariableHeaderParameters, requiresAuthentication: true, apiConfiguration: apiConfiguration)
}
/**
Refused — a board is a repository on the forge
- parameter key: (path)
- parameter apiConfiguration: The configuration for the http request.
- returns: Void
*/
@available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
open class func patchTodoProjectsByKey(key: String, apiConfiguration: HanzoAPIConfiguration = HanzoAPIConfiguration.shared) async throws(ErrorResponse) {
return try await patchTodoProjectsByKeyWithRequestBuilder(key: key, apiConfiguration: apiConfiguration).execute().body
}
/**
Refused — a board is a repository on the forge
- PATCH /v1/todo/projects/{key}
- Answers 405. A todo board IS a repository on this deployment's forge, so creating, renaming and deleting one is a FORGE operation carried out with FORGE permissions. Offering it here would put a second endpoint on the same object, guarded by this surface instead of by the forge — a weaker guard on the same thing. So the route exists and refuses, rather than 404ing: \"not this service's job\" and \"no such thing\" are different facts, and the body names the forge so a caller knows where the job IS done. What this surface DOES own is the work on a board: list the boards you can see, read and file their issues, move a card between columns, and read the schedule a milestone is. Those are the routes beside this one.
- Bearer Token:
- type: http
- name: bearer
- parameter key: (path)
- parameter apiConfiguration: The configuration for the http request.
- returns: RequestBuilder<Void>
*/
open class func patchTodoProjectsByKeyWithRequestBuilder(key: String, apiConfiguration: HanzoAPIConfiguration = HanzoAPIConfiguration.shared) -> RequestBuilder<Void> {
var localVariablePath = "/v1/todo/projects/{key}"
let keyPreEscape = "\(APIHelper.mapValueToPathItem(key))"
let keyPostEscape = keyPreEscape.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed) ?? ""
localVariablePath = localVariablePath.replacingOccurrences(of: "{key}", with: keyPostEscape, options: .literal, range: nil)
let localVariableURLString = apiConfiguration.basePath + localVariablePath
let localVariableParameters: [String: any Sendable]? = nil
let localVariableUrlComponents = URLComponents(string: localVariableURLString)
let localVariableNillableHeaders: [String: (any Sendable)?] = [
:
]
let localVariableHeaderParameters = APIHelper.rejectNilHeaders(localVariableNillableHeaders)
let localVariableRequestBuilder: RequestBuilder<Void>.Type = apiConfiguration.requestBuilderFactory.getNonDecodableBuilder()
return localVariableRequestBuilder.init(method: "PATCH", URLString: (localVariableUrlComponents?.string ?? localVariableURLString), parameters: localVariableParameters, headers: localVariableHeaderParameters, requiresAuthentication: true, apiConfiguration: apiConfiguration)
}
/**
Edits a work item — rename it, rewrite it, move it to another column, or re-prioritise it.
- parameter key: (path) Key is the board — the repository name, from the path.
- parameter num: (path) Num is the issue number on that repository, from the path.
- parameter issueEdit: (body)
- parameter apiConfiguration: The configuration for the http request.
- returns: IssueView
*/
@available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
open class func patchTodoProjectsByKeyIssuesByNum(key: String, num: Int64, issueEdit: IssueEdit, apiConfiguration: HanzoAPIConfiguration = HanzoAPIConfiguration.shared) async throws(ErrorResponse) -> IssueView {
return try await patchTodoProjectsByKeyIssuesByNumWithRequestBuilder(key: key, num: num, issueEdit: issueEdit, apiConfiguration: apiConfiguration).execute().body
}
/**
Edits a work item — rename it, rewrite it, move it to another column, or re-prioritise it.
- PATCH /v1/todo/projects/{key}/issues/{num}
- Edits a work item — rename it, rewrite it, move it to another column, or re-prioritise it. Absent fields are left alone. MOVING A CARD IS A RELABEL. The column lives in the forge's label set, so the move replaces that set rather than writing a status column here that a forge-side change could contradict. Moving to `done` also CLOSES the issue on the forge, because a done card and an open issue are a contradiction.
- Bearer Token:
- type: http
- name: bearer
- parameter key: (path) Key is the board — the repository name, from the path.
- parameter num: (path) Num is the issue number on that repository, from the path.
- parameter issueEdit: (body)
- parameter apiConfiguration: The configuration for the http request.
- returns: RequestBuilder<IssueView>
*/
open class func patchTodoProjectsByKeyIssuesByNumWithRequestBuilder(key: String, num: Int64, issueEdit: IssueEdit, apiConfiguration: HanzoAPIConfiguration = HanzoAPIConfiguration.shared) -> RequestBuilder<IssueView> {
var localVariablePath = "/v1/todo/projects/{key}/issues/{num}"
let keyPreEscape = "\(APIHelper.mapValueToPathItem(key))"
let keyPostEscape = keyPreEscape.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed) ?? ""
localVariablePath = localVariablePath.replacingOccurrences(of: "{key}", with: keyPostEscape, options: .literal, range: nil)
let numPreEscape = "\(APIHelper.mapValueToPathItem(num))"
let numPostEscape = numPreEscape.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed) ?? ""
localVariablePath = localVariablePath.replacingOccurrences(of: "{num}", with: numPostEscape, options: .literal, range: nil)
let localVariableURLString = apiConfiguration.basePath + localVariablePath
let localVariableParameters = JSONEncodingHelper.encodingParameters(forEncodableObject: issueEdit, codableHelper: apiConfiguration.codableHelper)
let localVariableUrlComponents = URLComponents(string: localVariableURLString)
let localVariableNillableHeaders: [String: (any Sendable)?] = [
"Content-Type": "application/json",
]
let localVariableHeaderParameters = APIHelper.rejectNilHeaders(localVariableNillableHeaders)
let localVariableRequestBuilder: RequestBuilder<IssueView>.Type = apiConfiguration.requestBuilderFactory.getBuilder()
return localVariableRequestBuilder.init(method: "PATCH", URLString: (localVariableUrlComponents?.string ?? localVariableURLString), parameters: localVariableParameters, headers: localVariableHeaderParameters, requiresAuthentication: true, apiConfiguration: apiConfiguration)
}
/**
Refused — a board is a repository on the forge
- parameter apiConfiguration: The configuration for the http request.
- returns: Void
*/
@available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
open class func postTodoProjects(apiConfiguration: HanzoAPIConfiguration = HanzoAPIConfiguration.shared) async throws(ErrorResponse) {
return try await postTodoProjectsWithRequestBuilder(apiConfiguration: apiConfiguration).execute().body
}
/**
Refused — a board is a repository on the forge
- POST /v1/todo/projects
- Answers 405. A todo board IS a repository on this deployment's forge, so creating, renaming and deleting one is a FORGE operation carried out with FORGE permissions. Offering it here would put a second endpoint on the same object, guarded by this surface instead of by the forge — a weaker guard on the same thing. So the route exists and refuses, rather than 404ing: \"not this service's job\" and \"no such thing\" are different facts, and the body names the forge so a caller knows where the job IS done. What this surface DOES own is the work on a board: list the boards you can see, read and file their issues, move a card between columns, and read the schedule a milestone is. Those are the routes beside this one.
- Bearer Token:
- type: http
- name: bearer
- parameter apiConfiguration: The configuration for the http request.
- returns: RequestBuilder<Void>
*/
open class func postTodoProjectsWithRequestBuilder(apiConfiguration: HanzoAPIConfiguration = HanzoAPIConfiguration.shared) -> RequestBuilder<Void> {
let localVariablePath = "/v1/todo/projects"
let localVariableURLString = apiConfiguration.basePath + localVariablePath
let localVariableParameters: [String: any Sendable]? = nil
let localVariableUrlComponents = URLComponents(string: localVariableURLString)
let localVariableNillableHeaders: [String: (any Sendable)?] = [
:
]
let localVariableHeaderParameters = APIHelper.rejectNilHeaders(localVariableNillableHeaders)
let localVariableRequestBuilder: RequestBuilder<Void>.Type = apiConfiguration.requestBuilderFactory.getNonDecodableBuilder()
return localVariableRequestBuilder.init(method: "POST", URLString: (localVariableUrlComponents?.string ?? localVariableURLString), parameters: localVariableParameters, headers: localVariableHeaderParameters, requiresAuthentication: true, apiConfiguration: apiConfiguration)
}
/**
Opens a work item on the board — an issue on that repository on the deployment's forge, filed as YOU.
- parameter key: (path) Key is the board — the repository name, from the path.
- parameter newIssue: (body)
- parameter apiConfiguration: The configuration for the http request.
- returns: IssueView
*/
@available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
open class func postTodoProjectsByKeyIssues(key: String, newIssue: NewIssue, apiConfiguration: HanzoAPIConfiguration = HanzoAPIConfiguration.shared) async throws(ErrorResponse) -> IssueView {
return try await postTodoProjectsByKeyIssuesWithRequestBuilder(key: key, newIssue: newIssue, apiConfiguration: apiConfiguration).execute().body
}
/**
Opens a work item on the board — an issue on that repository on the deployment's forge, filed as YOU.
- POST /v1/todo/projects/{key}/issues
- Opens a work item on the board — an issue on that repository on the deployment's forge, filed as YOU. The column and priority are written as LABELS, which is what makes the card and the forge issue the same object: someone relabelling in the forge web UI has moved your card.
- Bearer Token:
- type: http
- name: bearer
- parameter key: (path) Key is the board — the repository name, from the path.
- parameter newIssue: (body)
- parameter apiConfiguration: The configuration for the http request.
- returns: RequestBuilder<IssueView>
*/
open class func postTodoProjectsByKeyIssuesWithRequestBuilder(key: String, newIssue: NewIssue, apiConfiguration: HanzoAPIConfiguration = HanzoAPIConfiguration.shared) -> RequestBuilder<IssueView> {
var localVariablePath = "/v1/todo/projects/{key}/issues"
let keyPreEscape = "\(APIHelper.mapValueToPathItem(key))"
let keyPostEscape = keyPreEscape.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed) ?? ""
localVariablePath = localVariablePath.replacingOccurrences(of: "{key}", with: keyPostEscape, options: .literal, range: nil)
let localVariableURLString = apiConfiguration.basePath + localVariablePath
let localVariableParameters = JSONEncodingHelper.encodingParameters(forEncodableObject: newIssue, codableHelper: apiConfiguration.codableHelper)
let localVariableUrlComponents = URLComponents(string: localVariableURLString)
let localVariableNillableHeaders: [String: (any Sendable)?] = [
"Content-Type": "application/json",
]
let localVariableHeaderParameters = APIHelper.rejectNilHeaders(localVariableNillableHeaders)
let localVariableRequestBuilder: RequestBuilder<IssueView>.Type = apiConfiguration.requestBuilderFactory.getBuilder()
return localVariableRequestBuilder.init(method: "POST", URLString: (localVariableUrlComponents?.string ?? localVariableURLString), parameters: localVariableParameters, headers: localVariableHeaderParameters, requiresAuthentication: true, apiConfiguration: apiConfiguration)
}
/**
Takes an issue: it becomes yours and it moves to in_progress.
- parameter key: (path)
- parameter num: (path)
- parameter apiConfiguration: The configuration for the http request.
- returns: IssueHit
*/
@available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
open class func postTodoProjectsByKeyIssuesByNumClaim(key: String, num: Int64, apiConfiguration: HanzoAPIConfiguration = HanzoAPIConfiguration.shared) async throws(ErrorResponse) -> IssueHit {
return try await postTodoProjectsByKeyIssuesByNumClaimWithRequestBuilder(key: key, num: num, apiConfiguration: apiConfiguration).execute().body
}
/**
Takes an issue: it becomes yours and it moves to in_progress.
- POST /v1/todo/projects/{key}/issues/{num}/claim
- Takes an issue: it becomes yours and it moves to in_progress. The holder is the CALLER, never an argument. \"Assign this to someone else\" is a different act with different authority, and it already exists as a PATCH; conflating them would let anyone hand work to anyone by naming them. Claiming something already held by someone else is refused rather than silently taken — two agents on one issue is the failure this prevents, and a claim that quietly wins a race is worse than one that says no.
- Bearer Token:
- type: http
- name: bearer
- parameter key: (path)
- parameter num: (path)
- parameter apiConfiguration: The configuration for the http request.
- returns: RequestBuilder<IssueHit>
*/
open class func postTodoProjectsByKeyIssuesByNumClaimWithRequestBuilder(key: String, num: Int64, apiConfiguration: HanzoAPIConfiguration = HanzoAPIConfiguration.shared) -> RequestBuilder<IssueHit> {
var localVariablePath = "/v1/todo/projects/{key}/issues/{num}/claim"
let keyPreEscape = "\(APIHelper.mapValueToPathItem(key))"
let keyPostEscape = keyPreEscape.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed) ?? ""
localVariablePath = localVariablePath.replacingOccurrences(of: "{key}", with: keyPostEscape, options: .literal, range: nil)
let numPreEscape = "\(APIHelper.mapValueToPathItem(num))"
let numPostEscape = numPreEscape.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed) ?? ""
localVariablePath = localVariablePath.replacingOccurrences(of: "{num}", with: numPostEscape, options: .literal, range: nil)
let localVariableURLString = apiConfiguration.basePath + localVariablePath
let localVariableParameters: [String: any Sendable]? = nil
let localVariableUrlComponents = URLComponents(string: localVariableURLString)
let localVariableNillableHeaders: [String: (any Sendable)?] = [
:
]
let localVariableHeaderParameters = APIHelper.rejectNilHeaders(localVariableNillableHeaders)
let localVariableRequestBuilder: RequestBuilder<IssueHit>.Type = apiConfiguration.requestBuilderFactory.getBuilder()
return localVariableRequestBuilder.init(method: "POST", URLString: (localVariableUrlComponents?.string ?? localVariableURLString), parameters: localVariableParameters, headers: localVariableHeaderParameters, requiresAuthentication: true, apiConfiguration: apiConfiguration)
}
}