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 apps API
version: 0.19.1074
host: api.nuon.co
basePath: /
schemes:
- https
tags:
- description: apps
name: apps
paths:
/v1/apps:
get:
consumes:
- application/json
description: 'Returns all apps for the authenticated user.
'
operationId: GetApps
parameters:
- default: 0
description: offset of jobs to return
in: query
name: offset
type: integer
- description: search query to filter apps by name or ID
in: query
name: q
type: string
- default: 10
description: limit of jobs 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.App'
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 apps for the current org
tags:
- apps
post:
consumes:
- application/json
description: 'Create a new app.
'
operationId: CreateApp
parameters:
- description: Input
in: body
name: req
required: true
schema:
$ref: '#/definitions/service.CreateAppRequest'
produces:
- application/json
responses:
'201':
description: Created
schema:
$ref: '#/definitions/app.App'
'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 app
tags:
- apps
/v1/apps/{app_id}:
delete:
consumes:
- application/json
description: 'Delete an app.
'
operationId: DeleteApp
parameters:
- description: app ID
in: path
name: app_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 an app
tags:
- apps
get:
consumes:
- application/json
description: 'Return an app.
'
operationId: GetApp
parameters:
- description: app ID
in: path
name: app_id
required: true
type: string
produces:
- application/json
responses:
'200':
description: OK
schema:
$ref: '#/definitions/app.App'
'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 app
tags:
- apps
patch:
consumes:
- application/json
description: 'Update an app''s configuration.
'
operationId: UpdateApp
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.UpdateAppRequest'
produces:
- application/json
responses:
'200':
description: OK
schema:
$ref: '#/definitions/app.App'
'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 an app
tags:
- apps
/v1/apps/{app_id}/branches:
get:
consumes:
- application/json
description: 'Returns all branches for the provided app.
'
operationId: GetAppBranches
parameters:
- description: app ID
in: path
name: app_id
required: true
type: string
- default: 0
description: offset of branches to return
in: query
name: offset
type: integer
- default: 10
description: limit of branches 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.AppBranch'
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 app branches
tags:
- apps
post:
consumes:
- application/json
description: 'Cancel a runner job.
'
operationId: CreateAppBranch
parameters:
- description: Input
in: body
name: req
required: true
schema:
$ref: '#/definitions/service.CreateAppBranchRequest'
- description: app ID
in: path
name: app_id
required: true
type: string
produces:
- application/json
responses:
'201':
description: Created
schema:
$ref: '#/definitions/app.AppBranch'
'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: []
tags:
- apps
/v1/apps/{app_id}/branches/{app_branch_id}:
delete:
consumes:
- application/json
description: Deletes an app branch and all associated configs, runs, and install group runs.
operationId: DeleteAppBranch
parameters:
- description: app ID
in: path
name: app_id
required: true
type: string
- description: app branch ID
in: path
name: app_branch_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 an app branch
tags:
- apps
get:
consumes:
- application/json
description: 'Get an app branch by ID. Use `latest_config=true` query parameter to include only the most recent config with its VCS settings and install groups.
'
operationId: GetAppBranch
parameters:
- description: app ID
in: path
name: app_id
required: true
type: string
- description: app branch ID
in: path
name: app_branch_id
required: true
type: string
- default: false
description: include only the latest config
in: query
name: latest_config
type: boolean
produces:
- application/json
responses:
'200':
description: OK
schema:
$ref: '#/definitions/app.AppBranch'
'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 app branch
tags:
- apps
patch:
consumes:
- application/json
description: Updates app branch metadata (name only). To update configuration, create a new AppBranchConfig via POST /branches/:id/configs
operationId: UpdateAppBranch
parameters:
- description: Input
in: body
name: req
required: true
schema:
$ref: '#/definitions/service.UpdateAppBranchRequest'
- description: app ID
in: path
name: app_id
required: true
type: string
- description: app branch ID
in: path
name: app_branch_id
required: true
type: string
produces:
- application/json
responses:
'200':
description: OK
schema:
$ref: '#/definitions/app.AppBranch'
'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 app branch metadata
tags:
- apps
/v1/apps/{app_id}/branches/{app_branch_id}/configs:
get:
consumes:
- application/json
description: 'Returns all branch configurations for the provided app.
'
operationId: GetAppBranchAppConfigs
parameters:
- description: app ID
in: path
name: app_id
required: true
type: string
- description: app branch ID
in: path
name: app_branch_id
required: true
type: string
- default: 0
description: offset of branches to return
in: query
name: offset
type: integer
- default: 10
description: limit of branches 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.AppConfig'
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 app branch app configs
tags:
- apps
post:
consumes:
- application/json
description: 'Create a branch configuration for an app.
'
operationId: CreateAppBranchConfig
parameters:
- description: Input
in: body
name: req
required: true
schema:
$ref: '#/definitions/service.CreateAppBranchConfigRequest'
- description: app ID
in: path
name: app_id
required: true
type: string
- description: app branch ID
in: path
name: app_branch_id
required: true
type: string
produces:
- application/json
responses:
'201':
description: Created
schema:
$ref: '#/definitions/app.AppBranchConfig'
'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 app branch config
tags:
- apps
/v1/apps/{app_id}/branches/{app_branch_id}/latest-config:
get:
consumes:
- application/json
description: Returns the latest AppBranchConfig ordered by config_number (descending)
operationId: GetAppBranchLatestConfig
parameters:
- description: app ID
in: path
name: app_id
required: true
type: string
- description: app branch ID
in: path
name: app_branch_id
required: true
type: string
produces:
- application/json
responses:
'200':
description: OK
schema:
$ref: '#/definitions/app.AppBranchConfig'
'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 app branch config
tags:
- apps
/v1/apps/{app_id}/branches/{app_branch_id}/runs:
get:
consumes:
- application/json
description: Returns workflow runs for an app branch ordered by creation time (descending)
operationId: GetAppBranchRuns
parameters:
- description: app ID
in: path
name: app_id
required: true
type: string
- description: app branch ID
in: path
name: app_branch_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.Workflow'
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 app branch workflow runs
tags:
- apps
post:
consumes:
- application/json
description: Creates and triggers a workflow run for an app branch. If config_id is not provided, uses the latest config.
operationId: TriggerAppBranchRun
parameters:
- description: Input
in: body
name: req
required: true
schema:
$ref: '#/definitions/service.TriggerAppBranchRunRequest'
- description: app ID
in: path
name: app_id
required: true
type: string
- description: app branch ID
in: path
name: app_branch_id
required: true
type: string
produces:
- application/json
responses:
'201':
description: Created
schema:
$ref: '#/definitions/app.AppBranchRun'
'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: trigger app branch workflow run
tags:
- apps
/v1/apps/{app_id}/branches/{app_branch_id}/runs/{run_id}/builds:
get:
consumes:
- application/json
description: Returns component builds triggered by a specific app branch run
operationId: GetAppBranchRunBuilds
parameters:
- description: app ID
in: path
name: app_id
required: true
type: string
- description: app branch ID
in: path
name: app_branch_id
required: true
type: string
- description: app branch run ID
in: path
name: run_id
required: true
type: string
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 an app branch run
tags:
- apps
/v1/apps/{app_id}/branches/{app_branch_id}/runs/{run_id}/install-group-runs:
get:
consumes:
- application/json
description: Returns all install group runs for a specific app branch run
operationId: GetInstallGroupRuns
parameters:
- description: app ID
in: path
name: app_id
required: true
type: string
- description: app branch ID
in: path
name: app_branch_id
required: true
type: string
- description: app branch run ID
in: path
name: run_id
required: true
type: string
produces:
- application/json
responses:
'200':
description: OK
schema:
items:
$ref: '#/definitions/app.InstallGroupRun'
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: list install group runs for an app branch run
tags:
- apps
/v1/apps/{app_id}/branches/{app_branch_id}/runs/{run_id}/install-group-runs/{install_group_run_id}:
get:
consumes:
- application/json
description: Returns a single install group run with full details
operationId: GetInstallGroupRun
parameters:
- description: app ID
in: path
name: app_id
required: true
type: string
- description: app branch ID
in: path
name: app_branch_id
required: true
type: string
- description: app branch run ID
in: path
name: run_id
required: true
type: string
- description: install group run ID
in: path
name: install_group_run_id
required: true
type: string
produces:
- application/json
responses:
'200':
description: OK
schema:
$ref: '#/definitions/app.InstallGroupRun'
'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 specific install group run
tags:
- apps
/v1/apps/{app_id}/branches/{app_branch_id}/runs/{run_id}/install-groups:
get:
consumes:
- application/json
description: Returns install config updates triggered by a specific app branch run, grouped by install group
operationId: GetAppBranchRunInstallGroups
parameters:
- description: app ID
in: path
name: app_id
required: true
type: string
- description: app branch ID
in: path
name: app_branch_id
required: true
type: string
- description: app branch run ID
in: path
name: run_id
required: true
type: string
produces:
- application/json
responses:
'200':
description: OK
schema:
items:
$ref: '#/definitions/app.InstallAppConfigVersion'
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 install group deployments for an app branch run
tags:
- apps
/v1/apps/{app_id}/break-glass-configs:
post:
consumes:
- application/json
description: 'Create a break glass config for an app.
'
operationId: CreateAppBreakGlassConfig
parameters:
- description: Input
in: body
name: req
required: true
schema:
$ref: '#/definitions/service.CreateAppBreakGlassConfigRequest'
- description: app ID
in: path
name: app_id
required: true
type: string
produces:
- application/json
responses:
'201':
description: Created
schema:
$ref: '#/definitions/app.AppBreakGlassConfig'
'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: []
tags:
- apps
/v1/apps/{app_id}/break-glass-configs/{config_id}:
get:
consumes:
- application/json
description: 'Return an app break glass config by id.
'
operationId: GetAppBreakGlassConfig
parameters:
- description: app ID
in: path
name: app_id
required: true
type: string
- description: app break glass config ID
in: path
name: config_id
required: true
type: string
produces:
- application/json
responses:
'200':
description: OK
schema:
$ref: '#/definitions/app.AppBreakGlassConfig'
'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 app break_glass config
tags:
- apps
/v1/apps/{app_id}/config:
post:
consumes:
- application/json
deprecated: true
description: 'Create an app config, by pushing the contents of a config file.
The API will automatically configure the app according to the config file in the background.
'
operationId: CreateAppConfig
parameters:
- description: Input
in: body
name: req
required: true
schema:
$ref: '#/definitions/service.CreateAppConfigRequest'
- description: app ID
in: path
name: app_id
required: true
type: string
produces:
- application/json
responses:
'201':
description: Created
schema:
$ref: '#/definitions/app.AppConfig'
'400':
description: Bad Request
# --- truncated at 32 KB (268 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/nuon/refs/heads/main/openapi/nuon-apps-api-openapi.yml