Nuon general API

general

OpenAPI Specification

nuon-general-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 general API
  version: 0.19.1074
host: api.nuon.co
basePath: /
schemes:
- https
tags:
- description: general
  name: general
paths:
  /v1/general/cli-config:
    get:
      consumes:
      - application/json
      description: 'Returns CLI configuration and settings.

        '
      operationId: GetCLIConfig
      produces:
      - application/json
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/service.CLIConfig'
        '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'
      summary: Get config for cli
      tags:
      - general
  /v1/general/cloud-platform/{cloud_platform}/regions:
    get:
      consumes:
      - application/json
      description: 'Return region metadata for the Nuon supported cloud platforms.

        '
      operationId: GetCloudPlatformRegions
      parameters:
      - description: cloud platform
        in: path
        name: cloud_platform
        required: true
        type: string
      produces:
      - application/json
      responses:
        '200':
          description: OK
          schema:
            items:
              $ref: '#/definitions/app.CloudPlatformRegion'
            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'
      summary: Get regions for a cloud platform
      tags:
      - general
  /v1/general/config-schema:
    get:
      consumes:
      - application/json
      description: 'Return jsonschemas for Nuon configs. These can be used in frontmatter in most editors that have a TOML LSP (such as

        [Taplo](https://taplo.tamasfe.dev/) configured.


        ```toml

        #:schema https://api.nuon.co/v1/general/config-schema?source=inputs


        description = "description"

        ```


        You can pass in a valid source argument to render within a specific config file:


        - input

        - input-group

        - installer

        - sandbox

        - runner

        - docker_build

        - container_image

        - helm

        - terraform

        - runbook

        - job

        '
      operationId: GetConfigSchema
      parameters:
      - description: return a schema for a source file
        in: query
        name: type
        type: string
      - description: deprecated alias for type; responses include a Deprecation header when used
        in: query
        name: source
        type: string
      produces:
      - application/json
      responses:
        '200':
          description: OK
          schema: {}
        '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'
      summary: Get jsonschema for config file (deprecated query form)
      tags:
      - general
  /v1/general/config-schema/{type}:
    get:
      consumes:
      - application/json
      description: 'Return jsonschemas for Nuon configs. These can be used in frontmatter in most editors that have a TOML LSP (such as

        [Taplo](https://taplo.tamasfe.dev/) configured.


        ```toml

        #:schema https://api.nuon.co/v1/general/config-schema?source=inputs


        description = "description"

        ```


        You can pass in a valid source argument to render within a specific config file:


        - input

        - input-group

        - installer

        - sandbox

        - runner

        - docker_build

        - container_image

        - helm

        - terraform

        - runbook

        - job

        '
      operationId: GetConfigSchemaByType
      parameters:
      - description: config file type, e.g. sandbox, terraform, action
        in: path
        name: type
        required: true
        type: string
      produces:
      - application/json
      responses:
        '200':
          description: OK
          schema: {}
        '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'
      summary: Get jsonschema for a config file type
      tags:
      - general
  /v1/general/current-user:
    get:
      consumes:
      - application/json
      description: 'Returns the current authenticated user account.

        '
      operationId: GetCurrentUser
      produces:
      - application/json
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/app.Account'
        '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: []
      summary: Get current user
      tags:
      - general
  /v1/general/waitlist:
    post:
      consumes:
      - application/json
      description: 'Add an entry to the waitlist.

        '
      operationId: CreateWaitlist
      parameters:
      - description: Input
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/service.WaitlistRequest'
      produces:
      - application/json
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/app.Waitlist'
      security:
      - APIKey: []
      summary: Allow user to be added to an org waitlist.
      tags:
      - general
definitions:
  permissions.Permission:
    enum:
    - unknown
    - all
    - create
    - read
    - update
    - delete
    type: string
    x-enum-varnames:
    - PermissionUnknown
    - PermissionAll
    - PermissionCreate
    - PermissionRead
    - PermissionUpdate
    - PermissionDelete
  app.UserJourney:
    properties:
      name:
        type: string
      steps:
        items:
          $ref: '#/definitions/app.UserJourneyStep'
        type: array
      title:
        type: string
    type: object
  app.UserJourneyStep:
    properties:
      complete:
        type: boolean
      completed_at:
        description: Top-level completion tracking fields
        type: string
      completion_method:
        type: string
      completion_source:
        type: string
      metadata:
        additionalProperties: true
        description: Flexible metadata for business data
        type: object
      name:
        type: string
      title:
        type: string
    type: object
  app.Waitlist:
    properties:
      created_at:
        type: string
      created_by_id:
        type: string
      id:
        type: string
      org_name:
        type: string
      updated_at:
        type: string
    type: object
  permissions.Set:
    additionalProperties:
      $ref: '#/definitions/permissions.Permission'
    type: object
  service.WaitlistRequest:
    properties:
      org_name:
        type: string
    required:
    - org_name
    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.CloudPlatformRegion:
    properties:
      display_name:
        type: string
      icon:
        type: string
      name:
        type: string
      value:
        type: string
    type: object
  stderr.ErrResponse:
    properties:
      description:
        type: string
      error:
        type: string
      user_error:
        type: boolean
    type: object
  service.CLIConfig:
    properties:
      auth_audience:
        type: string
      auth_client_id:
        type: string
      auth_domain:
        type: string
      dashboard_url:
        type: string
      nuon_auth_enabled:
        type: boolean
      root_domain:
        type: string
    type: object
  app.RoleType:
    enum:
    - org_admin
    - org_support
    - installer
    - runner
    - hosted-installer
    type: string
    x-enum-varnames:
    - RoleTypeOrgAdmin
    - RoleTypeOrgSupport
    - RoleTypeInstaller
    - RoleTypeRunner
    - RoleTypeHostedInstaller
  app.Policy:
    properties:
      created_at:
        type: string
      created_by_id:
        type: string
      id:
        type: string
      name:
        $ref: '#/definitions/app.PolicyName'
      permissions:
        additionalProperties:
          type: string
        description: Permissions are used to track granular permissions for each domain
        type: object
      role_id:
        type: string
      updated_at:
        type: string
    type: object
  app.Role:
    properties:
      createdBy:
        $ref: '#/definitions/app.Account'
      created_at:
        type: string
      created_by_id:
        type: string
      id:
        type: string
      policies:
        items:
          $ref: '#/definitions/app.Policy'
        type: array
      role_type:
        $ref: '#/definitions/app.RoleType'
      updated_at:
        type: string
    type: object
  app.PolicyName:
    enum:
    - org_admin
    - org_support
    - installer
    - runner
    - hosted_installer
    type: string
    x-enum-varnames:
    - PolicyNameOrgAdmin
    - PolicyNameOrgSupport
    - PolicyNameInstaller
    - PolicyNameRunner
    - PolicyNameHostedInstaller
  app.AccountType:
    enum:
    - auth
    - auth0
    - service
    - canary
    - integration
    type: string
    x-enum-varnames:
    - AccountTypeAuth
    - AccountTypeAuth0
    - AccountTypeService
    - AccountTypeCanary
    - AccountTypeIntegration
securityDefinitions:
  APIKey:
    description: Type "Bearer" followed by a space and token.
    in: header
    name: Authorization
    type: apiKey
  OrgID:
    description: Nuon org ID
    in: header
    name: X-Nuon-Org-ID
    type: apiKey