Package ai.vectros.types
Class SchemaRequest
java.lang.Object
ai.vectros.types.SchemaRequest
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfacestatic final classstatic interfacestatic interface -
Method Summary
Modifier and TypeMethodDescriptionstatic SchemaRequest.TypeNameStagebuilder()booleaninthashCode()toString()
-
Method Details
-
getTypeName
- Returns:
- Unique type identifier for this schema. Immutable after creation.
-
getDisplayName
- Returns:
- Human-readable display name for this type, shown in UIs.
-
getDescription
- Returns:
- Optional description of what this schema is for.
-
getFields
- Returns:
- Field definitions used to validate record payloads. Omit for a bare schema that performs no payload validation.
-
getLookupFields
- Returns:
- Payload fields to index for direct lookup queries. Maximum 10 lookup fields.
-
getRenderHints
- Returns:
- UI rendering hints keyed by field id.
-
getCapabilities
- Returns:
- Feature flags for this schema.
auditHistory(default true) controls whether a change-history (version) trail is kept for this type's data; setting it false stops recording the trail but never affects your record or document data itself.readAccessLog(default false; opt-in) controls accounting-of-disclosures logging: when true, each governed read of this schema's records writes a retained, subject-enumerable access record. The effective value resolves in order: this schema flag, then your context's default, then the platform default (false).
-
getIndexMode
- Returns:
- Default search-index mode for instances of this type — applies to records of this type and to documents bound to this schema, unless the individual record or document sets its own indexMode. HYBRID, SEMANTIC, and TEXT make content searchable; NONE is store-only (the data is persisted, retrievable, and usable for lookups, but not searchable). Omit for no default: a record with no indexMode of its own then defaults to NONE, and a document with no indexMode is rejected.
-
getStorageProfile
- Returns:
- Where this type's payload is stored. STANDARD (default): payloads of 4 KB or larger are externalized to S3, smaller ones are stored inline. LOW_LATENCY: always store inline for the lowest read latency. LARGE_PAYLOAD: always externalize to S3, which lifts the 400 KB item-size ceiling. For externalized types, list and lookup responses return only the indexed projection unless you pass
includePayload=true.
-
getAllowedSurfaces
- Returns:
- Which typed surfaces may bind this schema by its id:
record,document,user, orentity. Required and must be non-empty. Identity entities in ANY namespace —org,client, or one you registered, such asteam— bind under the singleentitysurface; use the schema'stypeNameto distinguish them, not the surface. A schema may list several surfaces (for a shared type usable on both records and documents). This drives surface-scoped schema listing (GET /v1/schemas?surface=) and is enforced at bind time — for example, a document cannot bind a record-only schema. Auser-surfaced schema is control-plane managed and can only be created, updated, or deleted with a root API key — a partner user is tenant-global, so its schema has one tenant-wide home. Anentity-surfaced schema, by contrast, is writable by an ordinary scoped credential holdingschemas:c/u/d, and is homed in that credential's own app context.record/documentschemas are unaffected either way — any credential holding the matching scope may write them, as before.
-
getActive
- Returns:
- Whether this schema is active. An inactive schema rejects creation of new records of its type.
-
getUserId
- Returns:
- Owning user — the Vectros-assigned UUID of a user in your account. Optional; omit to create an account-wide shared schema. With an API key, this sets the schema's owner explicitly. With a scoped token the owning user is attributed by the server from your credential and cannot be set to a different user; supplying one that conflicts is rejected.
-
getScopes
- Returns:
- The schema's scope ownership, as
namespace:valueentries (at most 2 namespaces) — for example["org:6ba7b810-9dad-11d1-80b4-00c04fd430c8", "group:eng-team"].organdclientare reserved namespace names, registered like any other; others are namespaces you registered yourself (lowercase, 2-32 chars). Avalueis 1-128 characters: a letter or digit first, then letters, digits,_or-. Resolve a namespace's UUID from your own identifier withGET /v1/entities/{namespace}?externalId=. Optional — omit for an account-wide shared schema. When supplied, this is the schema's COMPLETE scope declaration: each entry must fall inside thedata_scopeof a single clause of your credential that also grants this write — your identity supplies the DEFAULT value when you state none, it does not limit which value you may state. On update, omit to leave ownership unchanged, or supply the complete new selection ([]clears it). Filter lists by these values with?scope=.
-
getBasedOn
- Returns:
- The id of an existing schema this one is a CUSTOMIZATION of, when a schema named
typeNamealready exists in this context — required in that case (a same-named schema without it is rejected: "specify basedOn"), and must be omitted when this create is the FIRST schema under that name (it becomes that name's shared base, and must be created with nouserId/scopes— a root/unscoped credential). Must point directly at the base (one hop); a variant of a variant is not yet supported. Immutable once set. Every same-named schema in a context is provably related through this chain — see the recordType-shadowing design doc.
-
equals
-
getAdditionalProperties
-
hashCode
public int hashCode() -
toString
-
builder
-