feat(server): add form routes (#35099)

Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com>
This commit is contained in:
Aiden Cline 2026-07-03 02:40:44 -05:00 committed by GitHub
commit d9bf30fc22
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
16 changed files with 3080 additions and 436 deletions

View file

@ -76,6 +76,8 @@ import type {
FindTextResponses,
FormatterStatusErrors,
FormatterStatusResponses,
FormCreatePayload2,
FormReply2,
GlobalConfigGetErrors,
GlobalConfigGetResponses,
GlobalConfigUpdateErrors,
@ -278,6 +280,8 @@ import type {
V2EventChangesResponses,
V2EventSubscribeErrors,
V2EventSubscribeResponses,
V2FormRequestListErrors,
V2FormRequestListResponses,
V2FsFindErrors,
V2FsFindResponses,
V2FsListErrors,
@ -370,6 +374,18 @@ import type {
V2SessionCreateResponses,
V2SessionForkErrors,
V2SessionForkResponses,
V2SessionFormCancelErrors,
V2SessionFormCancelResponses,
V2SessionFormCreateErrors,
V2SessionFormCreateResponses,
V2SessionFormGetErrors,
V2SessionFormGetResponses,
V2SessionFormListErrors,
V2SessionFormListResponses,
V2SessionFormReplyErrors,
V2SessionFormReplyResponses,
V2SessionFormStateErrors,
V2SessionFormStateResponses,
V2SessionGetErrors,
V2SessionGetResponses,
V2SessionInterruptErrors,
@ -5342,6 +5358,193 @@ export class Context extends HeyApiClient {
}
}
export class Form extends HeyApiClient {
/**
* List session forms
*
* Retrieve pending forms for a session.
*/
public list<ThrowOnError extends boolean = false>(
parameters: {
sessionID: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams([parameters], [{ args: [{ in: "path", key: "sessionID" }] }])
return (options?.client ?? this.client).get<V2SessionFormListResponses, V2SessionFormListErrors, ThrowOnError>({
url: "/api/session/{sessionID}/form",
...options,
...params,
})
}
/**
* Create session form
*
* Create a form for a session.
*/
public create<ThrowOnError extends boolean = false>(
parameters: {
sessionID: string
formCreatePayload: FormCreatePayload2
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "path", key: "sessionID" },
{ key: "formCreatePayload", map: "body" },
],
},
],
)
return (options?.client ?? this.client).post<V2SessionFormCreateResponses, V2SessionFormCreateErrors, ThrowOnError>(
{
url: "/api/session/{sessionID}/form",
...options,
...params,
headers: {
"Content-Type": "application/json",
...options?.headers,
...params.headers,
},
},
)
}
/**
* Get session form
*
* Retrieve a form for a session.
*/
public get<ThrowOnError extends boolean = false>(
parameters: {
sessionID: string
formID: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "path", key: "sessionID" },
{ in: "path", key: "formID" },
],
},
],
)
return (options?.client ?? this.client).get<V2SessionFormGetResponses, V2SessionFormGetErrors, ThrowOnError>({
url: "/api/session/{sessionID}/form/{formID}",
...options,
...params,
})
}
/**
* Get form state
*
* Retrieve the current state for a form.
*/
public state<ThrowOnError extends boolean = false>(
parameters: {
sessionID: string
formID: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "path", key: "sessionID" },
{ in: "path", key: "formID" },
],
},
],
)
return (options?.client ?? this.client).get<V2SessionFormStateResponses, V2SessionFormStateErrors, ThrowOnError>({
url: "/api/session/{sessionID}/form/{formID}/state",
...options,
...params,
})
}
/**
* Reply to form
*
* Submit an answer to a pending form.
*/
public reply<ThrowOnError extends boolean = false>(
parameters: {
sessionID: string
formID: string
formReply: FormReply2
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "path", key: "sessionID" },
{ in: "path", key: "formID" },
{ key: "formReply", map: "body" },
],
},
],
)
return (options?.client ?? this.client).post<V2SessionFormReplyResponses, V2SessionFormReplyErrors, ThrowOnError>({
url: "/api/session/{sessionID}/form/{formID}/reply",
...options,
...params,
headers: {
"Content-Type": "application/json",
...options?.headers,
...params.headers,
},
})
}
/**
* Cancel form
*
* Cancel a pending form.
*/
public cancel<ThrowOnError extends boolean = false>(
parameters: {
sessionID: string
formID: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "path", key: "sessionID" },
{ in: "path", key: "formID" },
],
},
],
)
return (options?.client ?? this.client).post<V2SessionFormCancelResponses, V2SessionFormCancelErrors, ThrowOnError>(
{
url: "/api/session/{sessionID}/form/{formID}/cancel",
...options,
...params,
},
)
}
}
export class Permission2 extends HeyApiClient {
/**
* List session permission requests
@ -6235,6 +6438,11 @@ export class Session3 extends HeyApiClient {
return (this._context ??= new Context({ client: this.client }))
}
private _form?: Form
get form(): Form {
return (this._form ??= new Form({ client: this.client }))
}
private _permission?: Permission2
get permission(): Permission2 {
return (this._permission ??= new Permission2({ client: this.client }))
@ -6839,6 +7047,37 @@ export class Project2 extends HeyApiClient {
}
export class Request extends HeyApiClient {
/**
* List pending form requests
*
* Retrieve pending forms for a location.
*/
public list<ThrowOnError extends boolean = false>(
parameters?: {
location?: {
directory?: string | null
workspace?: string | null
} | null
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "location" }] }])
return (options?.client ?? this.client).get<V2FormRequestListResponses, V2FormRequestListErrors, ThrowOnError>({
url: "/api/form/request",
...options,
...params,
})
}
}
export class Form2 extends HeyApiClient {
private _request?: Request
get request(): Request {
return (this._request ??= new Request({ client: this.client }))
}
}
export class Request2 extends HeyApiClient {
/**
* List pending permission requests
*
@ -6915,9 +7154,9 @@ export class Saved extends HeyApiClient {
}
export class Permission3 extends HeyApiClient {
private _request?: Request
get request(): Request {
return (this._request ??= new Request({ client: this.client }))
private _request?: Request2
get request(): Request2 {
return (this._request ??= new Request2({ client: this.client }))
}
private _saved?: Saved
@ -7519,7 +7758,7 @@ export class Shell extends HeyApiClient {
}
}
export class Request2 extends HeyApiClient {
export class Request3 extends HeyApiClient {
/**
* List pending question requests
*
@ -7548,9 +7787,9 @@ export class Request2 extends HeyApiClient {
}
export class Question3 extends HeyApiClient {
private _request?: Request2
get request(): Request2 {
return (this._request ??= new Request2({ client: this.client }))
private _request?: Request3
get request(): Request3 {
return (this._request ??= new Request3({ client: this.client }))
}
}
@ -7755,6 +7994,11 @@ export class V2 extends HeyApiClient {
return (this._project ??= new Project2({ client: this.client }))
}
private _form?: Form2
get form(): Form2 {
return (this._form ??= new Form2({ client: this.client }))
}
private _permission?: Permission3
get permission(): Permission3 {
return (this._permission ??= new Permission3({ client: this.client }))

View file

@ -77,6 +77,9 @@ export type Event =
| EventQuestionV2Asked
| EventQuestionV2Replied
| EventQuestionV2Rejected
| EventFormCreated
| EventFormReplied
| EventFormCancelled
| EventTodoUpdated
| EventLspUpdated
| EventPermissionAsked
@ -1475,6 +1478,30 @@ export type GlobalEvent = {
requestID: string
}
}
| {
id: string
type: "form.created"
properties: {
form: FormFormInfo | FormUrlInfo
}
}
| {
id: string
type: "form.replied"
properties: {
id: string
sessionID: string
answer: FormAnswer
}
}
| {
id: string
type: "form.cancelled"
properties: {
id: string
sessionID: string
}
}
| {
id: string
type: "todo.updated"
@ -2941,6 +2968,24 @@ export type ProviderNotFoundError = {
message: string
}
export type FormNotFoundError = {
_tag: "FormNotFoundError"
id: string
message: string
}
export type FormAlreadySettledError = {
_tag: "FormAlreadySettledError"
id: string
message: string
}
export type FormInvalidAnswerError = {
_tag: "FormInvalidAnswerError"
id: string
message: string
}
export type OutputFormat1 =
| {
type: "text"
@ -3097,6 +3142,9 @@ export type V2Event =
| QuestionV2Asked
| QuestionV2Replied
| QuestionV2Rejected
| FormCreated
| FormReplied
| FormCancelled
| TodoUpdated
| LspUpdated
| PermissionAsked
@ -3370,6 +3418,121 @@ export type QuestionV2Tool = {
export type QuestionV2Answer = Array<string>
export type FormMetadata = {
[key: string]: unknown
}
export type FormWhen = {
key: string
op: "eq" | "neq"
value: string
}
export type FormOption = {
value: string
label: string
description?: string
}
export type FormStringField = {
key: string
title?: string
description?: string
required?: boolean
when?: FormWhen
type: "string"
format?: "email" | "uri" | "date" | "date-time"
minLength?: number
maxLength?: number
pattern?: string
placeholder?: string
default?: string
options?: Array<FormOption>
custom?: boolean
}
export type FormNumberField = {
key: string
title?: string
description?: string
required?: boolean
when?: FormWhen
type: "number"
minimum?: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN"
maximum?: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN"
default?: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN"
}
export type FormIntegerField = {
key: string
title?: string
description?: string
required?: boolean
when?: FormWhen
type: "integer"
minimum?: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN"
maximum?: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN"
default?: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN"
}
export type FormBooleanField = {
key: string
title?: string
description?: string
required?: boolean
when?: FormWhen
type: "boolean"
default?: boolean
}
export type FormMultiselectField = {
key: string
title?: string
description?: string
required?: boolean
when?: FormWhen
type: "multiselect"
options: Array<FormOption>
minItems?: number
maxItems?: number
custom?: boolean
default?: Array<string>
}
export type FormFormInfo = {
id: string
sessionID: string
title?: string
metadata?: FormMetadata
mode: "form"
fields: Array<FormStringField | FormNumberField | FormIntegerField | FormBooleanField | FormMultiselectField>
}
export type FormUrlInfo = {
id: string
sessionID: string
title?: string
metadata?: FormMetadata
mode: "url"
url: string
}
export type FormValue =
| string
| number
| "NaN"
| "Infinity"
| "-Infinity"
| "Infinity"
| "-Infinity"
| "NaN"
| boolean
| Array<string>
export type FormAnswer = {
[key: string]: FormValue
}
export type ProjectVcs = "git"
export type ProjectIcon = {
@ -5391,6 +5554,31 @@ export type ProjectCurrent = {
directory: string
}
export type FormCreatePayload = {
id?: string
title?: string
metadata?: FormMetadata
mode: "form" | "url"
fields?: Array<FormStringField | FormNumberField | FormIntegerField | FormBooleanField | FormMultiselectField>
url?: string
}
export type FormState =
| {
status: "pending"
}
| {
status: "answered"
answer: FormAnswer
}
| {
status: "cancelled"
}
export type FormReply = {
answer: FormAnswer
}
export type PermissionV2Request = {
id: string
sessionID: string
@ -6194,6 +6382,86 @@ export type QuestionV2Rejected = {
}
}
export type FormNumberField1 = {
key: string
title?: string
description?: string
required?: boolean
when?: FormWhen
type: "number"
minimum?: number | "NaN" | "Infinity" | "-Infinity"
maximum?: number | "NaN" | "Infinity" | "-Infinity"
default?: number | "NaN" | "Infinity" | "-Infinity"
}
export type FormIntegerField1 = {
key: string
title?: string
description?: string
required?: boolean
when?: FormWhen
type: "integer"
minimum?: number | "NaN" | "Infinity" | "-Infinity"
maximum?: number | "NaN" | "Infinity" | "-Infinity"
default?: number | "NaN" | "Infinity" | "-Infinity"
}
export type FormCreated = {
id: string
metadata?: {
[key: string]: unknown
}
type: "form.created"
durable?: {
aggregateID: string
seq: number
version: number
}
location?: LocationRef
data: {
form: FormFormInfo | FormUrlInfo
}
}
export type FormValue1 = string | number | "NaN" | "Infinity" | "-Infinity" | boolean | Array<string>
export type FormReplied = {
id: string
metadata?: {
[key: string]: unknown
}
type: "form.replied"
durable?: {
aggregateID: string
seq: number
version: number
}
location?: LocationRef
data: {
id: string
sessionID: string
answer: FormAnswer
}
}
export type FormCancelled = {
id: string
metadata?: {
[key: string]: unknown
}
type: "form.cancelled"
durable?: {
aggregateID: string
seq: number
version: number
}
location?: LocationRef
data: {
id: string
sessionID: string
}
}
export type TodoUpdated = {
id: string
metadata?: {
@ -7505,6 +7773,57 @@ export type EventQuestionV2Rejected = {
}
}
export type FormNumberField2 = {
key: string
title?: string
description?: string
required?: boolean
when?: FormWhen
type: "number"
minimum?: number | "NaN" | "Infinity" | "-Infinity"
maximum?: number | "NaN" | "Infinity" | "-Infinity"
default?: number | "NaN" | "Infinity" | "-Infinity"
}
export type FormIntegerField2 = {
key: string
title?: string
description?: string
required?: boolean
when?: FormWhen
type: "integer"
minimum?: number | "NaN" | "Infinity" | "-Infinity"
maximum?: number | "NaN" | "Infinity" | "-Infinity"
default?: number | "NaN" | "Infinity" | "-Infinity"
}
export type EventFormCreated = {
id: string
type: "form.created"
properties: {
form: FormFormInfo | FormUrlInfo
}
}
export type EventFormReplied = {
id: string
type: "form.replied"
properties: {
id: string
sessionID: string
answer: FormAnswer
}
}
export type EventFormCancelled = {
id: string
type: "form.cancelled"
properties: {
id: string
sessionID: string
}
}
export type EventTodoUpdated = {
id: string
type: "todo.updated"
@ -9333,6 +9652,166 @@ export type ProjectDirectory2 = {
export type ProjectDirectories2 = Array<ProjectDirectory2>
export type FormMetadata2 = {
[key: string]: unknown
}
export type FormWhen2 = {
key: string
op: "eq" | "neq"
value: string
}
export type FormOption2 = {
value: string
label: string
description?: string
}
export type FormStringField2 = {
key: string
title?: string
description?: string
required?: boolean
when?: FormWhen2
type: "string"
format?: "email" | "uri" | "date" | "date-time"
minLength?: number
maxLength?: number
pattern?: string
placeholder?: string
default?: string
options?: Array<FormOption2>
custom?: boolean
}
export type FormNumberField3 = {
key: string
title?: string
description?: string
required?: boolean
when?: FormWhen2
type: "number"
minimum?: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN"
maximum?: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN"
default?: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN"
}
export type FormIntegerField3 = {
key: string
title?: string
description?: string
required?: boolean
when?: FormWhen2
type: "integer"
minimum?: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN"
maximum?: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN"
default?: number | "NaN" | "Infinity" | "-Infinity" | "Infinity" | "-Infinity" | "NaN"
}
export type FormBooleanField2 = {
key: string
title?: string
description?: string
required?: boolean
when?: FormWhen2
type: "boolean"
default?: boolean
}
export type FormMultiselectField2 = {
key: string
title?: string
description?: string
required?: boolean
when?: FormWhen2
type: "multiselect"
options: Array<FormOption2>
minItems?: number
maxItems?: number
custom?: boolean
default?: Array<string>
}
export type FormFormInfo2 = {
id: string
sessionID: string
title?: string
metadata?: FormMetadata2
mode: "form"
fields: Array<FormStringField2 | FormNumberField3 | FormIntegerField3 | FormBooleanField2 | FormMultiselectField2>
}
export type FormUrlInfo2 = {
id: string
sessionID: string
title?: string
metadata?: FormMetadata2
mode: "url"
url: string
}
export type FormCreatePayload2 = {
id?: string | null
title?: string
metadata?: FormMetadata2
mode: "form" | "url"
fields?: Array<
FormStringField2 | FormNumberField3 | FormIntegerField3 | FormBooleanField2 | FormMultiselectField2
> | null
url?: string | null
}
export type FormNotFoundErrorV2 = {
_tag: "FormNotFoundError"
id: string
message: string
}
export type FormValue2 =
| string
| number
| "NaN"
| "Infinity"
| "-Infinity"
| "Infinity"
| "-Infinity"
| "NaN"
| boolean
| Array<string>
export type FormAnswer2 = {
[key: string]: FormValue2
}
export type FormState2 =
| {
status: "pending"
}
| {
status: "answered"
answer: FormAnswer2
}
| {
status: "cancelled"
}
export type FormReply2 = {
answer: FormAnswer2
}
export type FormAlreadySettledErrorV2 = {
_tag: "FormAlreadySettledError"
id: string
message: string
}
export type FormInvalidAnswerErrorV2 = {
_tag: "FormInvalidAnswerError"
id: string
message: string
}
export type PermissionV2Source2 = {
type: "tool"
messageID: string
@ -10619,6 +11098,112 @@ export type QuestionV2Rejected2 = {
}
}
export type FormMetadata1 = {
[key: string]: unknown
}
export type FormNumberField12 = {
key: string
title?: string
description?: string
required?: boolean
when?: FormWhen2
type: "number"
minimum?: number | "NaN" | "Infinity" | "-Infinity"
maximum?: number | "NaN" | "Infinity" | "-Infinity"
default?: number | "NaN" | "Infinity" | "-Infinity"
}
export type FormIntegerField12 = {
key: string
title?: string
description?: string
required?: boolean
when?: FormWhen2
type: "integer"
minimum?: number | "NaN" | "Infinity" | "-Infinity"
maximum?: number | "NaN" | "Infinity" | "-Infinity"
default?: number | "NaN" | "Infinity" | "-Infinity"
}
export type FormFormInfo1 = {
id: string
sessionID: string
title?: string
metadata?: FormMetadata1
mode: "form"
fields: Array<FormStringField2 | FormNumberField12 | FormIntegerField12 | FormBooleanField2 | FormMultiselectField2>
}
export type FormUrlInfo1 = {
id: string
sessionID: string
title?: string
metadata?: FormMetadata1
mode: "url"
url: string
}
export type FormCreated2 = {
id: string
metadata?: {
[key: string]: unknown
}
type: "form.created"
durable?: {
aggregateID: string
seq: number
version: number
}
location?: LocationRef2
data: {
form: FormFormInfo1 | FormUrlInfo1
}
}
export type FormValue12 = string | number | "NaN" | "Infinity" | "-Infinity" | boolean | Array<string>
export type FormAnswer1 = {
[key: string]: FormValue12
}
export type FormReplied2 = {
id: string
metadata?: {
[key: string]: unknown
}
type: "form.replied"
durable?: {
aggregateID: string
seq: number
version: number
}
location?: LocationRef2
data: {
id: string
sessionID: string
answer: FormAnswer1
}
}
export type FormCancelled2 = {
id: string
metadata?: {
[key: string]: unknown
}
type: "form.cancelled"
durable?: {
aggregateID: string
seq: number
version: number
}
location?: LocationRef2
data: {
id: string
sessionID: string
}
}
export type TodoV2 = {
/**
* Brief description of the task
@ -11131,6 +11716,9 @@ export type V2EventV2 =
| QuestionV2Asked2
| QuestionV2Replied2
| QuestionV2Rejected2
| FormCreated2
| FormReplied2
| FormCancelled2
| TodoUpdated2
| SessionStatusV22
| SessionIdle2
@ -17268,6 +17856,277 @@ export type V2ProjectDirectoriesResponses = {
export type V2ProjectDirectoriesResponse = V2ProjectDirectoriesResponses[keyof V2ProjectDirectoriesResponses]
export type V2FormRequestListData = {
body?: never
path?: never
query?: {
location?: {
directory?: string | null
workspace?: string | null
} | null
}
url: "/api/form/request"
}
export type V2FormRequestListErrors = {
/**
* InvalidRequestError
*/
400: InvalidRequestErrorV2
/**
* UnauthorizedError
*/
401: UnauthorizedErrorV2
}
export type V2FormRequestListError = V2FormRequestListErrors[keyof V2FormRequestListErrors]
export type V2FormRequestListResponses = {
/**
* Success
*/
200: {
location: LocationInfo2
data: Array<FormFormInfo2 | FormUrlInfo2>
}
}
export type V2FormRequestListResponse = V2FormRequestListResponses[keyof V2FormRequestListResponses]
export type V2SessionFormListData = {
body?: never
path: {
sessionID: string
}
query?: never
url: "/api/session/{sessionID}/form"
}
export type V2SessionFormListErrors = {
/**
* InvalidRequestError
*/
400: InvalidRequestErrorV2
/**
* UnauthorizedError
*/
401: UnauthorizedErrorV2
/**
* SessionNotFoundError
*/
404: SessionNotFoundErrorV2
}
export type V2SessionFormListError = V2SessionFormListErrors[keyof V2SessionFormListErrors]
export type V2SessionFormListResponses = {
/**
* Success
*/
200: {
data: Array<FormFormInfo2 | FormUrlInfo2>
}
}
export type V2SessionFormListResponse = V2SessionFormListResponses[keyof V2SessionFormListResponses]
export type V2SessionFormCreateData = {
body: FormCreatePayload2
path: {
sessionID: string
}
query?: never
url: "/api/session/{sessionID}/form"
}
export type V2SessionFormCreateErrors = {
/**
* InvalidRequestError
*/
400: InvalidRequestError1 | InvalidRequestErrorV2
/**
* UnauthorizedError
*/
401: UnauthorizedErrorV2
/**
* SessionNotFoundError
*/
404: SessionNotFoundErrorV2
/**
* ConflictError
*/
409: ConflictErrorV2
}
export type V2SessionFormCreateError = V2SessionFormCreateErrors[keyof V2SessionFormCreateErrors]
export type V2SessionFormCreateResponses = {
/**
* Success
*/
200: {
data: FormFormInfo2 | FormUrlInfo2
}
}
export type V2SessionFormCreateResponse = V2SessionFormCreateResponses[keyof V2SessionFormCreateResponses]
export type V2SessionFormGetData = {
body?: never
path: {
sessionID: string
formID: string
}
query?: never
url: "/api/session/{sessionID}/form/{formID}"
}
export type V2SessionFormGetErrors = {
/**
* InvalidRequestError
*/
400: InvalidRequestErrorV2
/**
* UnauthorizedError
*/
401: UnauthorizedErrorV2
/**
* SessionNotFoundError | FormNotFoundError
*/
404: FormNotFoundErrorV2 | SessionNotFoundErrorV2
}
export type V2SessionFormGetError = V2SessionFormGetErrors[keyof V2SessionFormGetErrors]
export type V2SessionFormGetResponses = {
/**
* Success
*/
200: {
data: FormFormInfo2 | FormUrlInfo2
}
}
export type V2SessionFormGetResponse = V2SessionFormGetResponses[keyof V2SessionFormGetResponses]
export type V2SessionFormStateData = {
body?: never
path: {
sessionID: string
formID: string
}
query?: never
url: "/api/session/{sessionID}/form/{formID}/state"
}
export type V2SessionFormStateErrors = {
/**
* InvalidRequestError
*/
400: InvalidRequestErrorV2
/**
* UnauthorizedError
*/
401: UnauthorizedErrorV2
/**
* SessionNotFoundError | FormNotFoundError
*/
404: FormNotFoundErrorV2 | SessionNotFoundErrorV2
}
export type V2SessionFormStateError = V2SessionFormStateErrors[keyof V2SessionFormStateErrors]
export type V2SessionFormStateResponses = {
/**
* Success
*/
200: {
data: FormState2
}
}
export type V2SessionFormStateResponse = V2SessionFormStateResponses[keyof V2SessionFormStateResponses]
export type V2SessionFormReplyData = {
body: FormReply2
path: {
sessionID: string
formID: string
}
query?: never
url: "/api/session/{sessionID}/form/{formID}/reply"
}
export type V2SessionFormReplyErrors = {
/**
* FormInvalidAnswerError | InvalidRequestError
*/
400: FormInvalidAnswerErrorV2 | InvalidRequestErrorV2
/**
* UnauthorizedError
*/
401: UnauthorizedErrorV2
/**
* SessionNotFoundError | FormNotFoundError
*/
404: FormNotFoundErrorV2 | SessionNotFoundErrorV2
/**
* FormAlreadySettledError
*/
409: FormAlreadySettledErrorV2
}
export type V2SessionFormReplyError = V2SessionFormReplyErrors[keyof V2SessionFormReplyErrors]
export type V2SessionFormReplyResponses = {
/**
* <No Content>
*/
204: void
}
export type V2SessionFormReplyResponse = V2SessionFormReplyResponses[keyof V2SessionFormReplyResponses]
export type V2SessionFormCancelData = {
body?: never
path: {
sessionID: string
formID: string
}
query?: never
url: "/api/session/{sessionID}/form/{formID}/cancel"
}
export type V2SessionFormCancelErrors = {
/**
* InvalidRequestError
*/
400: InvalidRequestErrorV2
/**
* UnauthorizedError
*/
401: UnauthorizedErrorV2
/**
* SessionNotFoundError | FormNotFoundError
*/
404: FormNotFoundErrorV2 | SessionNotFoundErrorV2
/**
* FormAlreadySettledError
*/
409: FormAlreadySettledErrorV2
}
export type V2SessionFormCancelError = V2SessionFormCancelErrors[keyof V2SessionFormCancelErrors]
export type V2SessionFormCancelResponses = {
/**
* <No Content>
*/
204: void
}
export type V2SessionFormCancelResponse = V2SessionFormCancelResponses[keyof V2SessionFormCancelResponses]
export type V2PermissionRequestListData = {
body?: never
path?: never