Class NamespaceRequest

java.lang.Object
ai.vectros.types.NamespaceRequest

public final class NamespaceRequest extends Object
  • Method Details

    • getNamespace

      public String getNamespace()
      Returns:
      The namespace to register: 2-32 characters, a lowercase letter first, then lowercase letters, digits, _ or -. org and client are reserved names, registered the same way as any other namespace. Deleting any namespace — these two included — is refused while entities still reference it. Required on registration; on update it must match the path and is otherwise ignored (the namespace is immutable).
    • getEntityBacked

      public Optional<Boolean> getEntityBacked()
      Returns:
      When true, every scope:<namespace> value in this namespace must resolve to an existing identity entity of the same account and namespace (create entities via POST /v1/entities/{namespace}), and the namespace gains the full identity-entity surface — list its entities, look them up by schema field, and filter other resources by them as a parent. When false (the default), values in this namespace are free-form strings validated by grammar only.
    • getDefaultSchemaId

      public Optional<String> getDefaultSchemaId()
      Returns:
      Optional ID of a record schema (created via POST /v1/schemas) bound as the default governing schema for entities created in this namespace. Must belong to your account.
    • getSpecificityRank

      public int getSpecificityRank()
      Returns:
      This namespace's position in your account's specificity order, used to break a tie when a caller holds two scope dimensions at once during recordType schema resolution — the higher-ranked (more specific) dimension's schema wins. Required on registration (no default); must be an integer between 0 and 1000000, and unique across every namespace in your account — including org and client, once registered (org=1000, client=2000). Optional on update — omit to leave it unchanged.
    • getMembershipRecordType

      public Optional<String> getMembershipRecordType()
      Returns:
      Optional. The record type holding this namespace's MEMBERSHIP grants — the records that say which values of this namespace a given user belongs to. Supply it together with membershipTargetField and membershipContextId, or omit all three. Declaring it grants nobody anything on its own: a credential receives membership-derived access only if its own role or access profile asks for it by naming ${{ member.scope.<namespace> }} in data_scope.
    • getMembershipTargetField

      public Optional<String> getMembershipTargetField()
      Returns:
      Optional. The field on membershipRecordType naming the user a grant is FOR. It is an ordinary reference field, not an ownership field — the grant is owned by whoever created it, and the namespace value it applies to is the grant's own scope stamp, which is what your placement authority is checked against when you write it.
    • getMembershipContextId

      public Optional<String> getMembershipContextId()
      Returns:
      Optional. Which app context holds the membership records. Required alongside the other membership fields on a TENANT-WIDE registration (records always belong to one app context, while a tenant-wide registration is account-wide). Meaningless — and rejected if it disagrees — on a registration owned by one context via ?contextId=: that context's grants live in its own context by construction, so this field need not repeat it.
    • getMembershipLevelField

      public Optional<String> getMembershipLevelField()
      Returns:
      Optional. The field on membershipRecordType naming a grant's LEVEL, so the same user can hold different levels in different values of this namespace — an admin of one team and a viewer of another. Supply it together with membershipLevels, or omit both for plain in-or-out membership. A role selects a level by naming ${{ member.scope.<namespace>:<level> }}. Because the level is an ordinary field on an ordinary record, it is only as trustworthy as who may write that record type: grant create/update/delete on membershipRecordType to the people who ISSUE grants, never to the members those grants govern — a member who can update their own grant row can raise their own level, and it takes effect on their next request.
    • getMembershipLevels

      public Optional<List<String>> getMembershipLevels()
      Returns:
      Optional. The complete set of level labels this namespace allows, each following the namespace grammar. A role naming a level that is not in this list is rejected when it is authored, rather than silently matching nothing — so a typo is reported to whoever can fix it. Required alongside membershipLevelField.
    • equals

      public boolean equals(Object other)
      Overrides:
      equals in class Object
    • getAdditionalProperties

      public Map<String,Object> getAdditionalProperties()
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • builder

      public static NamespaceRequest.NamespaceStage builder()