OpenAPI Specification
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 components API
version: 0.19.1074
host: api.nuon.co
basePath: /
schemes:
- https
tags:
- description: components
name: components
paths:
/v1/apps/{app_id}/component/{component_name_or_id}:
get:
consumes:
- application/json
description: 'Return an app component by id or name.
'
operationId: GetAppComponent
parameters:
- description: app ID
in: path
name: app_id
required: true
type: string
- description: name or ID
in: path
name: component_name_or_id
required: true
type: string
produces:
- application/json
responses:
'200':
description: OK
schema:
$ref: '#/definitions/app.Component'
'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 components for a specific app
tags:
- components
/v1/apps/{app_id}/components:
get:
consumes:
- application/json
description: 'Returns all components for the provided app.
'
operationId: GetAppComponents
parameters:
- description: app ID
in: path
name: app_id
required: true
type: string
- description: search query to filter components by name or ID
in: query
name: q
type: string
- description: comma-separated list of component types to filter by (e.g., terraform_module, helm_chart)
in: query
name: types
type: string
- description: comma-separated list of component IDs to filter by
in: query
name: component_ids
type: string
- description: label filter (key:value,key:value)
in: query
name: labels
type: string
- default: 0
description: offset of results to return
in: query
name: offset
type: integer
- default: 10
description: limit of results to return
in: query
name: limit
type: integer
- default: 0
description: page number of results to return
in: query
name: page
type: integer
produces:
- application/json
responses:
'200':
description: OK
schema:
items:
$ref: '#/definitions/app.Component'
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 all components for an app
tags:
- components
post:
consumes:
- application/json
description: 'Create a new component for an app.
'
operationId: CreateComponent
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.CreateComponentRequest'
produces:
- application/json
responses:
'201':
description: Created
schema:
$ref: '#/definitions/app.Component'
'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'
'409':
description: Conflict
schema:
$ref: '#/definitions/stderr.ErrResponse'
'500':
description: Internal Server Error
schema:
$ref: '#/definitions/stderr.ErrResponse'
security:
- APIKey: []
- OrgID: []
summary: create a component
tags:
- components
/v1/apps/{app_id}/components/build-all:
post:
consumes:
- application/json
description: 'Build all components for an app.
'
operationId: BuildAllComponents
parameters:
- description: component ID
in: path
name: app_id
required: true
type: string
- description: Input
in: body
name: req
required: true
schema:
$ref: '#/definitions/service.BuildAllComponentsRequest'
produces:
- application/json
responses:
'201':
description: Created
schema:
items:
$ref: '#/definitions/app.ComponentBuild'
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: create component build
tags:
- components
/v1/apps/{app_id}/components/label-keys:
get:
consumes:
- application/json
description: Returns all distinct label key:value pairs for components in the given app.
operationId: GetComponentLabelKeys
parameters:
- description: app ID
in: path
name: app_id
required: true
type: string
produces:
- application/json
responses:
'200':
description: OK
schema:
additionalProperties:
items:
type: string
type: array
type: object
security:
- APIKey: []
- OrgID: []
summary: get distinct label key:value pairs across all components for an app
tags:
- components
/v1/apps/{app_id}/components/{component_id}:
delete:
consumes:
- application/json
description: 'Delete a component.
'
operationId: DeleteAppComponent
parameters:
- description: app ID
in: path
name: app_id
required: true
type: string
- description: component ID
in: path
name: component_id
required: true
type: string
produces:
- application/json
responses:
'200':
description: OK
schema:
$ref: '#/definitions/app.EmptyResponse'
'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 component
tags:
- components
patch:
consumes:
- application/json
description: 'Update a component''s configuration.
'
operationId: UpdateAppComponent
parameters:
- description: app ID
in: path
name: app_id
required: true
type: string
- description: component ID
in: path
name: component_id
required: true
type: string
- description: Input
in: body
name: req
required: true
schema:
$ref: '#/definitions/service.UpdateComponentRequest'
produces:
- application/json
responses:
'200':
description: OK
schema:
$ref: '#/definitions/app.Component'
'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 component
tags:
- components
/v1/apps/{app_id}/components/{component_id}/builds:
get:
consumes:
- application/json
description: 'Returns all builds for the provided component.
'
operationId: GetAppComponentBuilds
parameters:
- description: app id to filter by
in: path
name: app_id
required: true
type: string
- description: component id to filter by
in: path
name: component_id
required: true
type: string
- default: 0
description: offset of results to return
in: query
name: offset
type: integer
- default: 10
description: limit of results to return
in: query
name: limit
type: integer
- default: 0
description: page number of results to return
in: query
name: page
type: integer
produces:
- application/json
responses:
'200':
description: OK
schema:
items:
$ref: '#/definitions/app.ComponentBuild'
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 builds for components
tags:
- components
post:
consumes:
- application/json
description: 'Create a build for a component.
'
operationId: CreateAppComponentBuild
parameters:
- description: app ID
in: path
name: app_id
required: true
type: string
- description: component ID
in: path
name: component_id
required: true
type: string
- description: Input
in: body
name: req
required: true
schema:
$ref: '#/definitions/service.CreateComponentBuildRequest'
produces:
- application/json
responses:
'201':
description: Created
schema:
$ref: '#/definitions/app.ComponentBuild'
'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'
'409':
description: Conflict
schema:
$ref: '#/definitions/stderr.ErrResponse'
'500':
description: Internal Server Error
schema:
$ref: '#/definitions/stderr.ErrResponse'
security:
- APIKey: []
- OrgID: []
summary: create component build
tags:
- components
/v1/apps/{app_id}/components/{component_id}/builds/latest:
get:
consumes:
- application/json
description: 'Returns the most recent build for the provided component.
'
operationId: GetAppComponentLatestBuild
parameters:
- description: app ID
in: path
name: app_id
required: true
type: string
- description: component ID
in: path
name: component_id
required: true
type: string
produces:
- application/json
responses:
'200':
description: OK
schema:
$ref: '#/definitions/app.ComponentBuild'
'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 latest build for a component
tags:
- components
/v1/apps/{app_id}/components/{component_id}/builds/{build_id}:
get:
consumes:
- application/json
description: 'Returns builds for one or all components in an app.
'
operationId: GetAppComponentBuild
parameters:
- description: app ID
in: path
name: app_id
required: true
type: string
- description: component ID
in: path
name: component_id
required: true
type: string
- description: build ID
in: path
name: build_id
required: true
type: string
produces:
- application/json
responses:
'200':
description: OK
schema:
$ref: '#/definitions/app.ComponentBuild'
'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 build for a component
tags:
- components
/v1/apps/{app_id}/components/{component_id}/builds/{build_id}/cancel:
post:
consumes:
- application/json
description: 'Cancel a component build by cancelling its queue signal. If the build has an in-flight runner job, it will also be cancelled.
'
operationId: CancelAppComponentBuild
parameters:
- description: app ID
in: path
name: app_id
required: true
type: string
- description: component ID
in: path
name: component_id
required: true
type: string
- description: build ID
in: path
name: build_id
required: true
type: string
produces:
- application/json
responses:
'202':
description: Accepted
schema:
$ref: '#/definitions/app.ComponentBuild'
'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: cancel component build
tags:
- components
/v1/apps/{app_id}/components/{component_id}/configs:
get:
consumes:
- application/json
description: 'Returns all configurations for the provided component.
'
operationId: GetAppComponentConfigs
parameters:
- description: app ID
in: path
name: app_id
required: true
type: string
- description: component ID
in: path
name: component_id
required: true
type: string
- default: 0
description: offset of results to return
in: query
name: offset
type: integer
- default: 10
description: limit of results to return
in: query
name: limit
type: integer
- default: 0
description: page number of results to return
in: query
name: page
type: integer
produces:
- application/json
responses:
'200':
description: OK
schema:
items:
$ref: '#/definitions/app.ComponentConfigConnection'
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 all configs for a component
tags:
- components
/v1/apps/{app_id}/components/{component_id}/configs/docker-build:
post:
consumes:
- application/json
description: 'Create a Docker build component config.
'
operationId: CreateAppDockerBuildComponentConfig
parameters:
- description: Input
in: body
name: req
required: true
schema:
$ref: '#/definitions/service.CreateDockerBuildComponentConfigRequest'
- description: app ID
in: path
name: app_id
required: true
type: string
- description: component ID
in: path
name: component_id
required: true
type: string
produces:
- application/json
responses:
'201':
description: Created
schema:
$ref: '#/definitions/app.DockerBuildComponentConfig'
'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'
'409':
description: Conflict
schema:
$ref: '#/definitions/stderr.ErrResponse'
'500':
description: Internal Server Error
schema:
$ref: '#/definitions/stderr.ErrResponse'
security:
- APIKey: []
- OrgID: []
summary: create a docker build component config
tags:
- components
/v1/apps/{app_id}/components/{component_id}/configs/external-image:
post:
consumes:
- application/json
description: 'Create an external image component config.
'
operationId: CreateAppExternalImageComponentConfig
parameters:
- description: Input
in: body
name: req
required: true
schema:
$ref: '#/definitions/service.CreateExternalImageComponentConfigRequest'
- description: app ID
in: path
name: app_id
required: true
type: string
- description: component ID
in: path
name: component_id
required: true
type: string
produces:
- application/json
responses:
'201':
description: Created
schema:
$ref: '#/definitions/app.ExternalImageComponentConfig'
'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'
'409':
description: Conflict
schema:
$ref: '#/definitions/stderr.ErrResponse'
'500':
description: Internal Server Error
schema:
$ref: '#/definitions/stderr.ErrResponse'
security:
- APIKey: []
- OrgID: []
summary: create an external image component config
tags:
- components
/v1/apps/{app_id}/components/{component_id}/configs/helm:
post:
consumes:
- application/json
description: 'Create a helm component config.
'
operationId: CreateAppHelmComponentConfig
parameters:
- description: Input
in: body
name: req
required: true
schema:
$ref: '#/definitions/service.CreateHelmComponentConfigRequest'
- description: app ID
in: path
name: app_id
required: true
type: string
- description: component ID
in: path
name: component_id
required: true
type: string
produces:
- application/json
responses:
'201':
description: Created
schema:
$ref: '#/definitions/app.HelmComponentConfig'
'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'
'409':
description: Conflict
schema:
$ref: '#/definitions/stderr.ErrResponse'
'500':
description: Internal Server Error
schema:
$ref: '#/definitions/stderr.ErrResponse'
security:
- APIKey: []
- OrgID: []
summary: create a helm component config
tags:
- components
/v1/apps/{app_id}/components/{component_id}/configs/job:
post:
consumes:
- application/json
description: 'Create a job component config.
'
operationId: CreateAppJobComponentConfig
parameters:
- description: Input
in: body
name: req
required: true
schema:
$ref: '#/definitions/service.CreateJobComponentConfigRequest'
- description: app ID
in: path
name: app_id
required: true
type: string
- description: component ID
in: path
name: component_id
required: true
type: string
produces:
- application/json
responses:
'201':
description: Created
schema:
$ref: '#/definitions/app.JobComponentConfig'
'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'
'409':
description: Conflict
schema:
$ref: '#/definitions/stderr.ErrResponse'
'500':
description: Internal Server Error
schema:
$ref: '#/definitions/stderr.ErrResponse'
security:
- APIKey: []
- OrgID: []
summary: create a job component config
tags:
- components
/v1/apps/{app_id}/components/{component_id}/configs/kubernetes-manifest:
post:
consumes:
- application/json
description: 'Create a Kubernetes manifest component config.
'
operationId: CreateAppKubernetesManifestComponentConfig
parameters:
- description: Input
in: body
name: req
required: true
schema:
$ref: '#/definitions/service.CreateKubernetesManifestComponentConfigRequest'
- description: app ID
in: path
name: app_id
required: true
type: string
- description: component ID
in: path
name: component_id
required: true
type: string
produces:
- application/json
responses:
'201':
description: Created
schema:
$ref: '#/definitions/app.KubernetesManifestComponentConfig'
'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'
'409':
description: Conflict
schema:
$ref: '#/definitions/stderr.ErrResponse'
'500':
description: Internal Server Error
schema:
$ref: '#/definitions/stderr.ErrResponse'
security:
- APIKey: []
- OrgID: []
summary: create a kubernetes manifest component config
tags:
- components
/v1/apps/{app_id}/components/{component_id}/configs/latest:
get:
consumes:
- application/json
description: 'Returns the most recent config for the provided component.
'
operationId: GetAppComponentLatestConfig
parameters:
- description: app ID
in: path
name: app_id
required: true
type: string
- description: component ID
in: path
name: component_id
required: true
type: string
produces:
- application/json
responses:
'200':
description: OK
schema:
$ref: '#/definitions/app.ComponentConfigConnection'
'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 latest config for a component
tags:
- components
/v1/apps/{app_id}/components/{component_id}/configs/pulumi:
post:
consumes:
- application/json
operationId: CreateAppPulumiComponentConfig
parameters:
- description: Input
in: body
name: req
required: true
schema:
$ref: '#/definitions/service.CreatePulumiComponentConfigRequest'
- description: app ID
in: path
name: app_id
required: true
type: string
- description: component ID
in: path
name: component_id
required: true
type: string
produces:
- application/json
responses:
'201':
description: Created
schema:
$ref: '#/definitions/app.PulumiComponentConfig'
'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'
'409':
description: Conflict
schema:
$ref: '#/definitions/stderr.ErrResponse'
'500':
description: Internal Server Error
schema:
$ref: '#/definitions/stderr.ErrResponse'
security:
- APIKey: []
- OrgID: []
summary: create a pulumi component config
tags:
- components
/v1/apps/{app_id}/components/{component_id}/configs/terraform-module:
post:
consumes:
- application/json
description: 'Create a terraform component config.
'
operationId: CreateAppTerraformModuleComponentConfig
parameters:
- description: Input
in: body
name: req
required: true
schema:
$ref: '#/definitions/service.CreateTerraformModuleComponentConfigRequest'
- description: app ID
in: path
name: app_id
required: true
type: string
- description: component ID
in: path
name: component_id
required: true
type: string
produces:
- application/json
responses:
'201':
description: Created
schema:
$ref: '#/definitions/app.TerraformModuleComponentConfig'
'400
# --- truncated at 32 KB (200 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/nuon/refs/heads/main/openapi/nuon-components-api-openapi.yml