Class SchemaRequest.Builder
- All Implemented Interfaces:
SchemaRequest._FinalStage,SchemaRequest.DisplayNameStage,SchemaRequest.TypeNameStage
- Enclosing class:
SchemaRequest
-
Method Summary
Modifier and TypeMethodDescriptionWhether this schema is active.Whether this schema is active.addAllAllowedSurfaces(List<SchemaRequestAllowedSurfacesItem> allowedSurfaces) Which typed surfaces may bind this schema by its id:record,document,user, orentity.addAllowedSurfaces(SchemaRequestAllowedSurfacesItem allowedSurfaces) Which typed surfaces may bind this schema by its id:record,document,user, orentity.additionalProperties(Map<String, Object> additionalProperties) additionalProperty(String key, Object value) allowedSurfaces(List<SchemaRequestAllowedSurfacesItem> allowedSurfaces) Which typed surfaces may bind this schema by its id:record,document,user, orentity.The id of an existing schema this one is a CUSTOMIZATION of, when a schema namedtypeNamealready 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).The id of an existing schema this one is a CUSTOMIZATION of, when a schema namedtypeNamealready 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).build()capabilities(Map<String, Boolean> capabilities) Feature flags for this schema.capabilities(Optional<Map<String, Boolean>> capabilities) Feature flags for this schema.description(String description) Optional description of what this schema is for.description(Optional<String> description) Optional description of what this schema is for.displayName(@NotNull String displayName) Human-readable display name for this type, shown in UIs.Field definitions used to validate record payloads.Field definitions used to validate record payloads.from(SchemaRequest other) indexMode(SchemaRequestIndexMode indexMode) 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.indexMode(Optional<SchemaRequestIndexMode> indexMode) 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.lookupFields(List<LookupDef> lookupFields) Payload fields to index for direct lookup queries.lookupFields(Optional<List<LookupDef>> lookupFields) Payload fields to index for direct lookup queries.renderHints(Map<String, RenderHintDef> renderHints) UI rendering hints keyed by field id.renderHints(Optional<Map<String, RenderHintDef>> renderHints) UI rendering hints keyed by field id.The schema's scope ownership, asnamespace:valueentries (at most 2 namespaces) — for example["org:6ba7b810-9dad-11d1-80b4-00c04fd430c8", "group:eng-team"].The schema's scope ownership, asnamespace:valueentries (at most 2 namespaces) — for example["org:6ba7b810-9dad-11d1-80b4-00c04fd430c8", "group:eng-team"].storageProfile(SchemaRequestStorageProfile storageProfile) Where this type's payload is stored.storageProfile(Optional<SchemaRequestStorageProfile> storageProfile) Where this type's payload is stored.Unique type identifier for this schema.Owning user — the Vectros-assigned UUID of a user in your account.Owning user — the Vectros-assigned UUID of a user in your account.
-
Method Details
-
from
- Specified by:
fromin interfaceSchemaRequest.TypeNameStage
-
typeName
Unique type identifier for this schema. Immutable after creation.
Unique type identifier for this schema. Immutable after creation.
- Specified by:
typeNamein interfaceSchemaRequest.TypeNameStage- Returns:
- Reference to
thisso that method calls can be chained together.
-
displayName
Human-readable display name for this type, shown in UIs.
Human-readable display name for this type, shown in UIs.
- Specified by:
displayNamein interfaceSchemaRequest.DisplayNameStage- Returns:
- Reference to
thisso that method calls can be chained together.
-
basedOn
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.- Specified by:
basedOnin interfaceSchemaRequest._FinalStage- Returns:
- Reference to
thisso that method calls can be chained together.
-
basedOn
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.- Specified by:
basedOnin interfaceSchemaRequest._FinalStage
-
scopes
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=.- Specified by:
scopesin interfaceSchemaRequest._FinalStage- Returns:
- Reference to
thisso that method calls can be chained together.
-
scopes
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=.- Specified by:
scopesin interfaceSchemaRequest._FinalStage
-
userId
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.
- Specified by:
userIdin interfaceSchemaRequest._FinalStage- Returns:
- Reference to
thisso that method calls can be chained together.
-
userId
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.
- Specified by:
userIdin interfaceSchemaRequest._FinalStage
-
active
Whether this schema is active. An inactive schema rejects creation of new records of its type.
- Specified by:
activein interfaceSchemaRequest._FinalStage- Returns:
- Reference to
thisso that method calls can be chained together.
-
active
Whether this schema is active. An inactive schema rejects creation of new records of its type.
- Specified by:
activein interfaceSchemaRequest._FinalStage
-
addAllAllowedSurfaces
public SchemaRequest._FinalStage addAllAllowedSurfaces(List<SchemaRequestAllowedSurfacesItem> allowedSurfaces) 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.- Specified by:
addAllAllowedSurfacesin interfaceSchemaRequest._FinalStage- Returns:
- Reference to
thisso that method calls can be chained together.
-
addAllowedSurfaces
public SchemaRequest._FinalStage addAllowedSurfaces(SchemaRequestAllowedSurfacesItem allowedSurfaces) 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.- Specified by:
addAllowedSurfacesin interfaceSchemaRequest._FinalStage- Returns:
- Reference to
thisso that method calls can be chained together.
-
allowedSurfaces
public SchemaRequest._FinalStage allowedSurfaces(List<SchemaRequestAllowedSurfacesItem> allowedSurfaces) 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.- Specified by:
allowedSurfacesin interfaceSchemaRequest._FinalStage
-
storageProfile
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.- Specified by:
storageProfilein interfaceSchemaRequest._FinalStage- Returns:
- Reference to
thisso that method calls can be chained together.
-
storageProfile
public SchemaRequest._FinalStage storageProfile(Optional<SchemaRequestStorageProfile> storageProfile) 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.- Specified by:
storageProfilein interfaceSchemaRequest._FinalStage
-
indexMode
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.
- Specified by:
indexModein interfaceSchemaRequest._FinalStage- Returns:
- Reference to
thisso that method calls can be chained together.
-
indexMode
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.
- Specified by:
indexModein interfaceSchemaRequest._FinalStage
-
capabilities
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).- Specified by:
capabilitiesin interfaceSchemaRequest._FinalStage- Returns:
- Reference to
thisso that method calls can be chained together.
-
capabilities
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).- Specified by:
capabilitiesin interfaceSchemaRequest._FinalStage
-
renderHints
UI rendering hints keyed by field id.
- Specified by:
renderHintsin interfaceSchemaRequest._FinalStage- Returns:
- Reference to
thisso that method calls can be chained together.
-
renderHints
UI rendering hints keyed by field id.
- Specified by:
renderHintsin interfaceSchemaRequest._FinalStage
-
lookupFields
Payload fields to index for direct lookup queries. Maximum 10 lookup fields.
- Specified by:
lookupFieldsin interfaceSchemaRequest._FinalStage- Returns:
- Reference to
thisso that method calls can be chained together.
-
lookupFields
Payload fields to index for direct lookup queries. Maximum 10 lookup fields.
- Specified by:
lookupFieldsin interfaceSchemaRequest._FinalStage
-
fields
Field definitions used to validate record payloads. Omit for a bare schema that performs no payload validation.
- Specified by:
fieldsin interfaceSchemaRequest._FinalStage- Returns:
- Reference to
thisso that method calls can be chained together.
-
fields
Field definitions used to validate record payloads. Omit for a bare schema that performs no payload validation.
- Specified by:
fieldsin interfaceSchemaRequest._FinalStage
-
description
Optional description of what this schema is for.
- Specified by:
descriptionin interfaceSchemaRequest._FinalStage- Returns:
- Reference to
thisso that method calls can be chained together.
-
description
Optional description of what this schema is for.
- Specified by:
descriptionin interfaceSchemaRequest._FinalStage
-
build
- Specified by:
buildin interfaceSchemaRequest._FinalStage
-
additionalProperty
- Specified by:
additionalPropertyin interfaceSchemaRequest._FinalStage
-
additionalProperties
- Specified by:
additionalPropertiesin interfaceSchemaRequest._FinalStage
-