Class SchemaRequest.Builder

java.lang.Object
ai.vectros.types.SchemaRequest.Builder
All Implemented Interfaces:
SchemaRequest._FinalStage, SchemaRequest.DisplayNameStage, SchemaRequest.TypeNameStage
Enclosing class:
SchemaRequest

public static final class SchemaRequest.Builder extends Object implements SchemaRequest.TypeNameStage, SchemaRequest.DisplayNameStage, SchemaRequest._FinalStage
  • Method Details

    • from

      public SchemaRequest.Builder from(SchemaRequest other)
      Specified by:
      from in interface SchemaRequest.TypeNameStage
    • typeName

      public SchemaRequest.DisplayNameStage typeName(@NotNull @NotNull String typeName)

      Unique type identifier for this schema. Immutable after creation.

      Unique type identifier for this schema. Immutable after creation.

      Specified by:
      typeName in interface SchemaRequest.TypeNameStage
      Returns:
      Reference to this so that method calls can be chained together.
    • displayName

      public SchemaRequest._FinalStage displayName(@NotNull @NotNull String displayName)

      Human-readable display name for this type, shown in UIs.

      Human-readable display name for this type, shown in UIs.

      Specified by:
      displayName in interface SchemaRequest.DisplayNameStage
      Returns:
      Reference to this so that method calls can be chained together.
    • clientId

      public SchemaRequest._FinalStage clientId(String clientId)

      Associated client — the Vectros-assigned UUID of a client in your account. Optional. With an API key, this sets the schema's client explicitly. With a scoped token, it must match the token's identity claim (if set) or fall within the token's data scope.

      Specified by:
      clientId in interface SchemaRequest._FinalStage
      Returns:
      Reference to this so that method calls can be chained together.
    • clientId

      public SchemaRequest._FinalStage clientId(Optional<String> clientId)

      Associated client — the Vectros-assigned UUID of a client in your account. Optional. With an API key, this sets the schema's client explicitly. With a scoped token, it must match the token's identity claim (if set) or fall within the token's data scope.

      Specified by:
      clientId in interface SchemaRequest._FinalStage
    • orgId

      public SchemaRequest._FinalStage orgId(String orgId)

      Owning organization — the Vectros-assigned UUID of an organization in your account. Optional. With an API key, this sets the schema's owning organization explicitly. With a scoped token, it must match the token's identity claim (if set) or fall within the token's data scope.

      Specified by:
      orgId in interface SchemaRequest._FinalStage
      Returns:
      Reference to this so that method calls can be chained together.
    • orgId

      public SchemaRequest._FinalStage orgId(Optional<String> orgId)

      Owning organization — the Vectros-assigned UUID of an organization in your account. Optional. With an API key, this sets the schema's owning organization explicitly. With a scoped token, it must match the token's identity claim (if set) or fall within the token's data scope.

      Specified by:
      orgId in interface SchemaRequest._FinalStage
    • userId

      public SchemaRequest._FinalStage userId(String 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 user must match the token's identity claim (if set) or fall within the token's data scope.

      Specified by:
      userId in interface SchemaRequest._FinalStage
      Returns:
      Reference to this so that method calls can be chained together.
    • userId

      public SchemaRequest._FinalStage userId(Optional<String> 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 user must match the token's identity claim (if set) or fall within the token's data scope.

      Specified by:
      userId in interface SchemaRequest._FinalStage
    • active

      public SchemaRequest._FinalStage active(Boolean active)

      Whether this schema is active. An inactive schema rejects creation of new records of its type.

      Specified by:
      active in interface SchemaRequest._FinalStage
      Returns:
      Reference to this so that method calls can be chained together.
    • active

      public SchemaRequest._FinalStage active(Optional<Boolean> active)

      Whether this schema is active. An inactive schema rejects creation of new records of its type.

      Specified by:
      active in interface SchemaRequest._FinalStage
    • addAllAllowedSurfaces

      public SchemaRequest._FinalStage addAllAllowedSurfaces(List<SchemaRequestAllowedSurfacesItem> allowedSurfaces)

      Which typed surfaces may bind this schema by its id: record, document, user, org, or client. Required and must be non-empty. 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.

      Specified by:
      addAllAllowedSurfaces in interface SchemaRequest._FinalStage
      Returns:
      Reference to this so 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, org, or client. Required and must be non-empty. 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.

      Specified by:
      addAllowedSurfaces in interface SchemaRequest._FinalStage
      Returns:
      Reference to this so 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, org, or client. Required and must be non-empty. 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.

      Specified by:
      allowedSurfaces in interface SchemaRequest._FinalStage
    • storageProfile

      public SchemaRequest._FinalStage storageProfile(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:
      storageProfile in interface SchemaRequest._FinalStage
      Returns:
      Reference to this so 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:
      storageProfile in interface SchemaRequest._FinalStage
    • indexMode

      public SchemaRequest._FinalStage 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. 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:
      indexMode in interface SchemaRequest._FinalStage
      Returns:
      Reference to this so 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:
      indexMode in interface SchemaRequest._FinalStage
    • capabilities

      public SchemaRequest._FinalStage capabilities(Map<String,Boolean> 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:
      capabilities in interface SchemaRequest._FinalStage
      Returns:
      Reference to this so that method calls can be chained together.
    • capabilities

      public SchemaRequest._FinalStage capabilities(Optional<Map<String,Boolean>> 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:
      capabilities in interface SchemaRequest._FinalStage
    • renderHints

      public SchemaRequest._FinalStage renderHints(Map<String,RenderHintDef> renderHints)

      UI rendering hints keyed by field id.

      Specified by:
      renderHints in interface SchemaRequest._FinalStage
      Returns:
      Reference to this so that method calls can be chained together.
    • renderHints

      public SchemaRequest._FinalStage renderHints(Optional<Map<String,RenderHintDef>> renderHints)

      UI rendering hints keyed by field id.

      Specified by:
      renderHints in interface SchemaRequest._FinalStage
    • lookupFields

      public SchemaRequest._FinalStage lookupFields(List<LookupDef> lookupFields)

      Payload fields to index for direct lookup queries. Maximum 10 lookup fields.

      Specified by:
      lookupFields in interface SchemaRequest._FinalStage
      Returns:
      Reference to this so that method calls can be chained together.
    • lookupFields

      public SchemaRequest._FinalStage lookupFields(Optional<List<LookupDef>> lookupFields)

      Payload fields to index for direct lookup queries. Maximum 10 lookup fields.

      Specified by:
      lookupFields in interface SchemaRequest._FinalStage
    • fields

      public SchemaRequest._FinalStage fields(List<FieldDef> fields)

      Field definitions used to validate record payloads. Omit for a bare schema that performs no payload validation.

      Specified by:
      fields in interface SchemaRequest._FinalStage
      Returns:
      Reference to this so that method calls can be chained together.
    • fields

      public SchemaRequest._FinalStage fields(Optional<List<FieldDef>> fields)

      Field definitions used to validate record payloads. Omit for a bare schema that performs no payload validation.

      Specified by:
      fields in interface SchemaRequest._FinalStage
    • description

      public SchemaRequest._FinalStage description(String description)

      Optional description of what this schema is for.

      Specified by:
      description in interface SchemaRequest._FinalStage
      Returns:
      Reference to this so that method calls can be chained together.
    • description

      public SchemaRequest._FinalStage description(Optional<String> description)

      Optional description of what this schema is for.

      Specified by:
      description in interface SchemaRequest._FinalStage
    • build

      public SchemaRequest build()
      Specified by:
      build in interface SchemaRequest._FinalStage
    • additionalProperty

      public SchemaRequest.Builder additionalProperty(String key, Object value)
      Specified by:
      additionalProperty in interface SchemaRequest._FinalStage
    • additionalProperties

      public SchemaRequest.Builder additionalProperties(Map<String,Object> additionalProperties)
      Specified by:
      additionalProperties in interface SchemaRequest._FinalStage