Nuon runbooks API

runbooks

OpenAPI Specification

nuon-runbooks-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  contact:
    email: support@nuon.co
    name: Nuon Support
  description: API for managing nuon apps, components, installs, and actions.
  title: Nuon accounts runbooks API
  version: 0.19.1074
host: api.nuon.co
basePath: /
schemes:
- https
tags:
- description: runbooks
  name: runbooks
paths:
  /v1/apps/{app_id}/runbooks:
    get:
      consumes:
      - application/json
      operationId: GetRunbooks
      parameters:
      - description: app ID
        in: path
        name: app_id
        required: true
        type: string
      - description: search query to filter runbooks by name or ID
        in: query
        name: q
        type: string
      - default: 0
        description: offset
        in: query
        name: offset
        type: integer
      - default: 10
        description: limit
        in: query
        name: limit
        type: integer
      produces:
      - application/json
      responses:
        '200':
          description: OK
          schema:
            items:
              $ref: '#/definitions/app.Runbook'
            type: array
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '404':
          description: Not Found
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '500':
          description: Internal Server Error
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
      security:
      - APIKey: []
      - OrgID: []
      summary: get runbooks for an app
      tags:
      - runbooks
    post:
      consumes:
      - application/json
      operationId: CreateRunbook
      parameters:
      - description: app ID
        in: path
        name: app_id
        required: true
        type: string
      - description: Input
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/service.CreateRunbookRequest'
      produces:
      - application/json
      responses:
        '201':
          description: Created
          schema:
            $ref: '#/definitions/app.Runbook'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '404':
          description: Not Found
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '500':
          description: Internal Server Error
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
      security:
      - APIKey: []
      - OrgID: []
      summary: create a runbook for an app
      tags:
      - runbooks
  /v1/apps/{app_id}/runbooks/{runbook_id}:
    delete:
      consumes:
      - application/json
      operationId: DeleteRunbook
      parameters:
      - description: app ID
        in: path
        name: app_id
        required: true
        type: string
      - description: runbook ID
        in: path
        name: runbook_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        '200':
          description: OK
          schema:
            type: boolean
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '404':
          description: Not Found
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '500':
          description: Internal Server Error
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
      security:
      - APIKey: []
      - OrgID: []
      summary: delete a runbook
      tags:
      - runbooks
    get:
      consumes:
      - application/json
      operationId: GetRunbook
      parameters:
      - description: app ID
        in: path
        name: app_id
        required: true
        type: string
      - description: runbook ID
        in: path
        name: runbook_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/app.Runbook'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '404':
          description: Not Found
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '500':
          description: Internal Server Error
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
      security:
      - APIKey: []
      - OrgID: []
      summary: get a runbook
      tags:
      - runbooks
    patch:
      consumes:
      - application/json
      operationId: UpdateRunbook
      parameters:
      - description: app ID
        in: path
        name: app_id
        required: true
        type: string
      - description: runbook ID
        in: path
        name: runbook_id
        required: true
        type: string
      - description: Input
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/service.UpdateRunbookRequest'
      produces:
      - application/json
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/app.Runbook'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '404':
          description: Not Found
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '500':
          description: Internal Server Error
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
      security:
      - APIKey: []
      - OrgID: []
      summary: update a runbook
      tags:
      - runbooks
  /v1/apps/{app_id}/runbooks/{runbook_id}/configs:
    get:
      consumes:
      - application/json
      operationId: GetRunbookConfigs
      parameters:
      - description: app ID
        in: path
        name: app_id
        required: true
        type: string
      - description: runbook ID
        in: path
        name: runbook_id
        required: true
        type: string
      - default: 0
        description: offset
        in: query
        name: offset
        type: integer
      - default: 10
        description: limit
        in: query
        name: limit
        type: integer
      produces:
      - application/json
      responses:
        '200':
          description: OK
          schema:
            items:
              $ref: '#/definitions/app.RunbookConfig'
            type: array
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '404':
          description: Not Found
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '500':
          description: Internal Server Error
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
      security:
      - APIKey: []
      - OrgID: []
      summary: get runbook configs
      tags:
      - runbooks
    post:
      consumes:
      - application/json
      operationId: CreateRunbookConfig
      parameters:
      - description: app ID
        in: path
        name: app_id
        required: true
        type: string
      - description: runbook ID
        in: path
        name: runbook_id
        required: true
        type: string
      - description: Input
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/service.CreateRunbookConfigRequest'
      produces:
      - application/json
      responses:
        '201':
          description: Created
          schema:
            $ref: '#/definitions/app.RunbookConfig'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '404':
          description: Not Found
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '500':
          description: Internal Server Error
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
      security:
      - APIKey: []
      - OrgID: []
      summary: create a runbook config
      tags:
      - runbooks
  /v1/installs/{install_id}/runbook-runs:
    get:
      consumes:
      - application/json
      operationId: GetInstallRunbookRuns
      parameters:
      - description: install ID
        in: path
        name: install_id
        required: true
        type: string
      - description: filter by runbook ID or name
        in: query
        name: runbook_id
        type: string
      - default: 0
        description: offset
        in: query
        name: offset
        type: integer
      - default: 10
        description: limit
        in: query
        name: limit
        type: integer
      produces:
      - application/json
      responses:
        '200':
          description: OK
          schema:
            items:
              $ref: '#/definitions/app.InstallRunbookRun'
            type: array
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '404':
          description: Not Found
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '500':
          description: Internal Server Error
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
      security:
      - APIKey: []
      - OrgID: []
      summary: get runbook runs for an install
      tags:
      - runbooks
  /v1/installs/{install_id}/runbook-runs/{run_id}:
    get:
      consumes:
      - application/json
      operationId: GetInstallRunbookRun
      parameters:
      - description: install ID
        in: path
        name: install_id
        required: true
        type: string
      - description: run ID
        in: path
        name: run_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/app.InstallRunbookRun'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '404':
          description: Not Found
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '500':
          description: Internal Server Error
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
      security:
      - APIKey: []
      - OrgID: []
      summary: get a runbook run
      tags:
      - runbooks
  /v1/installs/{install_id}/runbooks:
    get:
      consumes:
      - application/json
      operationId: GetInstallRunbooks
      parameters:
      - description: install ID
        in: path
        name: install_id
        required: true
        type: string
      - default: 0
        description: offset
        in: query
        name: offset
        type: integer
      - default: 10
        description: limit
        in: query
        name: limit
        type: integer
      - description: search by runbook name or ID
        in: query
        name: q
        type: string
      - default: true
        description: return runbooks in the install's current app config; set false to return only runbooks no longer in it
        in: query
        name: synced
        type: boolean
      produces:
      - application/json
      responses:
        '200':
          description: OK
          schema:
            items:
              $ref: '#/definitions/app.InstallRunbook'
            type: array
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '404':
          description: Not Found
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '500':
          description: Internal Server Error
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
      security:
      - APIKey: []
      - OrgID: []
      summary: get runbooks for an install
      tags:
      - runbooks
  /v1/installs/{install_id}/runbooks/{runbook_id}:
    get:
      consumes:
      - application/json
      operationId: GetInstallRunbook
      parameters:
      - description: install ID
        in: path
        name: install_id
        required: true
        type: string
      - description: runbook ID or name
        in: path
        name: runbook_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/app.InstallRunbook'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '404':
          description: Not Found
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '500':
          description: Internal Server Error
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
      security:
      - APIKey: []
      - OrgID: []
      summary: get an install runbook
      tags:
      - runbooks
  /v1/installs/{install_id}/runbooks/{runbook_id}/runs:
    post:
      consumes:
      - application/json
      operationId: CreateRunbookRun
      parameters:
      - description: install ID
        in: path
        name: install_id
        required: true
        type: string
      - description: runbook ID or name
        in: path
        name: runbook_id
        required: true
        type: string
      - description: Input
        in: body
        name: req
        schema:
          $ref: '#/definitions/service.CreateRunbookRunRequest'
      produces:
      - application/json
      responses:
        '201':
          description: Created
          schema:
            $ref: '#/definitions/app.InstallRunbookRun'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '404':
          description: Not Found
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
        '500':
          description: Internal Server Error
          schema:
            $ref: '#/definitions/stderr.ErrResponse'
      security:
      - APIKey: []
      - OrgID: []
      summary: run a runbook on an install
      tags:
      - runbooks
definitions:
  configs.OCIRegistryType:
    enum:
    - ecr
    - acr
    - gar
    - private_oci
    - public_oci
    type: string
    x-enum-varnames:
    - OCIRegistryTypeECR
    - OCIRegistryTypeACR
    - OCIRegistryTypeGAR
    - OCIRegistryTypePrivateOCI
    - OCIRegistryTypePublicOCI
  plantypes.OCIArtifactReference:
    properties:
      digest:
        description: Digest is the immutable artifact digest (e.g., sha256:abc123...)
        type: string
      tag:
        description: Tag is the artifact tag (typically the build ID)
        type: string
      url:
        description: URL is the full artifact URL (e.g., registry.nuon.co/org_id/app_id)
        type: string
    type: object
  plantypes.BuildPlan:
    properties:
      component_build_id:
        type: string
      component_id:
        type: string
      container_image_pull_plan:
        $ref: '#/definitions/plantypes.ContainerImagePullPlan'
      docker_build_plan:
        $ref: '#/definitions/plantypes.DockerBuildPlan'
      dst_registry:
        $ref: '#/definitions/configs.OCIRegistryRepository'
      dst_tag:
        type: string
      git_source:
        $ref: '#/definitions/plantypes.GitSource'
      helm_build_plan:
        $ref: '#/definitions/plantypes.HelmBuildPlan'
      kubernetes_manifest_build_plan:
        $ref: '#/definitions/plantypes.KubernetesManifestBuildPlan'
      pulumi_build_plan:
        $ref: '#/definitions/plantypes.PulumiBuildPlan'
      sandbox_mode:
        $ref: '#/definitions/plantypes.SandboxMode'
      terraform_build_plan:
        $ref: '#/definitions/plantypes.TerraformBuildPlan'
    required:
    - dst_registry
    - dst_tag
    type: object
  compositeerrors.Section:
    properties:
      body:
        type: string
      heading:
        type: string
      kind:
        $ref: '#/definitions/compositeerrors.SectionKind'
    type: object
  github_com_nuonco_nuon_pkg_labels.Labels:
    additionalProperties:
      type: string
    type: object
  app.DockerBuildComponentConfig:
    properties:
      build_args:
        items:
          type: string
        type: array
      component_config_connection_id:
        description: value
        type: string
      connected_github_vcs_config:
        $ref: '#/definitions/app.ConnectedGithubVCSConfig'
      created_at:
        type: string
      created_by_id:
        type: string
      dockerfile:
        type: string
      env_vars:
        additionalProperties:
          type: string
        type: object
      id:
        type: string
      public_git_vcs_config:
        $ref: '#/definitions/app.PublicGitVCSConfig'
      target:
        type: string
      updated_at:
        type: string
    type: object
  app.CompositeStatus:
    properties:
      created_at_ts:
        type: integer
      created_by_id:
        type: string
      history:
        items:
          $ref: '#/definitions/app.CompositeStatus'
        type: array
      metadata:
        additionalProperties: {}
        type: object
      status:
        $ref: '#/definitions/app.Status'
      status_human_description:
        type: string
    type: object
  app.ConnectedGithubVCSConfig:
    properties:
      branch:
        type: string
      component_config_id:
        description: parent component
        type: string
      component_config_type:
        type: string
      created_at:
        type: string
      created_by_id:
        type: string
      directory:
        type: string
      id:
        type: string
      path_filter:
        type: string
      repo:
        type: string
      repo_name:
        type: string
      repo_owner:
        type: string
      updated_at:
        type: string
      vcs_connection:
        $ref: '#/definitions/app.VCSConnection'
      vcs_connection_id:
        type: string
    type: object
  state.RunnerState:
    properties:
      id:
        type: string
      populated:
        type: boolean
      runner_group_id:
        type: string
      status:
        type: string
    type: object
  plantypes.SyncOCIPlan:
    properties:
      dst_registry:
        $ref: '#/definitions/configs.OCIRegistryRepository'
      dst_tag:
        type: string
      sandbox_mode:
        $ref: '#/definitions/plantypes.SandboxMode'
      src_registry:
        $ref: '#/definitions/configs.OCIRegistryRepository'
      src_tag:
        type: string
    required:
    - dst_registry
    - dst_tag
    - src_registry
    - src_tag
    type: object
  app.Queue:
    properties:
      created_at:
        type: string
      created_by_id:
        type: string
      emitters:
        items:
          $ref: '#/definitions/app.QueueEmitter'
        type: array
      id:
        type: string
      idle_timeout:
        type: integer
      max_depth:
        type: integer
      max_in_flight:
        type: integer
      metadata:
        additionalProperties:
          type: string
        type: object
      name:
        type: string
      org_id:
        type: string
      owner_id:
        type: string
      owner_type:
        type: string
      queue_signal:
        items:
          $ref: '#/definitions/app.QueueSignal'
        type: array
      status_v2:
        $ref: '#/definitions/app.CompositeStatus'
      updated_at:
        type: string
      workflow:
        $ref: '#/definitions/signaldb.WorkflowRef'
    type: object
  app.OCIArtifact:
    properties:
      annotations:
        additionalProperties:
          type: string
        type: object
      architecture:
        type: string
      artifact_type:
        type: string
      created_at:
        type: string
      created_by_id:
        type: string
      digest:
        type: string
      id:
        type: string
      media_type:
        type: string
      org_id:
        type: string
      os:
        description: Platform fields
        type: string
      os_features:
        items:
          type: string
        type: array
      os_version:
        type: string
      owner_id:
        type: string
      owner_type:
        type: string
      repository:
        type: string
      size:
        type: integer
      tag:
        type: string
      updated_at:
        type: string
      urls:
        items:
          type: string
        type: array
      variant:
        type: string
    type: object
  plantypes.DeployPlan:
    properties:
      app_config_id:
        type: string
      app_id:
        type: string
      apply_plan_contents:
        description: The following field is for applying a plan that is already save
        type: string
      apply_plan_display:
        description: This field is for storing a human legible plan or corollary representation
        type: string
      component_id:
        type: string
      component_name:
        type: string
      helm:
        $ref: '#/definitions/plantypes.HelmDeployPlan'
      install_id:
        type: string
      kubernetes_manifest:
        $ref: '#/definitions/plantypes.KubernetesManifestDeployPlan'
      noop:
        $ref: '#/definitions/plantypes.NoopDeployPlan'
      pulumi:
        $ref: '#/definitions/plantypes.PulumiDeployPlan'
      sandbox_mode:
        $ref: '#/definitions/plantypes.SandboxMode'
      src_digest:
        description: 'SrcDigest is the manifest digest of the source artifact in the install

          registry, e.g. "sha256:abc...". Populated for image-type component

          builds with source identity recorded; empty for

          non-image builds and legacy image builds. When non-empty, runners

          should prefer this over SrcTag for content-addressed pulls and for

          rendering digest-pinned image references in pod specs.'
        type: string
      src_registry:
        $ref: '#/definitions/configs.OCIRegistryRepository'
      src_tag:
        type: string
      terraform:
        $ref: '#/definitions/plantypes.TerraformDeployPlan'
    required:
    - src_registry
    - src_tag
    type: object
  app.ComponentRelease:
    properties:
      build_id:
        type: string
      created_at:
        type: string
      created_by_id:
        type: string
      id:
        type: string
      release_steps:
        items:
          $ref: '#/definitions/app.ComponentReleaseStep'
        type: array
      status:
        type: string
      status_description:
        type: string
      total_release_steps:
        type: integer
      updated_at:
        type: string
    type: object
  app.Account:
    properties:
      account_type:
        $ref: '#/definitions/app.AccountType'
      created_at:
        type: string
      email:
        type: string
      id:
        type: string
      org_ids:
        description: ReadOnly Fields
        items:
          type: string
        type: array
      permissions:
        $ref: '#/definitions/permissions.Set'
      roles:
        items:
          $ref: '#/definitions/app.Role'
        type: array
      subject:
        type: string
      updated_at:
        type: string
      user_journeys:
        items:
          $ref: '#/definitions/app.UserJourney'
        type: array
    type: object
  app.PolicyResult:
    properties:
      deny_count:
        type: integer
      input_count:
        type: integer
      pass_count:
        type: integer
      policy_id:
        type: string
      policy_name:
        type: string
      status:
        description: '"deny", "warn", or "pass"'
        type: string
      warn_count:
        type: integer
    type: object
  plantypes.TerraformLocalArchive:
    properties:
      local_archive:
        type: string
    type: object
  app.AppBranchInstallGroup:
    properties:
      app_branch_config_id:
        type: string
      created_at:
        type: string
      created_by_id:
        type: string
      id:
        type: string
      install_ids:
        items:
          type: string
        type: array
      label_selector:
        $ref: '#/definitions/github_com_nuonco_nuon_pkg_labels.Selector'
      max_parallel:
        type: integer
      name:
        type: string
      order:
        type: integer
      org_id:
        type: string
      updated_at:
        type: string
      use_for_previews:
        description: UseForPreviews marks this group for plan-only preview runs (e.g., PR previews).
        type: boolean
    type: object
  app.ComponentType:
    enum:
    - terraform_module
    - helm_chart
    - docker_build
    - external_image
    - job
    - kubernetes_manifest
    - pulumi
    - unknown
    type: string
    x-enum-varnames:
    - ComponentTypeTerraformModule
    - ComponentTypeHelmChart
    - ComponentTypeDockerBuild
    - ComponentTypeExternalImage
    - ComponentTypeJob
    - ComponentTypeKubernetesManifest
    - ComponentTypePulumi
    - ComponentTypeUnknown
  plantypes.HelmValue:
    properties:
      name:
        type: string
      type:
        type: string
      value:
        type: string
    type: object
  app.AdHocStepConfig:
    properties:
      action_workflow_config_id:
        type: string
      app_config_id:
        description: this belongs to an app config id
        type: string
      app_id:
        type: string
      command:
        type: string
      connected_github_vcs_config:
        $ref: '#/definitions/app.ConnectedGithubVCSConfig'
      created_at:
        type: string
      created_by_id:
        type: string
      env_vars:
        additionalProperties:
          type: string
        type: object
      id:
        type: string
      idx:
        type: integer
      inline_contents:
        type: string
      name:
        description: metadata
        type: string
      previous_step_id:
        type: string
      public_git_vcs_config:
        allOf:
        - $ref: '#/definitions/app.PublicGitVCSConfig'
        description: all the details needed for a step
      references:
        items:
          type: string
        type: array
      updated_at:
        type: string
    type: object
  app.RunnerJobType:
    enum:
    - health-check
    - docker-build
    - container-image-build
    - terraform-module-build
    - helm-chart-build
    - kubernetes-manifest-build
    - pulumi-build
    - noop-build
    - sandbox-build
    - oci-sync
    - noop-sync
    - fetch-image-metadata
    - terraform-deploy
    - helm-chart-deploy
    - job-deploy
    - kubernetes-manifest-deploy
    - pulumi-deploy
    - noop-deploy
    - shut-down
    - update-version
    - noop
    - mng-vm-shut-down
    - mng-shut-down
    - mng-runner-update-version
    - mng-runner-restart
    - mng-fetch-token
    - sandbox-terraform
    - sandbox-terraform-plan
    - sandbox-pulumi
    - sandbox-sync-secrets
    - runner-helm
    - runner-terraform
    - runner-local
    - actions-workflow
    type: string
    x-enum-comments:
      RunnerJobTypeMngFetchToken: fetch authentication token via AWS presigned requests
      RunnerJobTypeMngRunnerRestart: restart the runner systemctl service (technically, a duplicate. runner can restart self.)
      RunnerJobTypeMngRunnerUpdateVersion: update the runner image/version (check for changes and update)
      RunnerJobTypeMngShutDown: shutdown the runner mng process (usually triggers restart)
      RunnerJobTypeMngVMShutDown: shut down the vm
    x-enum-descriptions:
    - ''
    - ''
    - ''
    - ''
    - ''
    - ''
    - ''
    - ''
    - ''
    - ''
    - ''
    - ''
    - ''
    - ''
    - ''
    - ''
    - ''
    - ''
    - ''
    - ''
    - ''
    - shut down the vm
    - shutdown the runner mng process (usually triggers restart)
    - update the runner image/version (check for changes and update)
    - restart the runner systemctl service (technically, a duplicate. runner can restart self.)
    - fetch authentication token via AWS presigned requests
    - ''
    - ''
    - ''
    - ''
    - ''
    - ''
    - ''
    - ''
    x-enum-varnames:
    - RunnerJobTypeHealthCheck
    - RunnerJobTypeDockerBuild
    - RunnerJobTypeContainerImageBuild
    - RunnerJobTypeTerraformModuleBuild
    - RunnerJobTypeHelmChartBuild
    - RunnerJobTypeKubernetesManifestBuild
    - RunnerJobTypePulumiBuild
    - RunnerJobTypeNOOPBuild
    - RunnerJobTypeSandboxBuild
    - RunnerJobTypeOCISync
    - RunnerJobTypeNOOPSync
    - RunnerJobTypeFetchImageMetadata
    - RunnerJobTypeTerraformDeploy
    - RunnerJobTypeHelmChartDeploy
    - RunnerJobTypeJobDeploy
    - RunnerJobTypeKubrenetesManifestDeploy
    - RunnerJobTypePulumiDeploy
    - RunnerJobTypeJobNOOPDeploy
    - RunnerJobTypeShutDown
    - RunnerJobTypeUpdateVersion
    - RunnerJobTypeNOOP
    - RunnerJobTypeMngVMShutDown
    - RunnerJobTypeMngShutDown
    - RunnerJobTypeMngRunnerUpdateVersion
    - RunnerJobTypeMngRunnerRestart
    - RunnerJobTypeMngFetchToken
    - RunnerJobTypeSandboxTerraform
    - RunnerJobTypeSandboxTerraformPlan
    - RunnerJobTypeSandboxPulumi
    - RunnerJobTypeSandboxSyncSecrets
    - RunnerJobTypeRunnerHelm
    - RunnerJobTypeRunnerTerraform
    - RunnerJobTypeRunnerLocal
    - RunnerJobTypeActionsWorkflowRun
  plantypes.DockerBuildPlan:
    properties:
      build_args:
        additionalProperties:
          type: string
        type: object
      context:
        type: string
      dockerfile:
        type: string
      target:
        type: string
    type: object
  state.AWSCloudAccount:
    properties:
      region:
        type: string
    type: object
  plantypes.PulumiBackend:
    properties:
      config:
        additionalProperties:
          type: string
        type: object
      pulumi_version:
 

# --- truncated at 32 KB (140 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/nuon/refs/heads/main/openapi/nuon-runbooks-api-openapi.yml