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

> ## Agent Instructions
> Treat Stackdome as an application-delivery platform for coding agents and developers, not as a Kubernetes dashboard.
> Prefer the Stackdome agent plugin as the user entry point and the stackdome CLI as the execution interface.
> Route agents who need the maintained deploy skill to npx skills add stackdome/skills and the complete operational workflow to /guides/ai-agents.
> Verify commands and flags with stackdome --help. Run stackdome init before authoring stackfile.yaml and stackdome validate before deploying.
> Use -o json for automation and verify documented terminal states before claiming success.
> Never request a user's account password. Use API-token authentication.
> During alpha, Stackdome Cloud is ephemeral and capacity-limited, and each organization can connect one cluster.
> Do not expose Kubernetes as a user concern unless the task is self-hosting or infrastructure architecture.

# Update a stack

> Updates only shell fields (name, labels, annotations, settings). `namespace` is
immutable. Child collections (`stack_resources`, `volumes`, `connections`) in the
body are ignored — use `PUT /stacks/{id}/apply` for a full reconcile.




## OpenAPI

````yaml /openapi.yaml put /api/v1/organizations/{org_id}/projects/{project_name}/stacks/{id}
openapi: 3.0.0
info:
  description: >-
    Deploy, debug, and operate applications through the Stackdome REST API on
    Stackdome Cloud or a self-hosted installation. This API is in alpha and may
    change before general availability.
  title: Stackdome API
  version: 0.0.1-alpha
servers:
  - url: /
security: []
paths:
  /api/v1/organizations/{org_id}/projects/{project_name}/stacks/{id}:
    put:
      summary: Update a stack
      description: >
        Updates only shell fields (name, labels, annotations, settings).
        `namespace` is

        immutable. Child collections (`stack_resources`, `volumes`,
        `connections`) in the

        body are ignored — use `PUT /stacks/{id}/apply` for a full reconcile.
      parameters:
        - description: The ID of the organization
          explode: false
          in: path
          name: org_id
          required: true
          schema:
            type: string
          style: simple
        - description: The name of the project
          explode: false
          in: path
          name: project_name
          required: true
          schema:
            type: string
          style: simple
        - description: The id of record
          explode: false
          in: path
          name: id
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Stack'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Stack'
          description: Stack updated successfully
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Invalid request data
        '401':
          description: Unauthorized
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal server error
      security:
        - Bearer: []
components:
  schemas:
    Stack:
      example:
        settings:
          min_successful_releases: 5
          release_retention_limit: 5
        converged_release:
          sequence: 2
          completed_at: '2000-01-23T04:56:07.000Z'
          health: null
          created_at: '2000-01-23T04:56:07.000Z'
          id: id
          state: null
          message: message
        annotations:
          - value: value
            key: key
          - value: value
            key: key
        created_at: '2000-01-23T04:56:07.000Z'
        spec:
          stack_resources:
            - outputs:
                - name: name
                  sensitive: true
                  type: string
                - name: name
                  sensitive: true
                  type: string
              depends_on:
                - depends_on
                - depends_on
              replicas: 0
              annotations:
                - value: value
                  key: key
                - value: value
                  key: key
              init_spec:
                args:
                  - args
                  - args
                command:
                  - command
                  - command
              execution_config:
                args:
                  - args
                  - args
                environment_variables:
                  - name: name
                    self_output: self_output
                    value: value
                  - name: name
                    self_output: self_output
                    value: value
                command:
                  - command
                  - command
              volume_mounts:
                - stack_resource_id: stack_resource_id
                  source_volume_name: source_volume_name
                  source_volume_type: null
                  source_sub_path: source_sub_path
                  target_path: target_path
                - stack_resource_id: stack_resource_id
                  source_volume_name: source_volume_name
                  source_volume_type: null
                  source_sub_path: source_sub_path
                  target_path: target_path
              source:
                volume:
                  volume_id: volume_id
                  current_volume_hash: current_volume_hash
                  volume_name: volume_name
                  build_context: .
                  dockerfile_path: Dockerfile
                image:
                  ref: ref
                  registry_credentials_id: registry_credentials_id
                git:
                  repo_url: repo_url
                  integration_id: integration_id
                  commit: commit
                  build_context: .
                  tag: tag
                  dockerfile_path: Dockerfile
                  branch: branch
                  push:
                    registry_credentials_id: registry_credentials_id
                    repository: repository
              ports:
                - number: 0
                  protocol: protocol
                  exposed_to_public: true
                  name: name
                  subdomain_prefix: subdomain_prefix
                - number: 0
                  protocol: protocol
                  exposed_to_public: true
                  name: name
                  subdomain_prefix: subdomain_prefix
              workload_type: Service
              labels:
                - value: value
                  key: key
                - value: value
                  key: key
              revision: revision
              schedule: schedule
              stack_id: stack_id
              name: name
              lifecycle_config:
                restart_request_time: '2000-01-23T04:56:07.000Z'
              id: id
            - outputs:
                - name: name
                  sensitive: true
                  type: string
                - name: name
                  sensitive: true
                  type: string
              depends_on:
                - depends_on
                - depends_on
              replicas: 0
              annotations:
                - value: value
                  key: key
                - value: value
                  key: key
              init_spec:
                args:
                  - args
                  - args
                command:
                  - command
                  - command
              execution_config:
                args:
                  - args
                  - args
                environment_variables:
                  - name: name
                    self_output: self_output
                    value: value
                  - name: name
                    self_output: self_output
                    value: value
                command:
                  - command
                  - command
              volume_mounts:
                - stack_resource_id: stack_resource_id
                  source_volume_name: source_volume_name
                  source_volume_type: null
                  source_sub_path: source_sub_path
                  target_path: target_path
                - stack_resource_id: stack_resource_id
                  source_volume_name: source_volume_name
                  source_volume_type: null
                  source_sub_path: source_sub_path
                  target_path: target_path
              source:
                volume:
                  volume_id: volume_id
                  current_volume_hash: current_volume_hash
                  volume_name: volume_name
                  build_context: .
                  dockerfile_path: Dockerfile
                image:
                  ref: ref
                  registry_credentials_id: registry_credentials_id
                git:
                  repo_url: repo_url
                  integration_id: integration_id
                  commit: commit
                  build_context: .
                  tag: tag
                  dockerfile_path: Dockerfile
                  branch: branch
                  push:
                    registry_credentials_id: registry_credentials_id
                    repository: repository
              ports:
                - number: 0
                  protocol: protocol
                  exposed_to_public: true
                  name: name
                  subdomain_prefix: subdomain_prefix
                - number: 0
                  protocol: protocol
                  exposed_to_public: true
                  name: name
                  subdomain_prefix: subdomain_prefix
              workload_type: Service
              labels:
                - value: value
                  key: key
                - value: value
                  key: key
              revision: revision
              schedule: schedule
              stack_id: stack_id
              name: name
              lifecycle_config:
                restart_request_time: '2000-01-23T04:56:07.000Z'
              id: id
          volumes:
            - project_id: project_id
              name: name
              annotations:
                - value: value
                  key: key
                - value: value
                  key: key
              id: id
              spec:
                needs_sync_before_use: true
                storage_class: storage_class
                size: size
                source:
                  git_repo_source:
                    repo_url: repo_url
                    revision:
                      commit: commit
                      tag: tag
                      branch: branch
                  remote_source:
                    path: path
                    current_directory_hash: current_directory_hash
                  build_source:
                    - destination_path: destination_path
                      resource_ref: resource_ref
                      source_path: source_path
                    - destination_path: destination_path
                      resource_ref: resource_ref
                      source_path: source_path
                  source_type: null
                access_mode: null
              labels:
                - value: value
                  key: key
                - value: value
                  key: key
              status:
                phase: phase
                build_artifact_syncs:
                  - build_id: build_id
                    resource_name: resource_name
                    status: status
                  - build_id: build_id
                    resource_name: resource_name
                    status: status
                last_synced_git_revision: last_synced_git_revision
                last_remote_sync_hash: last_remote_sync_hash
                conditions:
                  - reason: reason
                    last_transition_time: '2000-01-23T04:56:07.000Z'
                    type: type
                    message: message
                    observed_generation: 1
                    status: status
                  - reason: reason
                    last_transition_time: '2000-01-23T04:56:07.000Z'
                    type: type
                    message: message
                    observed_generation: 1
                    status: status
            - project_id: project_id
              name: name
              annotations:
                - value: value
                  key: key
                - value: value
                  key: key
              id: id
              spec:
                needs_sync_before_use: true
                storage_class: storage_class
                size: size
                source:
                  git_repo_source:
                    repo_url: repo_url
                    revision:
                      commit: commit
                      tag: tag
                      branch: branch
                  remote_source:
                    path: path
                    current_directory_hash: current_directory_hash
                  build_source:
                    - destination_path: destination_path
                      resource_ref: resource_ref
                      source_path: source_path
                    - destination_path: destination_path
                      resource_ref: resource_ref
                      source_path: source_path
                  source_type: null
                access_mode: null
              labels:
                - value: value
                  key: key
                - value: value
                  key: key
              status:
                phase: phase
                build_artifact_syncs:
                  - build_id: build_id
                    resource_name: resource_name
                    status: status
                  - build_id: build_id
                    resource_name: resource_name
                    status: status
                last_synced_git_revision: last_synced_git_revision
                last_remote_sync_hash: last_remote_sync_hash
                conditions:
                  - reason: reason
                    last_transition_time: '2000-01-23T04:56:07.000Z'
                    type: type
                    message: message
                    observed_generation: 1
                    status: status
                  - reason: reason
                    last_transition_time: '2000-01-23T04:56:07.000Z'
                    type: type
                    message: message
                    observed_generation: 1
                    status: status
          connections:
            - mappings:
                - value:
                    output: output
                    template: template
                    values:
                      key:
                        output: output
                  target:
                    path: path
                    name: name
                    type: env
                - value:
                    output: output
                    template: template
                    values:
                      key:
                        output: output
                  target:
                    path: path
                    name: name
                    type: env
              kind: env
              from:
                name: name
                id: id
                type: stack_resource
              id: id
              to:
                name: name
                id: id
                type: stack_resource
              config: null
            - mappings:
                - value:
                    output: output
                    template: template
                    values:
                      key:
                        output: output
                  target:
                    path: path
                    name: name
                    type: env
                - value:
                    output: output
                    template: template
                    values:
                      key:
                        output: output
                  target:
                    path: path
                    name: name
                    type: env
              kind: env
              from:
                name: name
                id: id
                type: stack_resource
              id: id
              to:
                name: name
                id: id
                type: stack_resource
              config: null
        labels:
          - value: value
            key: key
          - value: value
            key: key
        revision: revision
        latest_release:
          sequence: 2
          completed_at: '2000-01-23T04:56:07.000Z'
          health: null
          created_at: '2000-01-23T04:56:07.000Z'
          id: id
          state: null
          message: message
        lifecycle: null
        organisation_id: organisation_id
        updated_at: '2000-01-23T04:56:07.000Z'
        project_id: project_id
        user_id: user_id
        name: name
        namespace: namespace
        id: id
      properties:
        id:
          readOnly: true
          type: string
        organisation_id:
          readOnly: true
          type: string
        project_id:
          readOnly: true
          type: string
        user_id:
          readOnly: true
          type: string
        name:
          type: string
        namespace:
          readOnly: true
          type: string
        labels:
          items:
            $ref: '#/components/schemas/Label'
          type: array
        annotations:
          items:
            $ref: '#/components/schemas/Annotation'
          type: array
        revision:
          readOnly: true
          type: string
        spec:
          $ref: '#/components/schemas/StackSpec'
        settings:
          $ref: '#/components/schemas/StackSettings'
        lifecycle:
          $ref: '#/components/schemas/StackLifecycle'
        converged_release:
          $ref: '#/components/schemas/ReleaseSummary'
        latest_release:
          $ref: '#/components/schemas/ReleaseSummary'
        created_at:
          format: date-time
          readOnly: true
          type: string
        updated_at:
          format: date-time
          readOnly: true
          type: string
      required:
        - name
        - spec
      type: object
    Error:
      allOf:
        - $ref: '#/components/schemas/ObjectReference'
        - $ref: '#/components/schemas/Error_allOf'
    Label:
      additionalProperties: false
      example:
        value: value
        key: key
      properties:
        key:
          type: string
        value:
          type: string
      required:
        - key
        - value
      type: object
    Annotation:
      example:
        value: value
        key: key
      properties:
        key:
          type: string
        value:
          type: string
      required:
        - key
        - value
      type: object
    StackSpec:
      example:
        stack_resources:
          - outputs:
              - name: name
                sensitive: true
                type: string
              - name: name
                sensitive: true
                type: string
            depends_on:
              - depends_on
              - depends_on
            replicas: 0
            annotations:
              - value: value
                key: key
              - value: value
                key: key
            init_spec:
              args:
                - args
                - args
              command:
                - command
                - command
            execution_config:
              args:
                - args
                - args
              environment_variables:
                - name: name
                  self_output: self_output
                  value: value
                - name: name
                  self_output: self_output
                  value: value
              command:
                - command
                - command
            volume_mounts:
              - stack_resource_id: stack_resource_id
                source_volume_name: source_volume_name
                source_volume_type: null
                source_sub_path: source_sub_path
                target_path: target_path
              - stack_resource_id: stack_resource_id
                source_volume_name: source_volume_name
                source_volume_type: null
                source_sub_path: source_sub_path
                target_path: target_path
            source:
              volume:
                volume_id: volume_id
                current_volume_hash: current_volume_hash
                volume_name: volume_name
                build_context: .
                dockerfile_path: Dockerfile
              image:
                ref: ref
                registry_credentials_id: registry_credentials_id
              git:
                repo_url: repo_url
                integration_id: integration_id
                commit: commit
                build_context: .
                tag: tag
                dockerfile_path: Dockerfile
                branch: branch
                push:
                  registry_credentials_id: registry_credentials_id
                  repository: repository
            ports:
              - number: 0
                protocol: protocol
                exposed_to_public: true
                name: name
                subdomain_prefix: subdomain_prefix
              - number: 0
                protocol: protocol
                exposed_to_public: true
                name: name
                subdomain_prefix: subdomain_prefix
            workload_type: Service
            labels:
              - value: value
                key: key
              - value: value
                key: key
            revision: revision
            schedule: schedule
            stack_id: stack_id
            name: name
            lifecycle_config:
              restart_request_time: '2000-01-23T04:56:07.000Z'
            id: id
          - outputs:
              - name: name
                sensitive: true
                type: string
              - name: name
                sensitive: true
                type: string
            depends_on:
              - depends_on
              - depends_on
            replicas: 0
            annotations:
              - value: value
                key: key
              - value: value
                key: key
            init_spec:
              args:
                - args
                - args
              command:
                - command
                - command
            execution_config:
              args:
                - args
                - args
              environment_variables:
                - name: name
                  self_output: self_output
                  value: value
                - name: name
                  self_output: self_output
                  value: value
              command:
                - command
                - command
            volume_mounts:
              - stack_resource_id: stack_resource_id
                source_volume_name: source_volume_name
                source_volume_type: null
                source_sub_path: source_sub_path
                target_path: target_path
              - stack_resource_id: stack_resource_id
                source_volume_name: source_volume_name
                source_volume_type: null
                source_sub_path: source_sub_path
                target_path: target_path
            source:
              volume:
                volume_id: volume_id
                current_volume_hash: current_volume_hash
                volume_name: volume_name
                build_context: .
                dockerfile_path: Dockerfile
              image:
                ref: ref
                registry_credentials_id: registry_credentials_id
              git:
                repo_url: repo_url
                integration_id: integration_id
                commit: commit
                build_context: .
                tag: tag
                dockerfile_path: Dockerfile
                branch: branch
                push:
                  registry_credentials_id: registry_credentials_id
                  repository: repository
            ports:
              - number: 0
                protocol: protocol
                exposed_to_public: true
                name: name
                subdomain_prefix: subdomain_prefix
              - number: 0
                protocol: protocol
                exposed_to_public: true
                name: name
                subdomain_prefix: subdomain_prefix
            workload_type: Service
            labels:
              - value: value
                key: key
              - value: value
                key: key
            revision: revision
            schedule: schedule
            stack_id: stack_id
            name: name
            lifecycle_config:
              restart_request_time: '2000-01-23T04:56:07.000Z'
            id: id
        volumes:
          - project_id: project_id
            name: name
            annotations:
              - value: value
                key: key
              - value: value
                key: key
            id: id
            spec:
              needs_sync_before_use: true
              storage_class: storage_class
              size: size
              source:
                git_repo_source:
                  repo_url: repo_url
                  revision:
                    commit: commit
                    tag: tag
                    branch: branch
                remote_source:
                  path: path
                  current_directory_hash: current_directory_hash
                build_source:
                  - destination_path: destination_path
                    resource_ref: resource_ref
                    source_path: source_path
                  - destination_path: destination_path
                    resource_ref: resource_ref
                    source_path: source_path
                source_type: null
              access_mode: null
            labels:
              - value: value
                key: key
              - value: value
                key: key
            status:
              phase: phase
              build_artifact_syncs:
                - build_id: build_id
                  resource_name: resource_name
                  status: status
                - build_id: build_id
                  resource_name: resource_name
                  status: status
              last_synced_git_revision: last_synced_git_revision
              last_remote_sync_hash: last_remote_sync_hash
              conditions:
                - reason: reason
                  last_transition_time: '2000-01-23T04:56:07.000Z'
                  type: type
                  message: message
                  observed_generation: 1
                  status: status
                - reason: reason
                  last_transition_time: '2000-01-23T04:56:07.000Z'
                  type: type
                  message: message
                  observed_generation: 1
                  status: status
          - project_id: project_id
            name: name
            annotations:
              - value: value
                key: key
              - value: value
                key: key
            id: id
            spec:
              needs_sync_before_use: true
              storage_class: storage_class
              size: size
              source:
                git_repo_source:
                  repo_url: repo_url
                  revision:
                    commit: commit
                    tag: tag
                    branch: branch
                remote_source:
                  path: path
                  current_directory_hash: current_directory_hash
                build_source:
                  - destination_path: destination_path
                    resource_ref: resource_ref
                    source_path: source_path
                  - destination_path: destination_path
                    resource_ref: resource_ref
                    source_path: source_path
                source_type: null
              access_mode: null
            labels:
              - value: value
                key: key
              - value: value
                key: key
            status:
              phase: phase
              build_artifact_syncs:
                - build_id: build_id
                  resource_name: resource_name
                  status: status
                - build_id: build_id
                  resource_name: resource_name
                  status: status
              last_synced_git_revision: last_synced_git_revision
              last_remote_sync_hash: last_remote_sync_hash
              conditions:
                - reason: reason
                  last_transition_time: '2000-01-23T04:56:07.000Z'
                  type: type
                  message: message
                  observed_generation: 1
                  status: status
                - reason: reason
                  last_transition_time: '2000-01-23T04:56:07.000Z'
                  type: type
                  message: message
                  observed_generation: 1
                  status: status
        connections:
          - mappings:
              - value:
                  output: output
                  template: template
                  values:
                    key:
                      output: output
                target:
                  path: path
                  name: name
                  type: env
              - value:
                  output: output
                  template: template
                  values:
                    key:
                      output: output
                target:
                  path: path
                  name: name
                  type: env
            kind: env
            from:
              name: name
              id: id
              type: stack_resource
            id: id
            to:
              name: name
              id: id
              type: stack_resource
            config: null
          - mappings:
              - value:
                  output: output
                  template: template
                  values:
                    key:
                      output: output
                target:
                  path: path
                  name: name
                  type: env
              - value:
                  output: output
                  template: template
                  values:
                    key:
                      output: output
                target:
                  path: path
                  name: name
                  type: env
            kind: env
            from:
              name: name
              id: id
              type: stack_resource
            id: id
            to:
              name: name
              id: id
              type: stack_resource
            config: null
      properties:
        stack_resources:
          items:
            $ref: '#/components/schemas/StackResource'
          type: array
        volumes:
          items:
            $ref: '#/components/schemas/Volume'
          type: array
        connections:
          items:
            $ref: '#/components/schemas/StackConnection'
          type: array
      type: object
    StackSettings:
      example:
        min_successful_releases: 5
        release_retention_limit: 5
      properties:
        release_retention_limit:
          default: 10
          description: Maximum total releases to retain per stack
          type: integer
        min_successful_releases:
          default: 5
          description: Minimum number of successful releases to always keep
          type: integer
      type: object
    StackLifecycle:
      description: Coarse stack entity lifecycle. Deploy/runtime status lives on releases.
      enum:
        - active
        - deleting
      readOnly: true
      type: string
      x-enum-varnames:
        - STACK_LIFECYCLE_ACTIVE
        - STACK_LIFECYCLE_DELETING
    ReleaseSummary:
      description: Lightweight release reference embedded in the stack for list views.
      example:
        sequence: 2
        completed_at: '2000-01-23T04:56:07.000Z'
        health: null
        created_at: '2000-01-23T04:56:07.000Z'
        id: id
        state: null
        message: message
      properties:
        id:
          type: string
        sequence:
          format: int32
          type: integer
        state:
          $ref: '#/components/schemas/StackReleaseState'
        health:
          $ref: '#/components/schemas/ReleaseHealth'
        message:
          type: string
        created_at:
          format: date-time
          type: string
        completed_at:
          format: date-time
          type: string
      readOnly: true
      type: object
    ObjectReference:
      properties:
        id:
          type: string
        kind:
          type: string
        href:
          type: string
      type: object
    Error_allOf:
      properties:
        code:
          type: string
        reason:
          type: string
        operation_id:
          type: string
        details:
          additionalProperties: true
          description: Optional structured, machine-readable error context
          type: object
      type: object
    StackResource:
      example:
        outputs:
          - name: name
            sensitive: true
            type: string
          - name: name
            sensitive: true
            type: string
        depends_on:
          - depends_on
          - depends_on
        replicas: 0
        annotations:
          - value: value
            key: key
          - value: value
            key: key
        init_spec:
          args:
            - args
            - args
          command:
            - command
            - command
        execution_config:
          args:
            - args
            - args
          environment_variables:
            - name: name
              self_output: self_output
              value: value
            - name: name
              self_output: self_output
              value: value
          command:
            - command
            - command
        volume_mounts:
          - stack_resource_id: stack_resource_id
            source_volume_name: source_volume_name
            source_volume_type: null
            source_sub_path: source_sub_path
            target_path: target_path
          - stack_resource_id: stack_resource_id
            source_volume_name: source_volume_name
            source_volume_type: null
            source_sub_path: source_sub_path
            target_path: target_path
        source:
          volume:
            volume_id: volume_id
            current_volume_hash: current_volume_hash
            volume_name: volume_name
            build_context: .
            dockerfile_path: Dockerfile
          image:
            ref: ref
            registry_credentials_id: registry_credentials_id
          git:
            repo_url: repo_url
            integration_id: integration_id
            commit: commit
            build_context: .
            tag: tag
            dockerfile_path: Dockerfile
            branch: branch
            push:
              registry_credentials_id: registry_credentials_id
              repository: repository
        ports:
          - number: 0
            protocol: protocol
            exposed_to_public: true
            name: name
            subdomain_prefix: subdomain_prefix
          - number: 0
            protocol: protocol
            exposed_to_public: true
            name: name
            subdomain_prefix: subdomain_prefix
        workload_type: Service
        labels:
          - value: value
            key: key
          - value: value
            key: key
        revision: revision
        schedule: schedule
        stack_id: stack_id
        name: name
        lifecycle_config:
          restart_request_time: '2000-01-23T04:56:07.000Z'
        id: id
      properties:
        id:
          readOnly: true
          type: string
        stack_id:
          readOnly: true
          type: string
        name:
          type: string
        labels:
          items:
            $ref: '#/components/schemas/Label'
          type: array
        annotations:
          items:
            $ref: '#/components/schemas/Annotation'
          type: array
        revision:
          readOnly: true
          type: string
        source:
          $ref: '#/components/schemas/SourceSpec'
        init_spec:
          $ref: '#/components/schemas/InitSpec'
        execution_config:
          $ref: '#/components/schemas/ExecutionConfig'
        volume_mounts:
          items:
            $ref: '#/components/schemas/VolumeMount'
          type: array
        depends_on:
          items:
            type: string
          type: array
        lifecycle_config:
          $ref: '#/components/schemas/LifecycleConfig'
        ports:
          items:
            $ref: '#/components/schemas/Port'
          type: array
        outputs:
          items:
            $ref: '#/components/schemas/OutputDescriptor'
          readOnly: true
          type: array
        workload_type:
          default: Service
          enum:
            - Service
            - StatefulService
            - Worker
            - Job
            - CronJob
          type: string
        schedule:
          type: string
        replicas:
          format: int32
          minimum: 0
          type: integer
      required:
        - name
      type: object
    Volume:
      additionalProperties: false
      example:
        project_id: project_id
        name: name
        annotations:
          - value: value
            key: key
          - value: value
            key: key
        id: id
        spec:
          needs_sync_before_use: true
          storage_class: storage_class
          size: size
          source:
            git_repo_source:
              repo_url: repo_url
              revision:
                commit: commit
                tag: tag
                branch: branch
            remote_source:
              path: path
              current_directory_hash: current_directory_hash
            build_source:
              - destination_path: destination_path
                resource_ref: resource_ref
                source_path: source_path
              - destination_path: destination_path
                resource_ref: resource_ref
                source_path: source_path
            source_type: null
          access_mode: null
        labels:
          - value: value
            key: key
          - value: value
            key: key
        status:
          phase: phase
          build_artifact_syncs:
            - build_id: build_id
              resource_name: resource_name
              status: status
            - build_id: build_id
              resource_name: resource_name
              status: status
          last_synced_git_revision: last_synced_git_revision
          last_remote_sync_hash: last_remote_sync_hash
          conditions:
            - reason: reason
              last_transition_time: '2000-01-23T04:56:07.000Z'
              type: type
              message: message
              observed_generation: 1
              status: status
            - reason: reason
              last_transition_time: '2000-01-23T04:56:07.000Z'
              type: type
              message: message
              observed_generation: 1
              status: status
      properties:
        id:
          readOnly: true
          type: string
        project_id:
          readOnly: true
          type: string
        name:
          type: string
        labels:
          items:
            $ref: '#/components/schemas/Label'
          type: array
        annotations:
          items:
            $ref: '#/components/schemas/Annotation'
          type: array
        spec:
          $ref: '#/components/schemas/VolumeSpec'
        status:
          $ref: '#/components/schemas/VolumeStatus'
      required:
        - name
        - spec
      type: object
    StackConnection:
      description: A user-authored topology edge between two nodes in a stack.
      example:
        mappings:
          - value:
              output: output
              template: template
              values:
                key:
                  output: output
            target:
              path: path
              name: name
              type: env
          - value:
              output: output
              template: template
              values:
                key:
                  output: output
            target:
              path: path
              name: name
              type: env
        kind: env
        from:
          name: name
          id: id
          type: stack_resource
        id: id
        to:
          name: name
          id: id
          type: stack_resource
        config: null
      properties:
        id:
          description: Stable connection identifier. Generated when omitted.
          type: string
        kind:
          description: >
            The relationship type. `env` injects values into environment
            variables, `volume_mount` mounts a volume into a resource, and
            `build_artifact_source` seeds a volume from build output.
          enum:
            - env
            - volume_mount
            - build_artifact_source
          type: string
        from:
          $ref: '#/components/schemas/TopologyNodeRef'
        to:
          $ref: '#/components/schemas/TopologyNodeRef'
        mappings:
          description: |
            Target/value mappings for kinds that move values, such as `env`.
          items:
            $ref: '#/components/schemas/ConnectionMapping'
          type: array
        config:
          $ref: '#/components/schemas/StackConnectionConfig'
      required:
        - from
        - kind
        - to
      type: object
    StackReleaseState:
      enum:
        - Pending
        - InProgress
        - Released
        - Failed
        - Superseded
        - Cancelled
      type: string
      x-enum-varnames:
        - RELEASE_STATE_PENDING
        - RELEASE_STATE_IN_PROGRESS
        - RELEASE_STATE_RELEASED
        - RELEASE_STATE_FAILED
        - RELEASE_STATE_SUPERSEDED
        - RELEASE_STATE_CANCELLED
    ReleaseHealth:
      description: Computed runtime health rollup of a live/active release.
      enum:
        - ok
        - progressing
        - degraded
        - unavailable
        - failed
      type: string
      x-enum-varnames:
        - RELEASE_HEALTH_OK
        - RELEASE_HEALTH_PROGRESSING
        - RELEASE_HEALTH_DEGRADED
        - RELEASE_HEALTH_UNAVAILABLE
        - RELEASE_HEALTH_FAILED
    SourceSpec:
      additionalProperties: false
      description: >-
        Where a stack resource's runtime image comes from. Exactly one of git,
        image, or volume must be set (enforced server-side).
      example:
        volume:
          volume_id: volume_id
          current_volume_hash: current_volume_hash
          volume_name: volume_name
          build_context: .
          dockerfile_path: Dockerfile
        image:
          ref: ref
          registry_credentials_id: registry_credentials_id
        git:
          repo_url: repo_url
          integration_id: integration_id
          commit: commit
          build_context: .
          tag: tag
          dockerfile_path: Dockerfile
          branch: branch
          push:
            registry_credentials_id: registry_credentials_id
            repository: repository
      properties:
        git:
          $ref: '#/components/schemas/GitSource'
        image:
          $ref: '#/components/schemas/ImageSource'
        volume:
          $ref: '#/components/schemas/VolumeBuildSource'
      type: object
    InitSpec:
      additionalProperties: false
      example:
        args:
          - args
          - args
        command:
          - command
          - command
      properties:
        command:
          items:
            type: string
          type: array
        args:
          items:
            type: string
          type: array
      type: object
    ExecutionConfig:
      example:
        args:
          - args
          - args
        environment_variables:
          - name: name
            self_output: self_output
            value: value
          - name: name
            self_output: self_output
            value: value
        command:
          - command
          - command
      properties:
        command:
          items:
            type: string
          type: array
        args:
          items:
            type: string
          type: array
        environment_variables:
          items:
            $ref: '#/components/schemas/EnvVar'
          type: array
      type: object
    VolumeMount:
      example:
        stack_resource_id: stack_resource_id
        source_volume_name: source_volume_name
        source_volume_type: null
        source_sub_path: source_sub_path
        target_path: target_path
      properties:
        stack_resource_id:
          readOnly: true
          type: string
        source_volume_type:
          $ref: '#/components/schemas/VolumeMountSourceType'
        source_volume_name:
          type: string
        source_sub_path:
          type: string
        target_path:
          type: string
      required:
        - source_volume_name
        - target_path
      type: object
    LifecycleConfig:
      example:
        restart_request_time: '2000-01-23T04:56:07.000Z'
      properties:
        restart_request_time:
          format: date-time
          type: string
      type: object
    Port:
      example:
        number: 0
        protocol: protocol
        exposed_to_public: true
        name: name
        subdomain_prefix: subdomain_prefix
      properties:
        name:
          type: string
        number:
          type: integer
        protocol:
          type: string
        exposed_to_public:
          type: boolean
        subdomain_prefix:
          type: string
      required:
        - exposed_to_public
        - name
        - number
      type: object
    OutputDescriptor:
      description: >-
        Declared output metadata for a topology node. Values are not returned
        here.
      example:
        name: name
        sensitive: true
        type: string
      properties:
        name:
          description: Stable output accessor name, for example `host` or `public_url`.
          type: string
        type:
          description: Scalar value type exposed by this output.
          enum:
            - string
            - integer
            - boolean
          type: string
        sensitive:
          description: >-
            True when the output value is sensitive and should never be returned
            in normal metadata APIs.
          type: boolean
      required:
        - name
        - sensitive
        - type
      type: object
    VolumeSpec:
      additionalProperties: false
      example:
        needs_sync_before_use: true
        storage_class: storage_class
        size: size
        source:
          git_repo_source:
            repo_url: repo_url
            revision:
              commit: commit
              tag: tag
              branch: branch
          remote_source:
            path: path
            current_directory_hash: current_directory_hash
          build_source:
            - destination_path: destination_path
              resource_ref: resource_ref
              source_path: source_path
            - destination_path: destination_path
              resource_ref: resource_ref
              source_path: source_path
          source_type: null
        access_mode: null
      properties:
        size:
          type: string
        storage_class:
          type: string
        needs_sync_before_use:
          type: boolean
        access_mode:
          $ref: '#/components/schemas/VolumeAccessMode'
        source:
          $ref: '#/components/schemas/VolumeSource'
      required:
        - access_mode
        - needs_sync_before_use
        - size
      type: object
    VolumeStatus:
      example:
        phase: phase
        build_artifact_syncs:
          - build_id: build_id
            resource_name: resource_name
            status: status
          - build_id: build_id
            resource_name: resource_name
            status: status
        last_synced_git_revision: last_synced_git_revision
        last_remote_sync_hash: last_remote_sync_hash
        conditions:
          - reason: reason
            last_transition_time: '2000-01-23T04:56:07.000Z'
            type: type
            message: message
            observed_generation: 1
            status: status
          - reason: reason
            last_transition_time: '2000-01-23T04:56:07.000Z'
            type: type
            message: message
            observed_generation: 1
            status: status
      properties:
        conditions:
          items:
            $ref: '#/components/schemas/Condition'
          type: array
        phase:
          type: string
        build_artifact_syncs:
          items:
            $ref: '#/components/schemas/BuildArtifactSyncInfo'
          type: array
        last_synced_git_revision:
          type: string
        last_remote_sync_hash:
          type: string
      type: object
    TopologyNodeRef:
      description: Identifies a topology node within the stack graph.
      example:
        name: name
        id: id
        type: stack_resource
      properties:
        type:
          description: The node category.
          enum:
            - stack_resource
            - addon/postgres
            - secret
            - volume
            - object_store
          type: string
        id:
          description: Stable ID for persisted resources such as addons or secrets.
          type: string
        name:
          description: >-
            Name-scoped reference for stack-local resources such as
            StackResources or Volumes.
          type: string
      required:
        - type
      type: object
    ConnectionMapping:
      description: Maps one produced value into one target location on the consumer.
      example:
        value:
          output: output
          template: template
          values:
            key:
              output: output
        target:
          path: path
          name: name
          type: env
      properties:
        target:
          $ref: '#/components/schemas/ConnectionTarget'
        value:
          $ref: '#/components/schemas/ValueRef'
      required:
        - target
        - value
      type: object
    StackConnectionConfig:
      description: >
        Kind-specific connection configuration. The shape depends on the
        connection kind and source type: use PostgresEnvConfig when kind is env
        and from.type is addon/postgres, VolumeMountConfig when kind is
        volume_mount, and BuildArtifactSourceConfig when kind is
        build_artifact_source. Omit config entirely for env connections from
        stack_resource or secret sources.
      oneOf:
        - $ref: '#/components/schemas/PostgresEnvConfig'
        - $ref: '#/components/schemas/VolumeMountConfig'
        - $ref: '#/components/schemas/BuildArtifactSourceConfig'
    GitSource:
      additionalProperties: false
      example:
        repo_url: repo_url
        integration_id: integration_id
        commit: commit
        build_context: .
        tag: tag
        dockerfile_path: Dockerfile
        branch: branch
        push:
          registry_credentials_id: registry_credentials_id
          repository: repository
      properties:
        repo_url:
          type: string
        branch:
          description: >-
            Defaults to the repository's default branch, resolved and stored at
            create time
          type: string
        tag:
          description: Mutually exclusive with branch
          type: string
        commit:
          description: Commit SHA pin; requires branch or tag
          type: string
        dockerfile_path:
          default: Dockerfile
          type: string
        build_context:
          default: .
          type: string
        integration_id:
          description: Org-level git integration override for clone auth
          type: string
        push:
          $ref: '#/components/schemas/PushTarget'
      required:
        - repo_url
      type: object
    ImageSource:
      additionalProperties: false
      example:
        ref: ref
        registry_credentials_id: registry_credentials_id
      properties:
        ref:
          type: string
        registry_credentials_id:
          description: Org-level registry credential override for pull auth
          type: string
      required:
        - ref
      type: object
    VolumeBuildSource:
      additionalProperties: false
      example:
        volume_id: volume_id
        current_volume_hash: current_volume_hash
        volume_name: volume_name
        build_context: .
        dockerfile_path: Dockerfile
      properties:
        volume_id:
          type: string
        volume_name:
          description: >-
            Name of a volume defined on the stack; either volume_id or
            volume_name is required
          type: string
        current_volume_hash:
          description: Content hash of the volume used as the build source revision
          type: string
        dockerfile_path:
          default: Dockerfile
          type: string
        build_context:
          default: .
          type: string
      type: object
    EnvVar:
      additionalProperties: false
      example:
        name: name
        self_output: self_output
        value: value
      properties:
        name:
          type: string
        value:
          description: Literal environment variable value.
          type: string
        self_output:
          description: >-
            Read this environment variable from one of the resource's own
            declared outputs, for example public_url.
          type: string
      required:
        - name
      type: object
    VolumeMountSourceType:
      enum:
        - EmptyVolume
        - RemoteDirSyncedVolume
        - BuildArtifactSyncedVolume
        - GitRepoSyncedVolume
      type: string
    VolumeAccessMode:
      enum:
        - ReadWriteOnce
        - ReadWriteMany
        - ReadOnlyMany
      type: string
    VolumeSource:
      additionalProperties: false
      example:
        git_repo_source:
          repo_url: repo_url
          revision:
            commit: commit
            tag: tag
            branch: branch
        remote_source:
          path: path
          current_directory_hash: current_directory_hash
        build_source:
          - destination_path: destination_path
            resource_ref: resource_ref
            source_path: source_path
          - destination_path: destination_path
            resource_ref: resource_ref
            source_path: source_path
        source_type: null
      properties:
        git_repo_source:
          $ref: '#/components/schemas/GitRepoSource'
        source_type:
          $ref: '#/components/schemas/VolumeSourceTypes'
        remote_source:
          $ref: '#/components/schemas/RemoteSource'
        build_source:
          items:
            $ref: '#/components/schemas/BuildArtifact'
          type: array
      required:
        - source_type
      type: object
    Condition:
      additionalProperties: false
      example:
        reason: reason
        last_transition_time: '2000-01-23T04:56:07.000Z'
        type: type
        message: message
        observed_generation: 1
        status: status
      properties:
        type:
          type: string
        status:
          type: string
        observed_generation:
          type: integer
        last_transition_time:
          format: date-time
          type: string
        reason:
          type: string
        message:
          type: string
      type: object
    BuildArtifactSyncInfo:
      example:
        build_id: build_id
        resource_name: resource_name
        status: status
      properties:
        resource_name:
          type: string
        build_id:
          type: string
        status:
          type: string
      type: object
    ConnectionTarget:
      description: The destination field that receives a mapped value.
      example:
        path: path
        name: name
        type: env
      properties:
        type:
          description: >-
            env writes an environment variable and file writes a mounted file
            path.
          enum:
            - env
            - file
          type: string
        name:
          description: Environment variable name when type is env.
          type: string
        path:
          description: Absolute file path when type is file.
          type: string
      required:
        - type
      type: object
    ValueRef:
      description: >
        Describes how to read a value from the connection's `from` node. This is
        only used inside `StackConnection.mappings[]`.
      example:
        output: output
        template: template
        values:
          key:
            output: output
      properties:
        output:
          description: >-
            Output accessor on the connection's `from` node, such as `url` or
            `public_url`.
          type: string
        template:
          description: >-
            Template used when one target value must be composed from multiple
            outputs.
          type: string
        values:
          additionalProperties:
            $ref: '#/components/schemas/OutputValueRef'
          description: >-
            Named template inputs, each resolving one output from the
            connection's `from` node.
          type: object
      type: object
    PostgresEnvConfig:
      additionalProperties: false
      description: >
        Config for env connections from a PostgreSQL addon (kind=env,
        from.type=addon/postgres). credential_scope and superuser are mutually
        exclusive.
      properties:
        database:
          description: Target database name within the addon.
          type: string
        credential_scope:
          description: Which credential set to inject. Mutually exclusive with superuser.
          enum:
            - owner
            - superuser
          type: string
        superuser:
          description: Use superuser credentials. Mutually exclusive with credential_scope.
          type: boolean
      type: object
    VolumeMountConfig:
      additionalProperties: false
      description: Config for volume mount connections (kind=volume_mount).
      properties:
        mount_path:
          description: Absolute path where the volume is mounted in the container.
          type: string
        sub_path:
          description: Sub-path within the volume to mount.
          type: string
        read_only:
          description: Mount the volume read-only.
          type: boolean
      required:
        - mount_path
      type: object
    BuildArtifactSourceConfig:
      additionalProperties: false
      description: >-
        Config for build artifact source connections
        (kind=build_artifact_source).
      properties:
        source_path:
          description: Path within the build output to copy from.
          type: string
        destination_path:
          description: Path within the volume to copy to.
          type: string
      required:
        - source_path
      type: object
    PushTarget:
      additionalProperties: false
      example:
        registry_credentials_id: registry_credentials_id
        repository: repository
      properties:
        repository:
          description: Push repository as host/path, without a tag
          type: string
        registry_credentials_id:
          description: Org-level registry credential override for push auth
          type: string
      required:
        - repository
      type: object
    GitRepoSource:
      example:
        repo_url: repo_url
        revision:
          commit: commit
          tag: tag
          branch: branch
      properties:
        repo_url:
          type: string
        revision:
          $ref: '#/components/schemas/GitRepoRevision'
      required:
        - repo_url
        - revision
      type: object
    VolumeSourceTypes:
      enum:
        - RemoteDir
        - BuildArtifact
        - GitRepo
      type: string
    RemoteSource:
      example:
        path: path
        current_directory_hash: current_directory_hash
      properties:
        path:
          type: string
        current_directory_hash:
          type: string
      required:
        - current_directory_hash
        - path
      type: object
    BuildArtifact:
      example:
        destination_path: destination_path
        resource_ref: resource_ref
        source_path: source_path
      properties:
        resource_ref:
          type: string
        source_path:
          type: string
        destination_path:
          type: string
      required:
        - destination_path
        - resource_ref
        - source_path
      type: object
    OutputValueRef:
      description: References one output on the connection's `from` node.
      example:
        output: output
      properties:
        output:
          description: Output accessor on the connection's `from` node.
          type: string
      required:
        - output
      type: object
    GitRepoRevision:
      example:
        commit: commit
        tag: tag
        branch: branch
      properties:
        branch:
          type: string
        tag:
          type: string
        commit:
          type: string
      type: object
  securitySchemes:
    Bearer:
      bearerFormat: JWT
      scheme: bearer
      type: http

````