string or number. The type name
is namespaced: Identity.UUID, Contact.Email, Temporal.DateTime.
Send the wrong shape and the request fails with a 400 before anything
is applied.
The API Reference shows each field’s scalar.
The SDKs apply the same rules before the request is
sent. Catalog column metadata uses the same names (parableScalar,
scalarRef).
Examples below are the canonical (normalized) form. Many scalars accept
other spellings on the way in and rewrite them.
Artifact and Asset
Auth
Connector and Tap
Contact
Crypto
Design
Embedding
File
Finance
Generic
Geo
Identity
Ids use one UUID family everywhere. Prefer the base62 value you received
from the API when you send an id back.
Localization
Network
Parable
Parable.Permission values keep the tenant. prefix. That is the
permission identifier. User-facing copy still says Workspace.
Temporal
Integer counts are the unit in the name, and they are AMOUNTS of elapsed time, never points in time. UseTemporal.Minutes for a minute cadence,
not Temporal.Milliseconds unless you need sub-minute precision. An epoch
timestamp (“milliseconds since 1970”) is an instant, not an amount: declare
it Temporal.DateTime with x-temporal-format (below), never a count
scalar.
Declared epoch wire formats (x-temporal-format)
Some source APIs send an instant as a bare epoch count instead of ISO text:
Slack ts is unix seconds with a microsecond fraction, Gmail internalDate
is unix milliseconds, OTLP timeUnixNano is nanoseconds. The unit is not
recoverable from the value (1503435956 is seconds; 1786534524000 is
milliseconds; each is a plausible reading of the other), so it is never
guessed from digit count. The field stays Temporal.DateTime — the kind of
data is an instant either way — and the wire encoding is declared on the
property:
- JSON/YAML data schemas:
"x-temporal-format": "unix_millis"next to the$ref - TypeScript schemas:
@temporalFormat('unix_millis')
IncrementalTimeFormatEnum: unix,
unix_millis, unix_micros, unix_nanos. ISO text is the un-annotated
default, and an annotated column still accepts ISO text (canonical output is
a fixed point). The annotation is only valid on Temporal.DateTime; schema
gates and the mapping planner both enforce it, and the declared unit per
field is pinned in platform-schemas/validate — change it only with vendor
evidence.
Text
Validation errors
An invalid value fails the whole request with a400. The error names
the field and the rule it broke. Nothing is half-applied.