DUST API

The core DUST Platform API (apid). REST over HTTPS with a bearer-JWT Service Account model, organization/team context headers, cursor pagination and a single stable error envelope. Covers Threads, Identifiers (tags), Files (tus resumable uploads), Bundles/Folders, Templates, Certificates and Certificate Forms, Teams, Sharing, cross-organization Connections, Transfers/Shipments, Slices, Fabric provenance, Thread Links and Relations, Events, Notifications, Metrics and Org Admin.

OpenAPI Specification

dust-identity-apid-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: DUST API
  description: DUST Platform API
  version: 2026.7.4
servers:
- url: https://apid.dustid.io
  description: DUST API for trusted provenance.
security:
- Bearer: []
components:
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT issued by the DUST auth service. Obtain one by exchanging a Service Account API key (`GET /api/auth/token`
        with the key header) or via the OAuth2 `client_credentials` grant. Tokens are short-lived; re-exchange on expiry.
  schemas:
    HealthResponse:
      type: object
      properties:
        status:
          const: ok
        timestamp:
          type: string
      required:
      - status
      - timestamp
    HealthErrorResponse:
      type: object
      properties:
        status:
          const: error
        timestamp:
          type: string
      required:
      - status
      - timestamp
    MeFeatureFlagsResponse:
      type: object
      properties:
        is_assemblies_module_enabled:
          type: boolean
        is_assembly_import_enabled:
          type: boolean
        is_categories_module_enabled:
          type: boolean
        is_certificates_module_enabled:
          type: boolean
        is_developer_tooling_enabled:
          type: boolean
        is_document_validation_enabled:
          type: boolean
        is_fabric_alt_views_enabled:
          type: boolean
        is_fusion_module_enabled:
          type: boolean
        is_group_connections_enabled:
          type: boolean
        is_identifiable_dust_enabled:
          type: boolean
        is_organization_management_enabled:
          type: boolean
        is_sharing_enabled:
          type: boolean
        is_show_uncategorized_threads_enabled:
          type: boolean
        is_slicing_module_enabled:
          type: boolean
        is_transfers_module_enabled:
          type: boolean
        is_verify_only_enabled:
          type: boolean
        is_workflows_quick_create_enabled:
          type: boolean
      required:
      - is_assemblies_module_enabled
      - is_assembly_import_enabled
      - is_categories_module_enabled
      - is_certificates_module_enabled
      - is_developer_tooling_enabled
      - is_document_validation_enabled
      - is_fabric_alt_views_enabled
      - is_fusion_module_enabled
      - is_group_connections_enabled
      - is_identifiable_dust_enabled
      - is_organization_management_enabled
      - is_sharing_enabled
      - is_show_uncategorized_threads_enabled
      - is_slicing_module_enabled
      - is_transfers_module_enabled
      - is_verify_only_enabled
      - is_workflows_quick_create_enabled
    MeResponse:
      type: object
      properties:
        activeOrganizationId:
          anyOf:
          - type: string
            description: a UUID
            format: uuid
            pattern: '[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}'
          - const: 00000000-0000-0000-0000-000000000000
            description: a UUID
            format: uuid
          - const: ffffffff-ffff-ffff-ffff-ffffffffffff
            description: a UUID
            format: uuid
          - type: 'null'
        email:
          type: string
        organizations:
          type: array
          items:
            type: object
            properties:
              id:
                anyOf:
                - type: string
                  description: a UUID
                  format: uuid
                  pattern: '[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}'
                - const: 00000000-0000-0000-0000-000000000000
                  description: a UUID
                  format: uuid
                - const: ffffffff-ffff-ffff-ffff-ffffffffffff
                  description: a UUID
                  format: uuid
                description: a UUID
                format: uuid
              name:
                type: string
              roles:
                type: array
                items:
                  type: string
              slug:
                type: string
            required:
            - id
            - name
            - roles
            - slug
        sessionId:
          type: string
        userId:
          type: string
        familyName:
          type: string
        givenName:
          type: string
        name:
          type: string
      required:
      - activeOrganizationId
      - email
      - organizations
      - sessionId
      - userId
    AssemblyListItem:
      type: object
      properties:
        parentAssemblyId:
          anyOf:
          - type: string
            description: a UUID
            format: uuid
            pattern: '[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}'
          - const: 00000000-0000-0000-0000-000000000000
            description: a UUID
            format: uuid
          - const: ffffffff-ffff-ffff-ffff-ffffffffffff
            description: a UUID
            format: uuid
          - type: 'null'
        partCount:
          type: number
        subAssemblyCount:
          type: number
        thread:
          type: object
          properties:
            archivedAt:
              anyOf:
              - type: string
              - type: 'null'
            createdAt:
              type: string
            createdById:
              type: string
              description: a RFC-4122-compliant UUID
              pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
            description:
              anyOf:
              - type: string
              - type: 'null'
            kind:
              anyOf:
              - type: string
              - type: 'null'
            labels:
              anyOf:
              - type: number
              - type: object
              - type: string
              - type: boolean
              - type: 'null'
            lifecycleStatus:
              type: string
            name:
              type: string
            ownerId:
              type: string
              description: a RFC-4122-compliant UUID
              pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
            processingLockedAt:
              anyOf:
              - type: string
              - type: 'null'
            processingOperationId:
              anyOf:
              - type: string
                description: a RFC-4122-compliant UUID
                pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
              - type: 'null'
            templateId:
              anyOf:
              - type: string
                description: a RFC-4122-compliant UUID
                pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
              - type: 'null'
            threadId:
              type: string
              description: a RFC-4122-compliant UUID
              pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
            thumbnail: {}
            thumbnailId:
              anyOf:
              - type: string
                description: a RFC-4122-compliant UUID
                pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
              - type: 'null'
            transferId:
              anyOf:
              - type: string
                description: a RFC-4122-compliant UUID
                pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
              - type: 'null'
            transferredAt:
              anyOf:
              - type: string
              - type: 'null'
            updatedAt:
              type: string
          required:
          - archivedAt
          - createdAt
          - createdById
          - description
          - kind
          - labels
          - lifecycleStatus
          - name
          - ownerId
          - processingLockedAt
          - processingOperationId
          - templateId
          - threadId
          - thumbnail
          - thumbnailId
          - transferId
          - transferredAt
          - updatedAt
      required:
      - parentAssemblyId
      - partCount
      - subAssemblyCount
      - thread
    AssemblyListResponse:
      type: object
      properties:
        assemblies:
          type: array
          items:
            $ref: '#/components/schemas/AssemblyListItem'
      required:
      - assemblies
    AssemblyChild:
      type: object
      properties:
        partCount:
          type: number
        subAssemblyCount:
          type: number
        thread:
          type: object
          properties:
            archivedAt:
              anyOf:
              - type: string
              - type: 'null'
            createdAt:
              type: string
            createdById:
              type: string
              description: a RFC-4122-compliant UUID
              pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
            description:
              anyOf:
              - type: string
              - type: 'null'
            kind:
              anyOf:
              - type: string
              - type: 'null'
            labels:
              anyOf:
              - type: number
              - type: object
              - type: string
              - type: boolean
              - type: 'null'
            lifecycleStatus:
              type: string
            name:
              type: string
            ownerId:
              type: string
              description: a RFC-4122-compliant UUID
              pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
            processingLockedAt:
              anyOf:
              - type: string
              - type: 'null'
            processingOperationId:
              anyOf:
              - type: string
                description: a RFC-4122-compliant UUID
                pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
              - type: 'null'
            templateId:
              anyOf:
              - type: string
                description: a RFC-4122-compliant UUID
                pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
              - type: 'null'
            threadId:
              type: string
              description: a RFC-4122-compliant UUID
              pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
            thumbnail: {}
            thumbnailId:
              anyOf:
              - type: string
                description: a RFC-4122-compliant UUID
                pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
              - type: 'null'
            transferId:
              anyOf:
              - type: string
                description: a RFC-4122-compliant UUID
                pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
              - type: 'null'
            transferredAt:
              anyOf:
              - type: string
              - type: 'null'
            updatedAt:
              type: string
          required:
          - archivedAt
          - createdAt
          - createdById
          - description
          - kind
          - labels
          - lifecycleStatus
          - name
          - ownerId
          - processingLockedAt
          - processingOperationId
          - templateId
          - threadId
          - thumbnail
          - thumbnailId
          - transferId
          - transferredAt
          - updatedAt
        relation:
          anyOf:
          - const: default
          - const: private
          - type: 'null'
      required:
      - partCount
      - subAssemblyCount
      - thread
    AssemblyChildrenResponse:
      type: object
      properties:
        parts:
          type: array
          items:
            $ref: '#/components/schemas/AssemblyChild'
      required:
      - parts
    AttachPartRequest:
      type: object
      properties:
        threadId:
          anyOf:
          - type: string
            description: a UUID
            format: uuid
            pattern: '[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}'
          - const: 00000000-0000-0000-0000-000000000000
            description: a UUID
            format: uuid
          - const: ffffffff-ffff-ffff-ffff-ffffffffffff
            description: a UUID
            format: uuid
          description: a UUID
          format: uuid
        relation:
          enum:
          - default
          - private
      required:
      - threadId
    DetachPartRequest:
      type: object
      properties:
        threadId:
          anyOf:
          - type: string
            description: a UUID
            format: uuid
            pattern: '[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}'
          - const: 00000000-0000-0000-0000-000000000000
            description: a UUID
            format: uuid
          - const: ffffffff-ffff-ffff-ffff-ffffffffffff
            description: a UUID
            format: uuid
          description: a UUID
          format: uuid
      required:
      - threadId
    SetPartProtectionRequest:
      type: object
      properties:
        relation:
          enum:
          - default
          - private
        threadId:
          anyOf:
          - type: string
            description: a UUID
            format: uuid
            pattern: '[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}'
          - const: 00000000-0000-0000-0000-000000000000
            description: a UUID
            format: uuid
          - const: ffffffff-ffff-ffff-ffff-ffffffffffff
            description: a UUID
            format: uuid
          description: a UUID
          format: uuid
      required:
      - relation
      - threadId
    SetThreadFieldRequest:
      type: object
      properties:
        threadId:
          anyOf:
          - type: string
            description: a UUID
            format: uuid
            pattern: '[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}'
          - const: 00000000-0000-0000-0000-000000000000
            description: a UUID
            format: uuid
          - const: ffffffff-ffff-ffff-ffff-ffffffffffff
            description: a UUID
            format: uuid
          - type: 'null'
        description:
          anyOf:
          - type: string
          - type: 'null'
        fieldId:
          anyOf:
          - type: string
            description: a UUID
            format: uuid
            pattern: '[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}'
          - const: 00000000-0000-0000-0000-000000000000
            description: a UUID
            format: uuid
          - const: ffffffff-ffff-ffff-ffff-ffffffffffff
            description: a UUID
            format: uuid
          description: a UUID
          format: uuid
        name:
          anyOf:
          - type: string
          - type: 'null'
      required:
      - threadId
    ConvertThreadKindRequest:
      type: object
      properties:
        kind:
          enum:
          - assembly
          - unit
      required:
      - kind
    RolledUpPart:
      type: object
      properties:
        assemblyId:
          anyOf:
          - type: string
            description: a UUID
            format: uuid
            pattern: '[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}'
          - const: 00000000-0000-0000-0000-000000000000
            description: a UUID
            format: uuid
          - const: ffffffff-ffff-ffff-ffff-ffffffffffff
            description: a UUID
            format: uuid
          description: a UUID
          format: uuid
        assetCounts:
          type: object
          properties:
            fields:
              type: number
            resources:
              type: number
            tags:
              type: number
          required:
          - fields
          - resources
          - tags
        depth:
          type: number
        thread:
          type: object
          properties:
            archivedAt:
              anyOf:
              - type: string
              - type: 'null'
            createdAt:
              type: string
            createdById:
              type: string
              description: a RFC-4122-compliant UUID
              pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
            description:
              anyOf:
              - type: string
              - type: 'null'
            kind:
              anyOf:
              - type: string
              - type: 'null'
            labels:
              anyOf:
              - type: number
              - type: object
              - type: string
              - type: boolean
              - type: 'null'
            lifecycleStatus:
              type: string
            name:
              type: string
            ownerId:
              type: string
              description: a RFC-4122-compliant UUID
              pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
            processingLockedAt:
              anyOf:
              - type: string
              - type: 'null'
            processingOperationId:
              anyOf:
              - type: string
                description: a RFC-4122-compliant UUID
                pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
              - type: 'null'
            templateId:
              anyOf:
              - type: string
                description: a RFC-4122-compliant UUID
                pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
              - type: 'null'
            threadId:
              type: string
              description: a RFC-4122-compliant UUID
              pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
            thumbnail: {}
            thumbnailId:
              anyOf:
              - type: string
                description: a RFC-4122-compliant UUID
                pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
              - type: 'null'
            transferId:
              anyOf:
              - type: string
                description: a RFC-4122-compliant UUID
                pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
              - type: 'null'
            transferredAt:
              anyOf:
              - type: string
              - type: 'null'
            updatedAt:
              type: string
          required:
          - archivedAt
          - createdAt
          - createdById
          - description
          - kind
          - labels
          - lifecycleStatus
          - name
          - ownerId
          - processingLockedAt
          - processingOperationId
          - templateId
          - threadId
          - thumbnail
          - thumbnailId
          - transferId
          - transferredAt
          - updatedAt
        positionName:
          anyOf:
          - type: string
          - type: 'null'
        relation:
          anyOf:
          - const: default
          - const: private
          - type: 'null'
      required:
      - assemblyId
      - assetCounts
      - depth
      - thread
    RolledUpPartsResponse:
      type: object
      properties:
        parts:
          type: array
          items:
            $ref: '#/components/schemas/RolledUpPart'
      required:
      - parts
    BundleResponse:
      type: object
      properties:
        bundleId:
          type: string
          description: a RFC-4122-compliant UUID
          pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
        childOfId:
          anyOf:
          - type: string
            description: a RFC-4122-compliant UUID
            pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
          - type: 'null'
        createdAt:
          type: string
        description:
          anyOf:
          - type: string
          - type: 'null'
        kind:
          type: string
        name:
          type: string
        ownerId:
          type: string
          description: a RFC-4122-compliant UUID
          pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
        updatedAt:
          type: string
        depth:
          type: number
        hasChildren:
          type: boolean
        idPath:
          type: array
          items:
            type: string
        isSharedOut:
          type: boolean
        path:
          type: array
          items:
            type: string
        permissions:
          type: object
          properties:
            can_edit:
              type: boolean
              default: false
            can_publish:
              type: boolean
              default: false
            can_share:
              type: boolean
              default: false
            can_transfer:
              type: boolean
              default: false
            can_view:
              type: boolean
              default: false
        threadCount:
          type: number
      required:
      - bundleId
      - childOfId
      - createdAt
      - description
      - kind
      - name
      - ownerId
      - updatedAt
    BundleListResponse:
      type: object
      properties:
        bundles:
          type: array
          items:
            $ref: '#/components/schemas/BundleResponse'
        next:
          type: string
          description: Next cursor if available
        prev:
          type: string
          description: Previous cursor if available
      required:
      - bundles
    BundleChildrenResponse:
      type: object
      properties:
        bundles:
          type: array
          items:
            $ref: '#/components/schemas/BundleResponse'
      required:
      - bundles
    BundleCountResponse:
      type: object
      properties:
        total:
          type: number
      required:
      - total
    BundleCreateResponse:
      type: object
      properties:
        created:
          $ref: '#/components/schemas/BundleResponse'
      required:
      - created
    BundleCreateRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
        childOfId:
          anyOf:
          - type: string
            description: a UUID
            format: uuid
            pattern: '[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}'
          - const: 00000000-0000-0000-0000-000000000000
            description: a UUID
            format: uuid
          - const: ffffffff-ffff-ffff-ffff-ffffffffffff
            description: a UUID
            format: uuid
          - type: 'null'
        description:
          anyOf:
          - type: string
          - type: 'null'
        kind:
          enum:
          - category
          - folder
      required:
      - name
    BundleSetParentRequest:
      type: object
      properties:
        bundleIds:
          type: array
          items:
            anyOf:
            - type: string
              description: a UUID
              format: uuid
              pattern: '[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}'
            - const: 00000000-0000-0000-0000-000000000000
              description: a UUID
              format: uuid
            - const: ffffffff-ffff-ffff-ffff-ffffffffffff
              description: a UUID
              format: uuid
            description: a UUID
            format: uuid
        parentId:
          anyOf:
          - type: string
            description: a UUID
            format: uuid
            pattern: '[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}'
          - const: 00000000-0000-0000-0000-000000000000
            description: a UUID
            format: uuid
          - const: ffffffff-ffff-ffff-ffff-ffffffffffff
            description: a UUID
            format: uuid
          - type: 'null'
      required:
      - bundleIds
      - parentId
    BundleSetParentResponse:
      type: object
      properties:
        updated:
          type: array
          items:
            $ref: '#/components/schemas/BundleResponse'
      required:
      - updated
    BundleUpdateRequest:
      type: object
      properties:
        description:
          anyOf:
          - type: string
          - type: 'null'
        name:
          type: string
          minLength: 1
    BundleUpdateResponse:
      type: object
      properties:
        updated:
          $ref: '#/components/schemas/BundleResponse'
      required:
      - updated
    ThreadActiveShipment:
      type: object
      properties:
        name:
          anyOf:
          - type: string
          - type: 'null'
        operationId:
          anyOf:
          - type: string
            description: a UUID
            format: uuid
            pattern: '[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}'
          - const: 00000000-0000-0000-0000-000000000000
            description: a UUID
            format: uuid
          - const: ffffffff-ffff-ffff-ffff-ffffffffffff
            description: a UUID
            format: uuid
          description: a UUID
          format: uuid
        status:
          enum:
          - change_request
          - draft
          - failed_retryable
          - processing
          - sent
      required:
      - name
      - operationId
      - status
    Principal:
      type: object
      properties:
        avatar:
          anyOf:
          - type: string
          - type: 'null'
        createdAt:
          type: string
        email:
          anyOf:
          - type: string
          - type: 'null'
        emailVerified:
          anyOf:
          - type: boolean
          - type: 'null'
        familyName:
          anyOf:
          - type: string
          - type: 'null'
        kind:
          enum:
          - human
          - service
        name:
          anyOf:
          - type: string
          - type: 'null'
        phone:
          anyOf:
          - type: string
          - type: 'null'
        profileId:
          anyOf:
          - type: string
            description: a UUID
            format: uuid
            pattern: '[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}'
          - const: 00000000-0000-0000-0000-000000000000
            description: a UUID
            format: uuid
          - const: ffffffff-ffff-ffff-ffff-ffffffffffff
            description: a UUID
            format: uuid
          description: a UUID
          format: uuid
        updatedAt:
          type: string
        userId:
          anyOf:
          - type: string
            description: a UUID
            format: uuid
            pattern: '[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}'
          - const: 00000000-0000-0000-0000-000000000000
            description: a UUID
            format: uuid
          - const: ffffffff-ffff-ffff-ffff-ffffffffffff
            description: a UUID
            format: uuid
          description: a UUID
          format: uuid
      required:
      - avatar
      - createdAt
      - email
      - emailVerified
      - familyName
      - kind
      - name
      - phone
      - profileId
      - updatedAt
      - userId
    ThreadFieldResourceValue:
      type: object
      properties:
        resId:
          type: string
          description: a RFC-4122-compliant UUID
          pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
      required:
      - resId
    ThreadFieldResource:
      type: object
      properties:
        archivedAt:
          anyOf:
          - type: string
          - type: 'null'
        createdAt:
          type: string
        defId:
          anyOf:
          - type: string
            description: a RFC-4122-compliant UUID
            pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
          - type: 'null'
        description:
          anyOf:
          - type: string
          - type: 'null'
        fieldId:
          type: string
          description: a RFC-4122-compliant UUID
          pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
        isPrivate:
          type: boolean
        isRequired:
          type: boolean
        name:
          anyOf:
          - type: string
          - type: 'null'
        ownerId:
          type: string
          description: a RFC-4122-compliant UUID
          pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
        sortPriority:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        transferId:
          anyOf:
          - type: string
            description: a RFC-4122-compliant UUID
            pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
          - type: 'null'
        transferredAt:
          anyOf:
          - type: string
          - type: 'null'
        type:
          enum:
          - audio
          - doc
          - file
          - image
          - pdf
          - video
        updatedAt:
          type: string
        value:
          anyOf:
          - $ref: '#/components/schemas/ThreadFieldResourceValue'
          - type: 'null'
      required:
      - archivedAt
      - createdAt
      - defId
      - description
      - fieldId
      - isPrivate
      - isRequired
      - name
      - ownerId
      - sortPriority
      - transferId
      - transferredAt
      - type
      - updatedAt
      - value
    ThreadFieldBooleanValue:
      type: object
      properties:
        bool:
          type: boolean
      required:
      - bool
    ThreadFieldBoolean:
      type: object
      properties:
        archivedAt:
          anyOf:
          - type: string
          - type: 'null'
        createdAt:
          type: string
        defId:
          anyOf:
          - type: string
            description: a RFC-4122-compliant UUID
            pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
          - type: 'null'
        description:
          anyOf:
          - type: string
          - type: 'null'
        fieldId:
          type: string
          description: a RFC-4122-compliant UUID
          pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
        isPrivate:
          type: boolean
        isRequired:
          type: boolean
        name:
          anyOf:
          - type: string
          - type: 'null'
        ownerId:
          type: string
          description: a RFC-4122-compliant UUID
          pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
        sortPriority:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        transferId:
          anyOf:
          - type: string
            description: a RFC-4122-compliant UUID
            pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
          - type: 'null'
        transferredAt:
          anyOf:
          - type: string
          - type: 'null'
        type:
          const: boolean
        updatedAt:
          type: string
        value:
          anyOf:
          - $ref: '#/components/schemas/ThreadFieldBooleanValue'
          - type: 'null'
      required:
      - archivedAt
      - createdAt
      - defId
      - description
      - fieldId
      - isPrivate
      - isRequired
      - name
      - ownerId
      - sortPriority
      - transferId
      - transferredAt
      - type
      - updatedAt
      - value
    ThreadFieldDateValue:
      type: object
      properties:
        date:
          type: string
      required:
      - date
    ThreadFieldDate:
      type: object
      properties:
        archivedAt:
          anyOf:
          - type: string
          - type: 'null'
        createdAt:
          type: string
        defId:
          anyOf:
          - type: string
            description: a RFC-4122-compliant UUID
            pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
          - type: 'null'
        description:
          anyOf:
          - type: string
          - type: 'null'
        fieldId:
          type: string
          description: a RFC-4122-compliant UUID
          pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
        isPrivate:
          type: boolean
        isRequired:
          type: boolean
        name:
          anyOf:
          - type: string
          - type: 'null'
        ownerId:
          type: string
          description: a RFC-4122-compliant UUID
          pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
        sortPriority:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        transferId:
          anyOf:
          - type: string
            description: a RFC-4122-compliant UUID
            pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
          - type: 'null'
        transferredAt:
          anyOf:
          - type: string
          - type: 'null'
        type:
          const: date
        updatedAt:
          type: string
        value:
        

# --- truncated at 32 KB (1475 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/dust-identity/refs/heads/main/openapi/dust-identity-apid-openapi.yml