SAService Architect Back to designer
SAService ArchitectDocumentation
Python API reference struct_type() | array_type() | map_type() | custom_type()

Struct, array, map, and custom types

Compose container types and target-language or schema-defined contracts from registered type objects.

When to use

Use these factories for domain payloads, collections, maps, Protobuf/OpenAPI messages, and custom native definitions.

Behavior

  • array_type stores one value_type reference.
  • map_type stores key_type and value_type references.
  • struct_type supports inline target definitions/imports and a definition format.
  • custom_type represents custom target-language definitions without a container contract.

project.array_type() properties

Repeated values.

PropertyTypeDescription
namestr

Human-readable name. A stable camelCase key is derived and registered on the Project.

Required
descriptionstr | None

Documentation emitted with the generated type.

Default: None
public_typebool | None

Make the type reusable through a project Module.

Default: None
moduleModule | LOCAL_MODULE | None

Owner of a public type. Use an object, not a module-name string.

Default: None
packagePackage | None

Typed package metadata object.

Default: None
value_typeTypeDefinition | DataType

Element contract.

Required

project.map_type() properties

Key/value collection.

PropertyTypeDescription
namestr

Human-readable name. A stable camelCase key is derived and registered on the Project.

Required
descriptionstr | None

Documentation emitted with the generated type.

Default: None
public_typebool | None

Make the type reusable through a project Module.

Default: None
moduleModule | LOCAL_MODULE | None

Owner of a public type. Use an object, not a module-name string.

Default: None
packagePackage | None

Typed package metadata object.

Default: None
key_typeTypeDefinition | DataType

Map key contract.

Required
value_typeTypeDefinition | DataType

Map value contract.

Required

project.struct_type() properties

Structured/message contract.

PropertyTypeDescription
namestr

Human-readable name. A stable camelCase key is derived and registered on the Project.

Required
descriptionstr | None

Documentation emitted with the generated type.

Default: None
public_typebool | None

Make the type reusable through a project Module.

Default: None
moduleModule | LOCAL_MODULE | None

Owner of a public type. Use an object, not a module-name string.

Default: None
packagePackage | None

Typed package metadata object.

Default: None
transfer_by_valuebool | None

Target-language value-transfer hint.

Default: None
definition_formatTypeDefinitionFormat | None

Native, Protobuf, FlatBuffers, CapNProto, or OpenAPI.

Default: None
type_definitionstr | None

Inline target/schema definition.

Default: None
type_importstr | None

Inline import metadata.

Default: None

project.custom_type() properties

Custom target definitions.

PropertyTypeDescription
namestr

Human-readable name. A stable camelCase key is derived and registered on the Project.

Required
descriptionstr | None

Documentation emitted with the generated type.

Default: None
public_typebool | None

Make the type reusable through a project Module.

Default: None
moduleModule | LOCAL_MODULE | None

Owner of a public type. Use an object, not a module-name string.

Default: None
packagePackage | None

Typed package metadata object.

Default: None
type_definitionstr | None

Inline target-language definition.

Default: None
type_importstr | None

Inline target-language import.

Default: None
definition_formatTypeDefinitionFormat | None

Definition interpretation.

Default: None

Python example

order_list = project.array_type("Orders", value_type=order)
order_by_id = project.map_type(
    "Order By ID",
    key_type=DataType.STRING,
    value_type=order,
)
api_order = project.struct_type(
    "API Order",
    definition_format=TypeDefinitionFormat.OPENAPI,
    type_definition=openapi_schema,
)