> ## Documentation Index
> Fetch the complete documentation index at: https://developer.kodexa.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Create ProjectTemplateMetadata

> Creates a new ProjectTemplateMetadata. Project templates define reusable project configurations.



## OpenAPI

````yaml /api-reference/api-docs.yaml post /api/project-templates
openapi: 3.0.1
info:
  title: Kodexa AI
  description: >-
    The Kodexa platform API provides programmatic access to document processing,
    intelligent automation, and data extraction capabilities. Use this API to
    manage organizations, projects, document stores, taxonomies, assistants, and
    processing pipelines. All endpoints require authentication via API key,
    Bearer token, or Basic auth.
  version: 8.0.0
  license:
    name: Commercial
    url: https://kodexa.ai
servers:
  - url: https://platform.kodexa.ai
    description: Production
  - url: http://localhost:8080
    description: Local development
security:
  - x-api-key: []
  - bearerAuth: []
tags:
  - name: AI Gateway
  - name: AccessTokens
    description: Manage API access tokens for programmatic authentication.
  - name: Account
    description: Account management endpoints for the authenticated user.
  - name: Activities
  - name: ActivityDocumentFamilies
  - name: ActivityPlans
  - name: Agent Runtimes
    description: Manage agent runtime definitions backed by AWS Bedrock AgentCore.
  - name: Agent Sessions
    description: View and manage stateful conversation sessions within agent runtimes.
  - name: Agents
    description: Manage agents — instantiated agent runtimes within an org+project.
  - name: Analytics
  - name: Applied Knowledge
    description: Manage applied knowledge instances used during document processing.
  - name: Applied Knowledge Sets
    description: Manage applied knowledge set configurations.
  - name: Assistants
    description: Manage AI assistants that process and analyze documents within a project.
  - name: Batch Updates
    description: Batch document update operations for efficient bulk processing.
  - name: Channel
    description: Manage messaging channels for real-time communication within the platform.
  - name: Channel Types
  - name: Content Exception
    description: View and manage content exceptions that occur during document processing.
  - name: Content Object
    description: >-
      Manage content objects — individual files or processing results within a
      document family.
  - name: Credit Transactions
    description: View and manage credit transactions for organization billing.
  - name: Data Definitions
    description: >-
      Manage data definitions (taxonomies) that define document structure and
      extraction rules.
  - name: Data Forms
    description: Manage data form definitions for structured data capture from documents.
  - name: Data Stores
    description: Manage data stores for structured data storage.
  - name: Document Assignments
    description: Manage document assignments linking document families to users for review.
  - name: Document Family Statistics
    description: View statistics about document families including processing metrics.
  - name: Document Statuses
    description: >-
      Manage document status definitions for tracking document processing
      states.
  - name: Document Stores
    description: >-
      Manage document stores — containers for organizing and processing
      documents within a project.
  - name: Document Transitions
    description: Track state transitions of documents through processing stages.
  - name: DocumentFamilies
    description: >-
      Manage document families — groups of related content objects representing
      a single logical document.
  - name: Events
    description: >-
      Manage and publish platform events for real-time notifications and
      integrations.
  - name: Execution Slices
    description: View execution slice details within pipeline executions.
  - name: Executions
    description: View and manage processing execution records.
  - name: Intakes
    description: >-
      Manage intake configurations for ingesting documents from external
      sources.
  - name: Knowledge Clause Features
    description: Manage features within knowledge clauses.
  - name: Knowledge Clauses
    description: Manage knowledge clauses within knowledge items.
  - name: Knowledge Feature Types
    description: Manage knowledge feature type definitions.
  - name: Knowledge Features
    description: >-
      Manage knowledge features representing specific data points within
      knowledge items.
  - name: Knowledge Item Types
    description: Manage knowledge item type definitions.
  - name: Knowledge Items
    description: Manage individual knowledge items within knowledge sets.
  - name: Knowledge Set Snapshots
    description: Manage snapshots of knowledge sets for versioning and comparison.
  - name: Knowledge Set Sources
    description: Manage source references for knowledge sets.
  - name: Knowledge Sets
    description: >-
      Manage knowledge sets — collections of extracted knowledge used for
      AI-assisted processing.
  - name: Labels
    description: >-
      Manage labels used for categorizing and tagging resources within an
      organization.
  - name: Linked Deltas
    description: Manage linked deltas representing changes between document versions.
  - name: Messages
    description: Manage messages within channels.
  - name: Model Costs
  - name: Module Runtimes
    description: Manage module runtime definitions within the orchestrator.
  - name: Modules
  - name: Orchestrator Modules
    description: Manage processing modules for orchestrator pipelines.
  - name: Organizations
    description: >-
      Manage organizations — the top-level tenant in Kodexa. All projects,
      stores, and resources belong to an organization.
  - name: Permissions
  - name: Platform Configuration
    description: Manage platform-wide configuration settings.
  - name: Platform Overview
    description: Platform configuration and overview endpoints.
  - name: Product Groups
    description: Manage product groups that bundle related products together.
  - name: Product Overview
    description: Browse and manage products available on the Kodexa platform.
  - name: Product Subscriptions
    description: Manage product subscriptions linking organizations to products.
  - name: ProductProjectTemplates
    description: >-
      Manage product project templates that define default project
      configurations.
  - name: Project Resources
  - name: Project Status
    description: Manage project status definitions for tracking project lifecycle.
  - name: Project Templates
    description: Manage project templates that define reusable project configurations.
  - name: Projects
    description: >-
      Manage projects within an organization. Projects group related document
      stores, assistants, tasks, and processing pipelines.
  - name: Prompts
    description: Manage prompt templates used by AI assistants for document processing.
  - name: Purge Items
    description: Manage purge items for scheduled content cleanup.
  - name: Recent Executions
    description: View recent execution history for document processing.
  - name: Resource Resolution
  - name: Role Permissions
  - name: Roles
  - name: Service Bridges
  - name: Sessions
    description: Manage processing sessions for document operations.
  - name: Step Executions
    description: View step-level execution details within pipeline executions.
  - name: Tag Metadata
    description: Manage tag metadata definitions for document labeling and categorization.
  - name: Task Groups
  - name: Task Statuses
    description: Manage task status definitions for tracking task workflow states.
  - name: TaskActivity
    description: Track activity history on tasks, including status changes and comments.
  - name: TaskDocumentFamilies
    description: Manage the association between tasks and document families.
  - name: TaskGroupHistory
  - name: TaskTemplates
    description: Manage task templates that define reusable task configurations.
  - name: Tasks
    description: >-
      Manage tasks for document review workflows. Tasks have assignees,
      statuses, due dates, and can contain document families.
  - name: Team Members
    description: Manage team membership assignments.
  - name: Team Org Assignments
  - name: Team Project Assignments
  - name: Teams
    description: Manage teams for collaborative access control within projects.
  - name: Triggers
  - name: Users
    description: Manage platform user accounts.
  - name: Workspaces
    description: Manage workspaces for organizing project resources.
externalDocs:
  description: Kodexa Developer Documentation
  url: https://developer.kodexa.ai
paths:
  /api/project-templates:
    post:
      tags:
        - Project Templates
      summary: Create ProjectTemplateMetadata
      description: >-
        Creates a new ProjectTemplateMetadata. Project templates define reusable
        project configurations.
      operationId: createProjectTemplateMetadata
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectTemplateMetadataCreateRequest'
      responses:
        '201':
          description: Created ProjectTemplateMetadata
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectTemplateMetadata'
        '400':
          description: Bad Request — the request body or parameters are invalid.
        '401':
          description: Unauthorized — authentication is required.
        '403':
          description: Forbidden — the authenticated user does not have permission.
        '409':
          description: Conflict — a resource with the same unique key already exists.
components:
  schemas:
    ProjectTemplateMetadataCreateRequest:
      type: object
      properties:
        deprecated:
          type: boolean
        extensionPackRef:
          type: string
        metadata:
          $ref: '#/components/schemas/ProjectTemplate'
        name:
          type: string
        orgSlug:
          type: string
        organization:
          allOf:
            - $ref: '#/components/schemas/OrgRef'
          nullable: true
        organizationId:
          type: string
        publicAccess:
          type: boolean
        ref:
          type: string
        slug:
          type: string
        template:
          type: boolean
        type:
          type: string
        uri:
          type: string
          description: >-
            Computed resource URI (scheme://orgSlug/slug), present on serialized
            responses.
        yamlSource:
          type: string
          nullable: true
      required:
        - slug
      description: >-
        A project template defines a reusable project configuration that can be
        instantiated.
    ProjectTemplateMetadata:
      type: object
      properties:
        changeSequence:
          type: integer
          format: int32
        createdOn:
          type: string
          format: date-time
        deleteUserEmail:
          type: string
          nullable: true
        deleteUserId:
          type: string
          nullable: true
        deleted:
          type: boolean
        deletedDate:
          type: string
          format: date-time
          nullable: true
        deprecated:
          type: boolean
        extensionPackRef:
          type: string
        id:
          type: string
        metadata:
          $ref: '#/components/schemas/ProjectTemplate'
        name:
          type: string
        orgSlug:
          type: string
        organization:
          allOf:
            - $ref: '#/components/schemas/OrgRef'
          nullable: true
        organizationId:
          type: string
        publicAccess:
          type: boolean
        ref:
          type: string
        slug:
          type: string
        template:
          type: boolean
        type:
          type: string
        updatedOn:
          type: string
          format: date-time
        uri:
          type: string
          description: >-
            Computed resource URI (scheme://orgSlug/slug), present on serialized
            responses.
        uuid:
          type: string
        yamlSource:
          type: string
          nullable: true
      required:
        - id
        - uuid
        - createdOn
        - updatedOn
        - changeSequence
        - organizationId
        - slug
        - name
        - publicAccess
        - template
        - deprecated
        - deleted
        - metadata
      description: >-
        A project template defines a reusable project configuration that can be
        instantiated.
    ProjectTemplate:
      type: object
      properties:
        activityPlans:
          type: array
          items:
            $ref: '#/components/schemas/ProjectActivityPlan'
          nullable: true
        assistants:
          type: array
          items:
            $ref: '#/components/schemas/ProjectAssistant'
          nullable: true
        attributeStatuses:
          type: array
          items:
            $ref: '#/components/schemas/ProjectAttributeStatus'
          nullable: true
        checksum:
          type: string
        dataForms:
          type: array
          items:
            $ref: '#/components/schemas/ProjectDataForm'
          nullable: true
        deleteProtection:
          type: boolean
          nullable: true
        deprecated:
          type: boolean
          nullable: true
        description:
          type: string
        documentStatuses:
          type: array
          items:
            $ref: '#/components/schemas/ProjectDocumentStatus'
          nullable: true
        extensionPackRef:
          type: string
        helpUrl:
          type: string
        icon:
          type: string
        id:
          type: string
        imageUrl:
          type: string
        knowledgeSets:
          type: array
          items:
            $ref: '#/components/schemas/ProjectKnowledgeSet'
          nullable: true
        memory:
          allOf:
            - $ref: '#/components/schemas/ProjectMemory'
          nullable: true
        name:
          type: string
        options:
          allOf:
            - $ref: '#/components/schemas/ProjectOptions'
          nullable: true
        orgSlug:
          type: string
        overviewMarkdown:
          type: string
        provider:
          type: string
        providerImageUrl:
          type: string
        providerUrl:
          type: string
        publicAccess:
          type: boolean
        ref:
          type: string
        slug:
          type: string
        stores:
          type: array
          items:
            $ref: '#/components/schemas/ProjectStore'
          nullable: true
        tags:
          type: array
          items:
            $ref: '#/components/schemas/ProjectTemplateTag'
          nullable: true
        taskStatuses:
          type: array
          items:
            $ref: '#/components/schemas/ProjectTaskStatus'
          nullable: true
        taskTemplates:
          type: array
          items:
            $ref: '#/components/schemas/ProjectTaskTemplate'
          nullable: true
        taxonomies:
          type: array
          items:
            $ref: '#/components/schemas/ProjectTaxonomy'
          nullable: true
        template:
          type: boolean
        triggers:
          type: array
          items:
            $ref: '#/components/schemas/ProjectTrigger'
          nullable: true
        type:
          type: string
        version:
          type: string
    OrgRef:
      type: object
      properties:
        id:
          type: string
      required:
        - id
    ProjectActivityPlan:
      type: object
      properties:
        defaultDescriptionTemplate:
          type: string
        defaultTitleTemplate:
          type: string
        description:
          type: string
        documentFamilyGroups:
          nullable: true
        inputsSchema:
          nullable: true
        metadata:
          nullable: true
        name:
          type: string
        oldIdentifier:
          type: string
        ref:
          type: string
        slug:
          type: string
        steps:
          nullable: true
    ProjectAssistant:
      type: object
      properties:
        assistantDefinitionRef:
          type: string
        assistantRole:
          type: string
        chatEnabled:
          type: boolean
        description:
          type: string
        loggingEnabled:
          type: boolean
        name:
          type: string
        options:
          type: object
          additionalProperties: {}
          nullable: true
        priorityHint:
          type: integer
          format: int32
          nullable: true
        schedules:
          type: array
          items:
            $ref: '#/components/schemas/ScheduleDefinition'
          nullable: true
        showInTraining:
          type: boolean
        slug:
          type: string
        stores:
          type: array
          items:
            type: string
          nullable: true
        subscription:
          type: string
      required:
        - showInTraining
    ProjectAttributeStatus:
      type: object
      properties:
        color:
          type: string
        icon:
          type: string
        status:
          type: string
        statusType:
          $ref: '#/components/schemas/StatusType'
    ProjectDataForm:
      type: object
      properties:
        cards:
          nullable: true
        description:
          type: string
        entrypoints:
          type: array
          items:
            type: string
          nullable: true
        name:
          type: string
        ref:
          type: string
        slug:
          type: string
        templateRef:
          type: string
    ProjectDocumentStatus:
      type: object
      properties:
        color:
          type: string
        icon:
          type: string
        oldIdentifier:
          type: string
        slug:
          type: string
        status:
          type: string
        statusType:
          $ref: '#/components/schemas/StatusType'
      required:
        - status
    ProjectKnowledgeSet:
      type: object
      properties:
        active:
          type: boolean
        clauses:
          type: array
          items:
            $ref: '#/components/schemas/ProjectKnowledgeClause'
          nullable: true
        description:
          type: string
        featureExpression:
          allOf:
            - $ref: '#/components/schemas/KnowledgeExpression'
          nullable: true
        features:
          type: array
          items:
            $ref: '#/components/schemas/ProjectKnowledgeFeature'
          nullable: true
        knowledgeItems:
          type: array
          items:
            $ref: '#/components/schemas/ProjectKnowledgeItem'
          nullable: true
        name:
          type: string
        ref:
          type: string
        setType:
          type: string
        showOnNewProject:
          type: boolean
        slug:
          type: string
      required:
        - active
    ProjectMemory:
      type: object
      properties:
        changeSequence:
          type: integer
          format: int32
          nullable: true
        orderedDashboards:
          type: array
          items:
            type: string
          nullable: true
        recentFilters:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          nullable: true
        recentQueries:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          nullable: true
    ProjectOptions:
      type: object
      properties:
        companion:
          allOf:
            - $ref: '#/components/schemas/CompanionConfig'
          nullable: true
        dataOptions:
          type: array
          items:
            $ref: '#/components/schemas/Option'
          nullable: true
        dataProperties:
          type: object
          additionalProperties: {}
          nullable: true
        executionPolicy:
          allOf:
            - $ref: '#/components/schemas/ExecutionPolicy'
          nullable: true
        groupTaxonTypeFeatures:
          type: object
          additionalProperties: {}
          nullable: true
        options:
          type: array
          items:
            $ref: '#/components/schemas/Option'
          nullable: true
        properties:
          type: object
          additionalProperties: {}
          nullable: true
        taskOptions:
          allOf:
            - $ref: '#/components/schemas/ProjectTaskOptions'
          nullable: true
        taxonTypeFeatures:
          type: object
          additionalProperties: {}
          nullable: true
    ProjectStore:
      type: object
      properties:
        allowDataEditing:
          type: boolean
        deleteProtection:
          type: boolean
        description:
          type: string
        documentProperties:
          nullable: true
        files:
          type: array
          items:
            $ref: '#/components/schemas/ProjectStoreFile'
          nullable: true
        hasImage:
          type: boolean
        highQualityPreview:
          type: boolean
        labelExpressions:
          nullable: true
        name:
          type: string
        ref:
          type: string
        showStoreInLabeling:
          type: boolean
        showThumbnails:
          type: boolean
        slug:
          type: string
        storePurpose:
          type: string
        storeType:
          type: string
        templateRef:
          type: string
      required:
        - showThumbnails
        - showStoreInLabeling
        - highQualityPreview
    ProjectTemplateTag:
      type: object
      properties:
        color:
          type: string
        label:
          type: string
    ProjectTaskStatus:
      type: object
      properties:
        color:
          type: string
        icon:
          type: string
        label:
          type: string
        locked:
          type: boolean
        oldIdentifier:
          type: string
        slug:
          type: string
        statusType:
          $ref: '#/components/schemas/TaskStatusType'
      required:
        - label
    ProjectTaskTemplate:
      type: object
      properties:
        description:
          type: string
        metadata:
          $ref: '#/components/schemas/TaskTemplateMetadata'
        name:
          type: string
        oldIdentifier:
          type: string
        ref:
          type: string
        slug:
          type: string
      required:
        - metadata
    ProjectTaxonomy:
      type: object
      properties:
        description:
          type: string
        name:
          type: string
        ref:
          type: string
        slug:
          type: string
        taxonomyType:
          type: string
        taxons:
          nullable: true
        templateRef:
          type: string
    ProjectTrigger:
      type: object
      properties:
        activityPlanRef:
          type: string
        enabled:
          type: boolean
          nullable: true
        eventFilter:
          nullable: true
        eventKind:
          type: string
        inputMapping:
          nullable: true
        metadata:
          nullable: true
        name:
          type: string
        slug:
          type: string
      required:
        - slug
        - eventKind
        - activityPlanRef
    ScheduleDefinition:
      type: object
      properties:
        cronExpression:
          type: string
        type:
          type: string
    StatusType:
      type: string
      enum:
        - UNRESOLVED
        - RESOLVED
    ProjectKnowledgeClause:
      type: object
      properties:
        features:
          type: array
          items:
            $ref: '#/components/schemas/ProjectKnowledgeClauseFeature'
          nullable: true
    KnowledgeExpression:
      type: object
      properties:
        children:
          type: array
          items:
            $ref: '#/components/schemas/KnowledgeExpression'
          nullable: true
        slug:
          type: string
        type:
          $ref: '#/components/schemas/KnowledgeExpressionType'
    ProjectKnowledgeFeature:
      type: object
      properties:
        active:
          type: boolean
        featureTypeRef:
          type: string
        originalFeatureId:
          type: string
        properties:
          type: object
          additionalProperties: {}
          nullable: true
        slug:
          type: string
        uuid:
          type: string
      required:
        - active
    ProjectKnowledgeItem:
      type: object
      properties:
        active:
          type: boolean
          nullable: true
        description:
          type: string
        knowledgeItemTypeRef:
          type: string
        properties:
          type: object
          additionalProperties: {}
          nullable: true
        sequenceOrder:
          type: integer
          format: int32
          nullable: true
        slug:
          type: string
        title:
          type: string
    CompanionConfig:
      type: object
      properties:
        agentRuntimeRef:
          type: string
          nullable: true
        moduleRefs:
          type: array
          items:
            type: string
          nullable: true
        prompt:
          type: string
          nullable: true
    Option:
      type: object
      properties:
        aliases:
          type: array
          items:
            type: string
          nullable: true
        default: {}
        description:
          type: string
        developerOnly:
          type: boolean
          nullable: true
        displayProperties:
          type: object
          additionalProperties: {}
          nullable: true
        falseLabel:
          type: string
        featureFlag:
          type: string
        groupOptions:
          type: array
          items:
            $ref: '#/components/schemas/Option'
          nullable: true
        hint:
          type: string
        label:
          type: string
        listDescription:
          type: string
        listLabel:
          type: string
        listType:
          type: string
        name:
          type: string
        overviewMarkdown:
          type: string
        possibleValues:
          type: array
          items:
            $ref: '#/components/schemas/PossibleValue'
          nullable: true
        properties:
          type: object
          additionalProperties: {}
          nullable: true
        required:
          type: boolean
          nullable: true
        showIf:
          type: string
        showOnPopup:
          type: boolean
          nullable: true
        subType:
          type: string
        supportArticle:
          type: string
        tabName:
          type: string
        type:
          type: string
    ExecutionPolicy:
      type: object
      properties:
        backoffBaseSeconds:
          type: integer
          format: int32
          nullable: true
        backoffStrategy:
          type: string
          nullable: true
        maxAttempts:
          type: integer
          format: int32
          nullable: true
        onExhausted:
          type: string
          nullable: true
        timeoutSeconds:
          type: integer
          format: int32
          nullable: true
    ProjectTaskOptions:
      type: object
      properties:
        showNewTask:
          type: boolean
      required:
        - showNewTask
    ProjectStoreFile:
      type: object
      properties:
        metadata:
          type: object
          additionalProperties: {}
          nullable: true
        url:
          type: string
    TaskStatusType:
      type: string
      enum:
        - OPEN
        - IN_PROGRESS
        - DONE
        - BLOCKED
        - PENDING
    TaskTemplateMetadata:
      type: object
      properties:
        actions:
          type: array
          items:
            $ref: '#/components/schemas/TaskTemplateAction'
          nullable: true
        agentShortcuts:
          type: array
          items:
            $ref: '#/components/schemas/AgentShortcut'
          nullable: true
        aiNaming:
          allOf:
            - $ref: '#/components/schemas/AINamingConfig'
          nullable: true
        chatPrompt:
          allOf:
            - $ref: '#/components/schemas/ChatPromptConfig'
          nullable: true
        companion:
          allOf:
            - $ref: '#/components/schemas/TaskCompanionConfig'
          nullable: true
        documentFamilyGroups:
          type: array
          items:
            $ref: '#/components/schemas/DocumentFamilyGroup'
          nullable: true
        executionPolicy:
          allOf:
            - $ref: '#/components/schemas/ExecutionPolicy'
          nullable: true
        forms:
          type: array
          items:
            $ref: '#/components/schemas/TemplateDataForm'
          nullable: true
        options:
          type: array
          items:
            $ref: '#/components/schemas/TaskTemplateOption'
          nullable: true
        priority:
          type: integer
          format: int32
          nullable: true
        properties:
          type: object
          additionalProperties: {}
          nullable: true
        teamSlug:
          type: string
        workspaceId:
          type: string
    ProjectKnowledgeClauseFeature:
      type: object
      properties:
        featureUuid:
          type: string
        positive:
          type: boolean
      required:
        - positive
    KnowledgeExpressionType:
      type: string
      enum:
        - FEATURE
        - NOT
        - AND
        - OR
    PossibleValue:
      type: object
      properties:
        description:
          type: string
        label:
          type: string
        value: {}
    TaskTemplateAction:
      type: object
      properties:
        label:
          type: string
        properties:
          type: object
          additionalProperties: {}
          nullable: true
        slug:
          type: string
          description: >-
            The action's identity: the dependsOn qualifier other plan steps
            reference and the correlation token recorded on task completion.
        type:
          type: string
        uuid:
          type: string
          description: >-
            DEPRECATED — legacy spelling of slug. Readers alias it; writers must
            set slug. Will be removed once stored metadata has converged (watch
            the materializer's legacy-uuid warnings).
          deprecated: true
    AgentShortcut:
      type: object
      properties:
        icon:
          type: string
        id:
          type: string
        label:
          type: string
        prompt:
          type: string
      required:
        - id
        - label
        - prompt
    AINamingConfig:
      type: object
      properties:
        enabled:
          type: boolean
        prompt:
          type: string
      required:
        - enabled
    ChatPromptConfig:
      type: object
      properties:
        enabled:
          type: boolean
        prompt:
          type: string
      required:
        - enabled
    TaskCompanionConfig:
      type: object
      properties:
        agentRuntimeRef:
          type: string
          nullable: true
        moduleRefs:
          type: array
          items:
            type: string
          nullable: true
        prompt:
          type: string
          nullable: true
    DocumentFamilyGroup:
      type: object
      properties:
        automaticallyAdd:
          type: boolean
          nullable: true
        documentFamilyFilter:
          type: string
        editable:
          type: boolean
          nullable: true
        hardMaxPages:
          type: integer
          format: int32
          nullable: true
        knowledgeFeatures:
          type: array
          items:
            $ref: '#/components/schemas/DocumentFamilyGroupFeature'
          nullable: true
        maxHits:
          type: integer
          format: int32
          nullable: true
        maxPages:
          type: integer
          format: int32
          nullable: true
        maxSize:
          type: integer
          format: int32
          nullable: true
        name:
          type: string
        notes:
          type: string
        required:
          type: boolean
          nullable: true
        sort:
          type: string
        titlePrompt:
          type: string
        uniqueFilenames:
          type: boolean
          nullable: true
        uploadOnly:
          type: boolean
          nullable: true
    TemplateDataForm:
      type: object
      properties:
        actions:
          type: array
          items:
            $ref: '#/components/schemas/TaskTemplateAction'
          nullable: true
        availablePanels:
          type: object
          additionalProperties:
            type: boolean
          nullable: true
        dataFormRef:
          type: string
        properties:
          type: object
          additionalProperties: {}
          nullable: true
    TaskTemplateOption:
      type: object
      properties:
        aliases:
          type: array
          items:
            type: string
          nullable: true
        default: {}
        description:
          type: string
        developerOnly:
          type: boolean
          nullable: true
        displayProperties:
          type: object
          additionalProperties: {}
          nullable: true
        falseLabel:
          type: string
        featureFlag:
          type: string
        groupOptions:
          type: array
          items:
            $ref: '#/components/schemas/TaskTemplateOption'
          nullable: true
        hint:
          type: string
        label:
          type: string
        listDescription:
          type: string
        listLabel:
          type: string
        listType:
          type: string
        name:
          type: string
        overviewMarkdown:
          type: string
        possibleValues:
          type: array
          items:
            $ref: '#/components/schemas/TaskPossibleValue'
          nullable: true
        properties:
          type: object
          additionalProperties: {}
          nullable: true
        required:
          type: boolean
          nullable: true
        showIf:
          type: string
        showOnPopup:
          type: boolean
          nullable: true
        subType:
          type: string
        supportArticle:
          type: string
        tabName:
          type: string
        type:
          type: string
    DocumentFamilyGroupFeature:
      type: object
      properties:
        featureTypeRef:
          type: string
        required:
          type: boolean
          nullable: true
      required:
        - featureTypeRef
    TaskPossibleValue:
      type: object
      properties:
        description:
          type: string
        label:
          type: string
        value: {}
  securitySchemes:
    x-api-key:
      type: apiKey
      name: x-api-key
      in: header
      description: >-
        API key for authentication. Create one from the Kodexa platform UI under
        Settings > Access Tokens.
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT Bearer token obtained from the authentication provider.

````