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

# Import or update a cluster

> Applies an ImportCluster specification: creates the cluster when no cluster with that name exists in your organisation, otherwise updates it, including its stacks and GitOps settings. By default the apply runs in the background and the call answers `202` with `{"status": "accepted"}` (a `409` means an apply for the same cluster is already running); pass `wait=true` to run it synchronously and receive the result or the rejection reason.



## OpenAPI

````yaml https://platform.ankra.app/openapi.json post /api/v1/clusters/import
openapi: 3.1.0
info:
  title: FastAPI
  version: 0.1.0
servers:
  - url: https://platform.ankra.app
security: []
tags:
  - name: Organisation IAM
    description: >-
      Custom organisation roles and scoped role assignments for member and
      service-account identities.
  - name: Clusters
    description: Create, inspect and manage clusters, and the stacks deployed on them.
  - name: Managed Clusters
    description: Provider-managed control planes, driven through one common surface.
  - name: Imported Clusters
    description: Clusters that already existed and were connected to Ankra.
  - name: Cluster Access
    description: Kubeconfigs, service-account tokens and per-cluster access grants.
  - name: Kubernetes
    description: Read and act on the Kubernetes objects inside a cluster.
  - name: AWS Clusters
    description: >-
      Provision and manage self-managed k3s / kubeadm clusters on AWS EC2 in
      your own VPC.
  - name: Ankra Cloud Clusters
    description: >-
      Provision and manage self-managed kubeadm / k3s clusters on Ankra Cloud
      servers: a private network, a NAT router and a bastion per cluster.
  - name: DigitalOcean Clusters
    description: Provision and manage DigitalOcean Kubernetes clusters.
  - name: Hetzner Clusters
    description: Provision and manage Hetzner Kubernetes clusters.
  - name: OVH Clusters
    description: Provision and manage OVH Kubernetes clusters.
  - name: Scaleway Clusters
    description: Provision and manage Scaleway Kapsule clusters.
  - name: UpCloud Clusters
    description: Provision and manage UpCloud Kubernetes clusters.
  - name: Applications
    description: Deploy, configure and observe applications across the fleet.
  - name: Pipelines
    description: Pipeline definitions and the approval of the authority they declare.
  - name: Backups
    description: >-
      Backup vaults, restore points, protection posture and captures for stacks
      and application deployments; a completed capture is not a verified
      restore.
  - name: Stack Profiles
    description: Reusable stack definitions, their versions and sharing.
  - name: Services
    description: >-
      Versioned service packages and explicit sharing. Runtime admission is
      separate from publication.
  - name: Charts
    description: Browse the chart catalogue behind stacks and addons.
  - name: Helm
    description: Helm registries, credentials and the charts they expose.
  - name: Executions
    description: Long-running platform executions and their jobs.
  - name: Operations
    description: Cancel in-flight cluster operations and their jobs.
  - name: Chat
    description: Conversational sessions, plans and confirmable actions.
  - name: AI Management
    description: >-
      Customer agent lifecycle, authenticated identity and organisation
      automation controls.
  - name: AI Agent Runs
    description: Autonomous agent runs and their outcomes.
  - name: AI Tickets
    description: The AI ticket board, its sync connections and settings.
  - name: AI Playbooks
    description: Reusable playbooks the AI lanes execute.
  - name: AI Conditions
    description: Conditions that gate AI autonomy.
  - name: AI Remediation
    description: >-
      The organisation's auto-remediation policy: what the AI lanes may fix by
      themselves, and who approves the rest.
  - name: AI Engineering Handoffs
    description: Work the AI lanes escalate to a human engineer.
  - name: AI Environment
    description: The environment and base stacks AI demos deploy into.
  - name: Security
    description: Findings, advisories, SBOMs, compliance and posture.
  - name: Cost
    description: Cluster and fleet cost, rate cards and cost settings.
  - name: Decisions
    description: >-
      The decision ledger behind the Security and Cost queues: proposals a
      surface computed, the approve and set-aside decisions people took on them,
      and the receipts of running them.
  - name: Billing
    description: Subscription and spend caps.
  - name: Organisation
    description: Members, invitations, audit logs and organisation settings.
  - name: Account Tokens
    description: Personal access tokens for the API and CLI.
  - name: Credentials
    description: The shared credential store.
  - name: AWS Credentials
    description: >-
      AWS credentials: access keys or CloudFormation-onboarded STS roles for
      cost, EKS and self-managed provisioning.
  - name: Ankra Cloud Credentials
    description: >-
      Ankra Cloud API tokens, shared by the self-managed and managed Ankra Cloud
      lanes.
  - name: Azure Credentials
    description: Azure credentials and SSH keys.
  - name: DigitalOcean Credentials
    description: DigitalOcean credentials and SSH keys.
  - name: Hetzner Credentials
    description: Hetzner credentials and SSH keys.
  - name: OVH Credentials
    description: OVH credentials and SSH keys.
  - name: Scaleway Credentials
    description: Scaleway credentials.
  - name: UpCloud Credentials
    description: UpCloud credentials and SSH keys.
  - name: Data Source Credentials
    description: Credentials for metrics and log sources.
  - name: DNS Credentials
    description: Credentials for DNS providers.
  - name: Object Storage Buckets
    description: >-
      Buckets Ankra creates and manages on an organisation's own provider
      credentials.
  - name: DNS
    description: DNS zones and records, including custom organisation zones.
  - name: Cloudflare
    description: Cloudflare domains and the credentials behind them.
  - name: Variables
    description: Organisation- and cluster-scoped variables.
  - name: SOPS
    description: Encrypt and decrypt values with the organisation SOPS config.
  - name: Alerts
    description: Alert integrations and ingest credentials.
  - name: Notifications
    description: Notification routes and their delivery targets.
  - name: Support
    description: Support tickets.
  - name: AI Settings
    description: Organisation AI provider, model catalog and per-function model settings
paths:
  /api/v1/clusters/import:
    post:
      tags:
        - Clusters
      summary: Import or update a cluster
      description: >-
        Applies an ImportCluster specification: creates the cluster when no
        cluster with that name exists in your organisation, otherwise updates
        it, including its stacks and GitOps settings. By default the apply runs
        in the background and the call answers `202` with `{"status":
        "accepted"}` (a `409` means an apply for the same cluster is already
        running); pass `wait=true` to run it synchronously and receive the
        result or the rejection reason.
      operationId: create_or_update_import_cluster_endpoint_api_v1_clusters_import_post
      parameters:
        - in: query
          name: wait
          required: false
          schema:
            default: false
            title: Wait
            type: boolean
        - in: header
          name: authorization
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Authorization
        - in: header
          name: x-ankra-organisation-id
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: X-Ankra-Organisation-Id
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateOrUpdateImportClusterRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/CreateOrUpdateImportClusterResult'
                  - $ref: '#/components/schemas/AsyncWriteAcceptedResponse'
                title: >-
                  Response Create Or Update Import Cluster Endpoint Api V1
                  Clusters Import Post
          description: Successful Response
        '404':
          description: Not found
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
components:
  schemas:
    CreateOrUpdateImportClusterRequest:
      properties:
        criticality:
          anyOf:
            - enum:
                - production
                - staging
                - development
                - disposable
              type: string
            - type: 'null'
          title: Criticality
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
        environment:
          anyOf:
            - maxLength: 50
              minLength: 1
              type: string
            - type: 'null'
          title: Environment
        expected_git_repository:
          anyOf:
            - $ref: '#/components/schemas/GitRepository'
            - type: 'null'
        name:
          title: Name
          type: string
        spec:
          anyOf:
            - $ref: '#/components/schemas/ResourceSpecification'
            - type: 'null'
      required:
        - name
      title: CreateOrUpdateImportClusterRequest
      type: object
    CreateOrUpdateImportClusterResult:
      properties:
        cluster_id:
          format: uuid4
          title: Cluster Id
          type: string
        commit_sha:
          anyOf:
            - type: string
            - type: 'null'
          title: Commit Sha
        commit_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Commit Url
        errors:
          default: []
          items:
            $ref: >-
              #/components/schemas/cluster_engine__resource_manager__resource_manager__ResourceError
          title: Errors
          type: array
        import_command:
          title: Import Command
          type: string
        name:
          title: Name
          type: string
        organisation_id:
          format: uuid4
          title: Organisation Id
          type: string
        warnings:
          default: []
          items:
            $ref: '#/components/schemas/ValidationWarning'
          title: Warnings
          type: array
      required:
        - name
        - cluster_id
        - organisation_id
        - import_command
      title: CreateOrUpdateImportClusterResult
      type: object
    AsyncWriteAcceptedResponse:
      properties:
        status:
          default: accepted
          title: Status
          type: string
      title: AsyncWriteAcceptedResponse
      type: object
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          title: Detail
          type: array
      title: HTTPValidationError
      type: object
    GitRepository:
      description: >-
        GitHub Git repository request shape.


        Legacy `repository: 'owner/name'` format is preserved as the API
        contract because

        `ankra-cli` releases shipped to end-users send this shape. This class is
        the

        `__external_type__` for `GithubRepositoryResource`; renaming or
        restructuring

        the fields is a permanent breaking change and is forbidden.
      properties:
        branch:
          title: Branch
          type: string
        credential_name:
          title: Credential Name
          type: string
        provider:
          const: github
          default: github
          title: Provider
          type: string
        repository:
          title: Repository
          type: string
      required:
        - credential_name
        - branch
        - repository
      title: GitRepository
      type: object
    ResourceSpecification:
      properties:
        argo_cd:
          anyOf:
            - $ref: '#/components/schemas/ArgoCD'
            - type: 'null'
        git_repository:
          anyOf:
            - discriminator:
                mapping:
                  bitbucket_cloud:
                    $ref: '#/components/schemas/BitbucketCloudRepositoryExternal'
                  github:
                    $ref: '#/components/schemas/GitRepository'
                propertyName: provider
              oneOf:
                - $ref: '#/components/schemas/GitRepository'
                - $ref: '#/components/schemas/BitbucketCloudRepositoryExternal'
            - type: 'null'
          description: >-
            The repository the cluster's GitOps state is pushed to. provider is
            github (the default when omitted) or bitbucket_cloud; any other
            value, bitbucket_dc included, is refused with a 422 literal_error on
            git_repository.provider.
          title: Git Repository
        helm_registries:
          anyOf:
            - items:
                $ref: '#/components/schemas/HelmRegistryDeclaration'
              type: array
            - type: 'null'
          title: Helm Registries
        kubernetes:
          anyOf:
            - $ref: '#/components/schemas/Kubernetes'
            - type: 'null'
        prometheus_credential:
          anyOf:
            - $ref: '#/components/schemas/PrometheusCredential'
            - type: 'null'
        prometheus_metrics:
          anyOf:
            - $ref: '#/components/schemas/PrometheusMetrics'
            - type: 'null'
        provider:
          $ref: '#/components/schemas/CloudProvider'
          default: imported
        stacks:
          default: []
          items:
            anyOf:
              - $ref: '#/components/schemas/FrontendStack-Input'
              - $ref: '#/components/schemas/Stack'
          title: Stacks
          type: array
      title: ResourceSpecification
      type: object
    cluster_engine__resource_manager__resource_manager__ResourceError:
      properties:
        errors:
          items:
            $ref: '#/components/schemas/ErrorItem'
          title: Errors
          type: array
        kind:
          type: string
          title: Kind
        name:
          title: Name
          type: string
      required:
        - name
        - kind
      title: ResourceError
      type: object
    ValidationWarning:
      properties:
        category:
          $ref: '#/components/schemas/ValidationWarningCategory'
        key:
          type: string
          title: Key
        kind:
          type: string
          title: Kind
        message:
          title: Message
          type: string
        name:
          title: Name
          type: string
      required:
        - kind
        - name
        - key
        - message
        - category
      title: ValidationWarning
      type: object
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          title: Location
          type: array
        msg:
          title: Message
          type: string
        type:
          title: Error Type
          type: string
      required:
        - loc
        - msg
        - type
      title: ValidationError
      type: object
    ArgoCD:
      properties:
        namespace:
          title: Namespace
          type: string
        version:
          title: Version
          type: string
      required:
        - namespace
        - version
      title: ArgoCD
      type: object
    BitbucketCloudRepositoryExternal:
      properties:
        branch:
          title: Branch
          type: string
        credential_name:
          title: Credential Name
          type: string
        provider:
          const: bitbucket_cloud
          default: bitbucket_cloud
          title: Provider
          type: string
        repo_slug:
          title: Repo Slug
          type: string
        workspace:
          title: Workspace
          type: string
      required:
        - credential_name
        - branch
        - workspace
        - repo_slug
      title: BitbucketCloudRepositoryExternal
      type: object
    HelmRegistryDeclaration:
      properties:
        credential_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Credential Name
        exclude_charts:
          anyOf:
            - type: array
              items:
                type: string
            - type: 'null'
          title: Exclude Charts
        name:
          title: Name
          type: string
        url:
          title: Url
          type: string
      required:
        - name
        - url
      title: HelmRegistryDeclaration
      type: object
    Kubernetes:
      properties:
        version:
          default: 0.0.0
          title: Version
          type: string
      title: Kubernetes
      type: object
    PrometheusCredential:
      properties:
        name:
          title: Name
          type: string
        password:
          anyOf:
            - type: string
            - type: 'null'
          title: Password
        token:
          anyOf:
            - type: string
            - type: 'null'
          title: Token
        username:
          anyOf:
            - type: string
            - type: 'null'
          title: Username
      required:
        - name
      title: PrometheusCredential
      type: object
    PrometheusMetrics:
      properties:
        credential_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Credential Name
        endpoint:
          title: Endpoint
          type: string
        flavor:
          anyOf:
            - type: string
            - type: 'null'
          title: Flavor
        tenant_id:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            Sent as the X-Scope-OrgID header on every query, for a multi-tenant
            Mimir or Cortex.
          title: Tenant Id
      required:
        - endpoint
      title: PrometheusMetrics
      type: object
    CloudProvider:
      enum:
        - aws
        - imported
        - hetzner
        - ovh
        - upcloud
        - digitalocean
      title: CloudProvider
      type: string
    FrontendStack-Input:
      properties:
        addons:
          default: []
          items:
            anyOf:
              - $ref: '#/components/schemas/FrontendAddon-Input'
              - $ref: '#/components/schemas/Addon-Input'
          title: Addons
          type: array
        applications:
          default: []
          items:
            anyOf:
              - $ref: '#/components/schemas/FrontendApplication-Input'
              - $ref: '#/components/schemas/Application-Input'
          title: Applications
          type: array
        delete_permanently:
          default: false
          title: Delete Permanently
          type: boolean
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
        description_from_file:
          anyOf:
            - type: string
            - type: 'null'
          title: Description From File
        draft_id:
          anyOf:
            - format: uuid4
              type: string
            - type: 'null'
          title: Draft Id
        has_encrypted_values:
          default: false
          title: Has Encrypted Values
          type: boolean
        is_draft_only:
          default: false
          title: Is Draft Only
          type: boolean
        jobs:
          default: []
          items:
            $ref: '#/components/schemas/SchedulerJob-Input'
          title: Jobs
          type: array
        lifecycle:
          anyOf:
            - $ref: '#/components/schemas/StackLifecycle'
            - type: 'null'
        manifests:
          default: []
          items:
            anyOf:
              - $ref: '#/components/schemas/FrontendManifest-Input'
              - $ref: '#/components/schemas/Manifest'
          title: Manifests
          type: array
        name:
          title: Name
          type: string
        state:
          anyOf:
            - $ref: '#/components/schemas/ResourceState'
            - type: 'null'
        variables:
          additionalProperties:
            type: string
          default: {}
          title: Variables
          type: object
      required:
        - name
      title: FrontendStack
      type: object
    Stack:
      properties:
        addons:
          default: []
          items:
            anyOf:
              - $ref: '#/components/schemas/FrontendAddon-Input'
              - $ref: '#/components/schemas/Addon-Input'
          title: Addons
          type: array
        applications:
          default: []
          items:
            anyOf:
              - $ref: '#/components/schemas/FrontendApplication-Input'
              - $ref: '#/components/schemas/Application-Input'
          title: Applications
          type: array
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
        description_from_file:
          anyOf:
            - type: string
            - type: 'null'
          title: Description From File
        manifests:
          default: []
          items:
            anyOf:
              - $ref: '#/components/schemas/FrontendManifest-Input'
              - $ref: '#/components/schemas/Manifest'
          title: Manifests
          type: array
        name:
          title: Name
          type: string
        variables:
          additionalProperties:
            type: string
          default: {}
          title: Variables
          type: object
      required:
        - name
      title: Stack
      type: object
    ErrorItem:
      properties:
        key:
          type: string
          title: Key
        message:
          title: Message
          type: string
      required:
        - key
        - message
      title: ErrorItem
      type: object
    ValidationWarningCategory:
      enum:
        - secrets_plaintext
        - encrypted_paths_over_match
      title: ValidationWarningCategory
      type: string
    FrontendAddon-Input:
      properties:
        chart_icon:
          anyOf:
            - type: string
            - type: 'null'
          title: Chart Icon
        chart_name:
          title: Chart Name
          type: string
        chart_version:
          title: Chart Version
          type: string
        configuration:
          anyOf:
            - $ref: '#/components/schemas/AddonStandaloneConfiguration'
            - type: 'null'
        delete_permanently:
          default: false
          title: Delete Permanently
          type: boolean
        dependencies_override:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Dependencies Override
        draft:
          default: false
          title: Draft
          type: boolean
        force_delete:
          default: false
          title: Force Delete
          type: boolean
        health:
          anyOf:
            - type: string
            - type: 'null'
          title: Health
        intent_requested_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Intent Requested At
        job:
          anyOf:
            - $ref: '#/components/schemas/SchedulerJob-Input'
            - type: 'null'
        job_configuration:
          anyOf:
            - $ref: '#/components/schemas/JobConfiguration'
            - type: 'null'
        name:
          title: Name
          type: string
        namespace:
          title: Namespace
          type: string
        namespace_migration_strategy:
          anyOf:
            - $ref: '#/components/schemas/NamespaceMigrationStrategy'
            - type: 'null'
        node_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Id
        parents:
          default: []
          description: >-
            Parent dependencies of this resource. Omitted or null: existing
            dependencies are PRESERVED. Provided: the list authoritatively
            replaces existing dependencies (an explicit empty list removes them
            all). Before 2026-07 omission cleared all dependencies; see ADR
            0008.
          items:
            $ref: '#/components/schemas/Parent'
          title: Parents
          type: array
        position:
          anyOf:
            - $ref: '#/components/schemas/FrontendStackItemPosition'
            - type: 'null'
        registry_credential_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Registry Credential Name
        registry_name:
          title: Registry Name
          type: string
        registry_url:
          title: Registry Url
          type: string
        resource_id:
          anyOf:
            - format: uuid4
              type: string
            - type: 'null'
          title: Resource Id
        settings:
          anyOf:
            - $ref: '#/components/schemas/AddonSettings-Input'
            - type: 'null'
        state:
          anyOf:
            - $ref: '#/components/schemas/ResourceState'
            - type: 'null'
        version_history:
          default: []
          items:
            $ref: '#/components/schemas/VersionHistoryEntry'
          title: Version History
          type: array
      required:
        - name
        - chart_name
        - chart_version
        - registry_name
        - registry_url
        - namespace
      title: FrontendAddon
      type: object
    Addon-Input:
      properties:
        chart_name:
          title: Chart Name
          type: string
        chart_version:
          title: Chart Version
          type: string
        configuration:
          anyOf:
            - $ref: '#/components/schemas/AddonStandaloneConfiguration'
            - type: 'null'
        dependencies_override:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Dependencies Override
        name:
          title: Name
          type: string
        namespace:
          title: Namespace
          type: string
        namespace_migration_strategy:
          anyOf:
            - $ref: '#/components/schemas/NamespaceMigrationStrategy'
            - type: 'null'
        parents:
          default: []
          description: >-
            Parent dependencies of this resource. Omitted or null: existing
            dependencies are PRESERVED. Provided: the list authoritatively
            replaces existing dependencies (an explicit empty list removes them
            all). Before 2026-07 omission cleared all dependencies; see ADR
            0008.
          items:
            $ref: '#/components/schemas/Parent'
          title: Parents
          type: array
        registry_credential_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Registry Credential Name
        registry_name:
          title: Registry Name
          type: string
        registry_url:
          title: Registry Url
          type: string
        settings:
          anyOf:
            - $ref: '#/components/schemas/AddonSettings-Input'
            - type: 'null'
      required:
        - name
        - chart_name
        - chart_version
        - registry_name
        - registry_url
        - namespace
      title: Addon
      type: object
    FrontendApplication-Input:
      properties:
        delete_permanently:
          default: false
          title: Delete Permanently
          type: boolean
        dependencies_override:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Dependencies Override
        draft:
          default: false
          title: Draft
          type: boolean
        encrypted_paths:
          anyOf:
            - type: array
              items:
                type: string
            - type: 'null'
          title: Encrypted Paths
        from_file:
          anyOf:
            - type: string
            - type: 'null'
          title: From File
        health:
          anyOf:
            - type: string
            - type: 'null'
          title: Health
        job:
          anyOf:
            - $ref: '#/components/schemas/SchedulerJob-Input'
            - type: 'null'
        job_configuration:
          anyOf:
            - $ref: '#/components/schemas/JobConfiguration'
            - type: 'null'
        manifest_base64:
          anyOf:
            - type: string
            - type: 'null'
          title: Manifest Base64
        name:
          title: Name
          type: string
        namespace:
          anyOf:
            - type: string
            - type: 'null'
          title: Namespace
        node_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Id
        parameters:
          additionalProperties:
            type: string
          default: {}
          title: Parameters
          type: object
        parents:
          default: []
          description: >-
            Parent dependencies of this resource. Omitted or null: existing
            dependencies are PRESERVED. Provided: the list authoritatively
            replaces existing dependencies (an explicit empty list removes them
            all). Before 2026-07 omission cleared all dependencies; see ADR
            0008.
          items:
            $ref: '#/components/schemas/Parent'
          title: Parents
          type: array
        platform_application_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Platform Application Id
        platform_application_version:
          anyOf:
            - type: string
            - type: 'null'
          title: Platform Application Version
        position:
          anyOf:
            - $ref: '#/components/schemas/FrontendStackItemPosition'
            - type: 'null'
        resource_id:
          anyOf:
            - format: uuid4
              type: string
            - type: 'null'
          title: Resource Id
        settings:
          anyOf:
            - $ref: '#/components/schemas/AddonSettings-Input'
            - type: 'null'
        state:
          anyOf:
            - $ref: '#/components/schemas/ResourceState'
            - type: 'null'
        version_history:
          default: []
          items:
            $ref: '#/components/schemas/VersionHistoryEntry'
          title: Version History
          type: array
      required:
        - name
      title: FrontendApplication
      type: object
    Application-Input:
      properties:
        dependencies_override:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Dependencies Override
        encrypted_paths:
          anyOf:
            - type: array
              items:
                type: string
            - type: 'null'
          title: Encrypted Paths
        from_file:
          anyOf:
            - type: string
            - type: 'null'
          title: From File
        manifest_base64:
          anyOf:
            - type: string
            - type: 'null'
          title: Manifest Base64
        name:
          title: Name
          type: string
        namespace:
          anyOf:
            - type: string
            - type: 'null'
          title: Namespace
        parameters:
          additionalProperties:
            type: string
          default: {}
          title: Parameters
          type: object
        parents:
          default: []
          description: >-
            Parent dependencies of this resource. Omitted or null: existing
            dependencies are PRESERVED. Provided: the list authoritatively
            replaces existing dependencies (an explicit empty list removes them
            all). Before 2026-07 omission cleared all dependencies; see ADR
            0008.
          items:
            $ref: '#/components/schemas/Parent'
          title: Parents
          type: array
        platform_application_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Platform Application Id
        platform_application_version:
          anyOf:
            - type: string
            - type: 'null'
          title: Platform Application Version
        settings:
          anyOf:
            - $ref: '#/components/schemas/AddonSettings-Input'
            - type: 'null'
      required:
        - name
      title: Application
      type: object
    SchedulerJob-Input:
      properties:
        created_at:
          format: date-time
          type: string
          title: Created At
        job_id:
          format: uuid4
          title: Job Id
          type: string
        name:
          title: Name
          type: string
        status:
          $ref: '#/components/schemas/JobStatus'
        updated_at:
          format: date-time
          type: string
          title: Updated At
        superseded:
          default: false
          title: Superseded
          type: boolean
      required:
        - job_id
        - name
        - status
        - created_at
        - updated_at
      title: SchedulerJob
      type: object
    StackLifecycle:
      enum:
        - draft_only
        - deployed_clean
        - deployed_dirty
        - tombstoned
      title: StackLifecycle
      type: string
    FrontendManifest-Input:
      properties:
        auto_remediate:
          default: false
          title: Auto Remediate
          type: boolean
        delete_permanently:
          default: false
          title: Delete Permanently
          type: boolean
        dependencies_override:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Dependencies Override
        draft:
          default: false
          title: Draft
          type: boolean
        encrypted_paths:
          anyOf:
            - type: array
              items:
                type: string
            - type: 'null'
          title: Encrypted Paths
        force:
          default: false
          title: Force
          type: boolean
        from_file:
          anyOf:
            - type: string
            - type: 'null'
          title: From File
        job:
          anyOf:
            - $ref: '#/components/schemas/SchedulerJob-Input'
            - type: 'null'
        job_configuration:
          anyOf:
            - $ref: '#/components/schemas/JobConfiguration'
            - type: 'null'
        manifest_base64:
          anyOf:
            - type: string
            - type: 'null'
          title: Manifest Base64
        name:
          title: Name
          type: string
        namespace:
          anyOf:
            - type: string
            - type: 'null'
          title: Namespace
        node_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Id
        parents:
          default: []
          description: >-
            Parent dependencies of this resource. Omitted or null: existing
            dependencies are PRESERVED. Provided: the list authoritatively
            replaces existing dependencies (an explicit empty list removes them
            all). Before 2026-07 omission cleared all dependencies; see ADR
            0008.
          items:
            $ref: '#/components/schemas/Parent'
          title: Parents
          type: array
        position:
          anyOf:
            - $ref: '#/components/schemas/FrontendStackItemPosition'
            - type: 'null'
        resource_id:
          anyOf:
            - format: uuid4
              type: string
            - type: 'null'
          title: Resource Id
        state:
          anyOf:
            - $ref: '#/components/schemas/ResourceState'
            - type: 'null'
        version_history:
          default: []
          items:
            $ref: '#/components/schemas/VersionHistoryEntry'
          title: Version History
          type: array
      required:
        - name
      title: FrontendManifest
      type: object
    Manifest:
      properties:
        auto_remediate:
          default: false
          title: Auto Remediate
          type: boolean
        dependencies_override:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Dependencies Override
        encrypted_paths:
          anyOf:
            - type: array
              items:
                type: string
            - type: 'null'
          title: Encrypted Paths
        force:
          default: false
          title: Force
          type: boolean
        from_file:
          anyOf:
            - type: string
            - type: 'null'
          title: From File
        manifest_base64:
          anyOf:
            - type: string
            - type: 'null'
          title: Manifest Base64
        name:
          title: Name
          type: string
        namespace:
          anyOf:
            - type: string
            - type: 'null'
          title: Namespace
        parents:
          default: []
          description: >-
            Parent dependencies of this resource. Omitted or null: existing
            dependencies are PRESERVED. Provided: the list authoritatively
            replaces existing dependencies (an explicit empty list removes them
            all). Before 2026-07 omission cleared all dependencies; see ADR
            0008.
          items:
            $ref: '#/components/schemas/Parent'
          title: Parents
          type: array
      required:
        - name
      title: Manifest
      type: object
    ResourceState:
      enum:
        - creating
        - updating
        - stopping
        - up
        - down
      title: ResourceState
      type: string
    AddonStandaloneConfiguration:
      properties:
        encrypted_paths:
          anyOf:
            - type: array
              items:
                type: string
            - type: 'null'
          title: Encrypted Paths
        from_file:
          anyOf:
            - type: string
            - type: 'null'
          title: From File
        values_base64:
          anyOf:
            - type: string
            - type: 'null'
          title: Values Base64
      title: AddonStandaloneConfiguration
      type: object
    JobConfiguration:
      properties:
        create_job_timeout:
          default: 420
          title: Create Job Timeout
          type: integer
        delete_job_timeout:
          default: 300
          title: Delete Job Timeout
          type: integer
        read_job_timeout:
          default: 30
          title: Read Job Timeout
          type: integer
        update_job_timeout:
          default: 420
          title: Update Job Timeout
          type: integer
      title: JobConfiguration
      type: object
    NamespaceMigrationStrategy:
      enum:
        - keep_old
        - move_install_first
        - move_uninstall_first
      title: NamespaceMigrationStrategy
      type: string
    Parent:
      properties:
        kind:
          type: string
          title: Kind
        name:
          title: Name
          type: string
      required:
        - name
        - kind
      title: Parent
      type: object
    FrontendStackItemPosition:
      properties:
        x:
          title: X
          type: number
        'y':
          title: 'Y'
          type: number
      required:
        - x
        - 'y'
      title: FrontendStackItemPosition
      type: object
    AddonSettings-Input:
      properties:
        helm_wait_timeout_seconds:
          anyOf:
            - type: integer
            - type: 'null'
          title: Helm Wait Timeout Seconds
        ignore_differences:
          default: []
          items:
            $ref: '#/components/schemas/IgnoreDifference'
          title: Ignore Differences
          type: array
        keep_failed_resources_for_debug:
          default: false
          title: Keep Failed Resources For Debug
          type: boolean
        retry_policy:
          $ref: '#/components/schemas/AddonRetryPolicy'
          default:
            backoff:
              duration: 5s
              factor: 2
              max_duration: 3m
            limit: 5
        revision_history_limit:
          default: 10
          title: Revision History Limit
          type: integer
        rollback_on_failure:
          default: true
          title: Rollback On Failure
          type: boolean
        strict_health_check:
          default: false
          title: Strict Health Check
          type: boolean
        sync_policy:
          $ref: '#/components/schemas/AddonSyncPolicy'
          default:
            auto_prune: true
            automated: true
            self_heal: true
            sync_options:
              - CreateNamespace=true
              - ServerSideApply=true
        sync_window:
          anyOf:
            - $ref: '#/components/schemas/AddonSyncWindow'
            - type: 'null'
      title: AddonSettings
      type: object
    VersionHistoryEntry:
      properties:
        change_type:
          anyOf:
            - type: string
            - type: 'null'
          title: Change Type
        created_at:
          format: date-time
          type: string
          title: Created At
        definition:
          title: Definition
        delta:
          anyOf:
            - items: {}
              type: array
            - type: 'null'
          title: Delta
        external_user:
          anyOf:
            - type: string
            - type: 'null'
          title: External User
        provenance:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          description: >-
            Who made the write that created this version, through which channel
            and why, as the version recorded it: actor (kind, principal_user_id,
            token_id, ai_lane, conversation_id, approved_by_user_id,
            system_job), channel, and an optional reason (kind, reference,
            text). Null means the version records none, which is unknown rather
            than nobody.
          title: Provenance
        user_id:
          title: User Id
          type: string
        version_id:
          title: Version Id
          type: string
      required:
        - version_id
        - created_at
        - definition
        - delta
        - user_id
      title: VersionHistoryEntry
      type: object
    JobStatus:
      enum:
        - running
        - success
        - failed
        - timeout
        - pending
        - blocked
        - cancelling
        - cancelled
      title: JobStatus
      type: string
    IgnoreDifference:
      properties:
        group:
          anyOf:
            - type: string
            - type: 'null'
          title: Group
        jq_path_expressions:
          anyOf:
            - type: array
              items:
                type: string
            - type: 'null'
          title: Jq Path Expressions
        json_pointers:
          anyOf:
            - type: array
              items:
                type: string
            - type: 'null'
          title: Json Pointers
        kind:
          anyOf:
            - type: string
            - type: 'null'
          title: Kind
        managed_fields_managers:
          anyOf:
            - type: array
              items:
                type: string
            - type: 'null'
          title: Managed Fields Managers
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
        namespace:
          anyOf:
            - type: string
            - type: 'null'
          title: Namespace
      title: IgnoreDifference
      type: object
    AddonRetryPolicy:
      properties:
        backoff:
          $ref: '#/components/schemas/AddonRetryBackoff'
          default:
            duration: 5s
            factor: 2
            max_duration: 3m
        limit:
          default: 5
          title: Limit
          type: integer
      title: AddonRetryPolicy
      type: object
    AddonSyncPolicy:
      properties:
        auto_prune:
          default: true
          title: Auto Prune
          type: boolean
        automated:
          default: true
          title: Automated
          type: boolean
        self_heal:
          default: true
          title: Self Heal
          type: boolean
        sync_options:
          default:
            - CreateNamespace=true
            - ServerSideApply=true
          items:
            type: string
          title: Sync Options
          type: array
      title: AddonSyncPolicy
      type: object
    AddonSyncWindow:
      properties:
        duration:
          anyOf:
            - type: string
            - type: 'null'
          title: Duration
        enabled:
          default: false
          title: Enabled
          type: boolean
        schedule:
          anyOf:
            - type: string
            - type: 'null'
          title: Schedule
        timezone:
          default: UTC
          title: Timezone
          type: string
      title: AddonSyncWindow
      type: object
    AddonRetryBackoff:
      properties:
        duration:
          default: 5s
          title: Duration
          type: string
        factor:
          default: 2
          title: Factor
          type: integer
        max_duration:
          default: 3m
          title: Max Duration
          type: string
      title: AddonRetryBackoff
      type: object

````