Skip to content

Form

24 types. Import any of them from opencode.types.

FormAnswer module-attribute

FormAnswer: TypeAlias = dict[str, FormValue]

FormBooleanField

key instance-attribute

key: str

title class-attribute instance-attribute

title: str | None = Field(default=None, exclude_if=is_none)

description class-attribute instance-attribute

description: str | None = Field(
    default=None, exclude_if=is_none
)

required class-attribute instance-attribute

required: bool | None = Field(
    default=None, exclude_if=is_none
)

hidden class-attribute instance-attribute

hidden: bool | None = Field(
    default=None, exclude_if=is_none
)

when class-attribute instance-attribute

when: list[FormWhen] | None = Field(
    default=None, exclude_if=is_none
)

type class-attribute instance-attribute

type: Literal['boolean'] = 'boolean'

default class-attribute instance-attribute

default: bool | None = Field(
    default=None, exclude_if=is_none
)

FormCancelledEventData

id instance-attribute

id: FormID

session_id class-attribute instance-attribute

session_id: str = Field(
    validation_alias="sessionID",
    serialization_alias="sessionID",
)

FormCreatedEventData

form instance-attribute

form: FormInfo

FormDetail

id instance-attribute

id: FormID

session_id class-attribute instance-attribute

session_id: str = Field(
    validation_alias="sessionID",
    serialization_alias="sessionID",
)

title instance-attribute

title: str

metadata class-attribute instance-attribute

metadata: FormMetadata | None = Field(
    default=None, exclude_if=is_none
)

fields instance-attribute

fields: FormFields

state instance-attribute

state: FormState

FormExternalField

key instance-attribute

key: str

type class-attribute instance-attribute

type: Literal['external'] = 'external'

url instance-attribute

url: str

title class-attribute instance-attribute

title: str | None = Field(default=None, exclude_if=is_none)

description class-attribute instance-attribute

description: str | None = Field(
    default=None, exclude_if=is_none
)

FormField module-attribute

FormField: TypeAlias = Annotated[
    Annotated[FormStringField, Tag("string")]
    | Annotated[FormNumberField, Tag("number")]
    | Annotated[FormIntegerField, Tag("integer")]
    | Annotated[FormBooleanField, Tag("boolean")]
    | Annotated[FormMultiselectField, Tag("multiselect")]
    | Annotated[FormExternalField, Tag("external")]
    | Annotated[UnknownFormField, Tag("__unknown__")],
    Discriminator(
        discriminator(
            "type",
            "type",
            [
                "string",
                "number",
                "integer",
                "boolean",
                "multiselect",
                "external",
            ],
        )
    ),
]

FormFields module-attribute

FormFields: TypeAlias = list[FormField]

FormID module-attribute

FormID: TypeAlias = str

FormInfo

id instance-attribute

id: FormID

session_id class-attribute instance-attribute

session_id: str = Field(
    validation_alias="sessionID",
    serialization_alias="sessionID",
)

title instance-attribute

title: str

metadata class-attribute instance-attribute

metadata: FormMetadata | None = Field(
    default=None, exclude_if=is_none
)

fields instance-attribute

fields: FormFields

FormIntegerField

key instance-attribute

key: str

title class-attribute instance-attribute

title: str | None = Field(default=None, exclude_if=is_none)

description class-attribute instance-attribute

description: str | None = Field(
    default=None, exclude_if=is_none
)

required class-attribute instance-attribute

required: bool | None = Field(
    default=None, exclude_if=is_none
)

hidden class-attribute instance-attribute

hidden: bool | None = Field(
    default=None, exclude_if=is_none
)

when class-attribute instance-attribute

when: list[FormWhen] | None = Field(
    default=None, exclude_if=is_none
)

type class-attribute instance-attribute

type: Literal['integer'] = 'integer'

minimum class-attribute instance-attribute

minimum: (
    float
    | OpenEnum[Literal["Infinity", "-Infinity", "NaN"]]
    | None
) = Field(default=None, exclude_if=is_none)

maximum class-attribute instance-attribute

maximum: (
    float
    | OpenEnum[Literal["Infinity", "-Infinity", "NaN"]]
    | None
) = Field(default=None, exclude_if=is_none)

default class-attribute instance-attribute

default: (
    float
    | OpenEnum[Literal["Infinity", "-Infinity", "NaN"]]
    | None
) = Field(default=None, exclude_if=is_none)

FormListResponse

location instance-attribute

data instance-attribute

data: list[FormInfo]

FormMetadata module-attribute

FormMetadata: TypeAlias = dict[str, Any]

FormMultiselectField

key instance-attribute

key: str

title class-attribute instance-attribute

title: str | None = Field(default=None, exclude_if=is_none)

description class-attribute instance-attribute

description: str | None = Field(
    default=None, exclude_if=is_none
)

required class-attribute instance-attribute

required: bool | None = Field(
    default=None, exclude_if=is_none
)

hidden class-attribute instance-attribute

hidden: bool | None = Field(
    default=None, exclude_if=is_none
)

when class-attribute instance-attribute

when: list[FormWhen] | None = Field(
    default=None, exclude_if=is_none
)

type class-attribute instance-attribute

type: Literal['multiselect'] = 'multiselect'

options instance-attribute

options: list[FormOption]

min_items class-attribute instance-attribute

min_items: int | None = Field(
    default=None,
    validation_alias="minItems",
    serialization_alias="minItems",
    exclude_if=is_none,
)

max_items class-attribute instance-attribute

max_items: int | None = Field(
    default=None,
    validation_alias="maxItems",
    serialization_alias="maxItems",
    exclude_if=is_none,
)

custom class-attribute instance-attribute

custom: bool | None = Field(
    default=None, exclude_if=is_none
)

default class-attribute instance-attribute

default: list[str] | None = Field(
    default=None, exclude_if=is_none
)

FormNumberField

key instance-attribute

key: str

title class-attribute instance-attribute

title: str | None = Field(default=None, exclude_if=is_none)

description class-attribute instance-attribute

description: str | None = Field(
    default=None, exclude_if=is_none
)

required class-attribute instance-attribute

required: bool | None = Field(
    default=None, exclude_if=is_none
)

hidden class-attribute instance-attribute

hidden: bool | None = Field(
    default=None, exclude_if=is_none
)

when class-attribute instance-attribute

when: list[FormWhen] | None = Field(
    default=None, exclude_if=is_none
)

type class-attribute instance-attribute

type: Literal['number'] = 'number'

minimum class-attribute instance-attribute

minimum: (
    float
    | OpenEnum[Literal["Infinity", "-Infinity", "NaN"]]
    | None
) = Field(default=None, exclude_if=is_none)

maximum class-attribute instance-attribute

maximum: (
    float
    | OpenEnum[Literal["Infinity", "-Infinity", "NaN"]]
    | None
) = Field(default=None, exclude_if=is_none)

default class-attribute instance-attribute

default: (
    float
    | OpenEnum[Literal["Infinity", "-Infinity", "NaN"]]
    | None
) = Field(default=None, exclude_if=is_none)

FormOption

value instance-attribute

value: str

label instance-attribute

label: str

description class-attribute instance-attribute

description: str | None = Field(
    default=None, exclude_if=is_none
)

FormRepliedEventData

id instance-attribute

id: FormID

session_id class-attribute instance-attribute

session_id: str = Field(
    validation_alias="sessionID",
    serialization_alias="sessionID",
)

answer instance-attribute

answer: FormAnswer

FormState module-attribute

FormState: TypeAlias = Annotated[
    Annotated[FormStatePending, Tag("pending")]
    | Annotated[FormStateAnswered, Tag("answered")]
    | Annotated[FormStateCancelled, Tag("cancelled")]
    | Annotated[UnknownFormState, Tag("__unknown__")],
    Discriminator(
        discriminator(
            "status",
            "status",
            ["pending", "answered", "cancelled"],
        )
    ),
]

FormStateAnswered

status class-attribute instance-attribute

status: Literal['answered'] = 'answered'

answer instance-attribute

answer: FormAnswer

FormStateCancelled

status class-attribute instance-attribute

status: Literal['cancelled'] = 'cancelled'

message class-attribute instance-attribute

message: str | None = Field(
    default=None, exclude_if=is_none
)

FormStatePending

status class-attribute instance-attribute

status: Literal['pending'] = 'pending'

FormStringField

key instance-attribute

key: str

title class-attribute instance-attribute

title: str | None = Field(default=None, exclude_if=is_none)

description class-attribute instance-attribute

description: str | None = Field(
    default=None, exclude_if=is_none
)

required class-attribute instance-attribute

required: bool | None = Field(
    default=None, exclude_if=is_none
)

hidden class-attribute instance-attribute

hidden: bool | None = Field(
    default=None, exclude_if=is_none
)

when class-attribute instance-attribute

when: list[FormWhen] | None = Field(
    default=None, exclude_if=is_none
)

type class-attribute instance-attribute

type: Literal['string'] = 'string'

format class-attribute instance-attribute

format: (
    OpenEnum[Literal["email", "uri", "date", "date-time"]]
    | None
) = Field(default=None, exclude_if=is_none)

min_length class-attribute instance-attribute

min_length: int | None = Field(
    default=None,
    validation_alias="minLength",
    serialization_alias="minLength",
    exclude_if=is_none,
)

max_length class-attribute instance-attribute

max_length: int | None = Field(
    default=None,
    validation_alias="maxLength",
    serialization_alias="maxLength",
    exclude_if=is_none,
)

pattern class-attribute instance-attribute

pattern: str | None = Field(
    default=None, exclude_if=is_none
)

placeholder class-attribute instance-attribute

placeholder: str | None = Field(
    default=None, exclude_if=is_none
)

default class-attribute instance-attribute

default: str | None = Field(
    default=None, exclude_if=is_none
)

options class-attribute instance-attribute

options: list[FormOption] | None = Field(
    default=None, exclude_if=is_none
)

custom class-attribute instance-attribute

custom: bool | None = Field(
    default=None, exclude_if=is_none
)

FormValue module-attribute

FormValue: TypeAlias = (
    str
    | float
    | OpenEnum[Literal["Infinity", "-Infinity", "NaN"]]
    | bool
    | list[str]
)

FormWhen

key instance-attribute

key: str

op instance-attribute

op: OpenEnum[Literal['eq', 'neq']]

value instance-attribute

value: (
    str
    | float
    | OpenEnum[Literal["Infinity", "-Infinity", "NaN"]]
    | bool
)