Tower Accounts API

The Accounts API from Tower — 2 operation(s) for accounts.

OpenAPI Specification

tower-accounts-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  contact:
    email: hello@tower.dev
    name: Tower Computing GmbH
    url: https://tower.dev
  description: REST API to interact with Tower Services.
  termsOfService: https://tower.dev/terms
  title: Tower Accounts API
  version: v0.11.16
servers:
- url: https://api.tower.dev/v1
tags:
- name: Accounts
paths:
  /accounts:
    post:
      description: This is the primary way that users register new accounts with Tower.
      operationId: create-account
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAccountParams'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateAccountResponse'
          description: OK
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
          description: Error
      summary: Create account
      tags:
      - Accounts
  /accounts/{name}:
    get:
      description: Get information about a specific account by name.
      operationId: describe-account
      parameters:
      - description: The name of the account to describe
        in: path
        name: name
        required: true
        schema:
          description: The name of the account to describe
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DescribeAccountBody'
          description: OK
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
          description: Error
      security:
      - AccessTokenAuth:
        - teams:read
      - APIKeyAuth:
        - teams:read
      summary: Describe account
      tags:
      - Accounts
    put:
      description: Update the properties of an account
      operationId: update-account
      parameters:
      - description: The name of the account to update
        in: path
        name: name
        required: true
        schema:
          description: The name of the account to update
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateAccountParams'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateAccountResponse'
          description: OK
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
          description: Error
      security:
      - AccessTokenAuth:
        - teams:update
      - APIKeyAuth:
        - teams:update
      summary: Update account
      tags:
      - Accounts
components:
  schemas:
    UpdateAccountResponse:
      additionalProperties: false
      properties:
        $schema:
          description: A URL to the JSON Schema for this object.
          examples:
          - https://api.tower.dev/v1/schemas/UpdateAccountResponse.json
          format: uri
          readOnly: true
          type: string
        account:
          $ref: '#/components/schemas/Account'
      required:
      - account
      type: object
    UpdateAccountParams:
      additionalProperties: false
      properties:
        $schema:
          description: A URL to the JSON Schema for this object.
          examples:
          - https://api.tower.dev/v1/schemas/UpdateAccountParams.json
          format: uri
          readOnly: true
          type: string
        execution_region:
          description: The execution region for runs
          enum:
          - eu-central-1
          - us-east-1
          - us-west-2
          - eu-west-1
          type: string
        is_self_hosted_only:
          description: Whether the account is for self-hosted use only
          type: boolean
        name:
          description: The new name for the account, if any
          type: string
      type: object
    Team:
      additionalProperties: false
      properties:
        execution_region:
          type: string
        name:
          type: string
        organization:
          description: The name of the organization this team belongs to.
          type: string
        slug:
          deprecated: true
          description: This property is deprecated. Use name instead.
          type: string
        token:
          $ref: '#/components/schemas/Token'
        type:
          description: The type of team, either 'personal' or 'team'.
          type: string
      required:
      - name
      - type
      - organization
      - execution_region
      type: object
    ErrorModel:
      additionalProperties: false
      properties:
        $schema:
          description: A URL to the JSON Schema for this object.
          examples:
          - https://api.tower.dev/v1/schemas/ErrorModel.json
          format: uri
          readOnly: true
          type: string
        detail:
          description: A human-readable explanation specific to this occurrence of the problem.
          examples:
          - Property foo is required but is missing.
          type: string
        errors:
          description: Optional list of individual error details
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type: array
        instance:
          description: A URI reference that identifies the specific occurrence of the problem.
          examples:
          - https://example.com/error-log/abc123
          format: uri
          type: string
        status:
          description: HTTP status code
          examples:
          - 400
          format: int64
          type: integer
        title:
          description: A short, human-readable summary of the problem type. This value should not change between occurrences of the error.
          examples:
          - Bad Request
          type: string
        type:
          default: about:blank
          description: A URI reference to human-readable documentation for the error.
          examples:
          - https://example.com/errors/example
          format: uri
          type: string
      type: object
    CreateAccountResponse:
      additionalProperties: false
      properties:
        $schema:
          description: A URL to the JSON Schema for this object.
          examples:
          - https://api.tower.dev/v1/schemas/CreateAccountResponse.json
          format: uri
          readOnly: true
          type: string
        session:
          $ref: '#/components/schemas/Session'
      required:
      - session
      type: object
    DescribeAccountBody:
      additionalProperties: false
      properties:
        $schema:
          description: A URL to the JSON Schema for this object.
          examples:
          - https://api.tower.dev/v1/schemas/DescribeAccountBody.json
          format: uri
          readOnly: true
          type: string
        account:
          $ref: '#/components/schemas/Account'
      required:
      - account
      type: object
    CreateAccountParams:
      additionalProperties: false
      properties:
        $schema:
          description: A URL to the JSON Schema for this object.
          examples:
          - https://api.tower.dev/v1/schemas/CreateAccountParams.json
          format: uri
          readOnly: true
          type: string
        email:
          type: string
        password:
          type: string
      required:
      - email
      - password
      type: object
    Token:
      additionalProperties: false
      properties:
        access_token:
          description: The access token to use when authenticating API requests with Tower.
          type: string
        jwt:
          type: string
        refresh_token:
          description: The refresh token to use when refreshing an expired access token. For security reasons, refresh tokens should only be transmitted over secure channels and never logged or stored in plaintext. It will only be returned upon initial authentication or when explicitly refreshing the access token.
          type: string
      required:
      - access_token
      - jwt
      type: object
    Session:
      additionalProperties: false
      properties:
        featurebase_identity:
          $ref: '#/components/schemas/FeaturebaseIdentity'
          deprecated: true
          description: This property is deprecated. It will be removed in a future version.
        teams:
          items:
            $ref: '#/components/schemas/Team'
          type: array
        token:
          $ref: '#/components/schemas/Token'
        user:
          $ref: '#/components/schemas/User'
      required:
      - user
      - token
      - teams
      - featurebase_identity
      type: object
    FeaturebaseIdentity:
      additionalProperties: false
      properties:
        company_hash:
          type: string
        user_hash:
          type: string
      required:
      - user_hash
      - company_hash
      type: object
    ErrorDetail:
      additionalProperties: false
      properties:
        location:
          description: Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'
          type: string
        message:
          description: Error message text
          type: string
        value:
          description: The value at the given location
      type: object
    User:
      additionalProperties: false
      properties:
        company:
          type: string
        country:
          type: string
        created_at:
          format: date-time
          type: string
        email:
          type: string
        first_name:
          type: string
        is_alerts_enabled:
          type: boolean
        is_confirmed:
          type: boolean
        is_invitation_claimed:
          deprecated: true
          description: This property is deprecated. It will be removed in a future version.
          type: boolean
        is_subscribed_to_changelog:
          type: boolean
        last_name:
          type: string
        profile_photo_url:
          type: string
        promo_code:
          type: string
      required:
      - first_name
      - last_name
      - company
      - country
      - promo_code
      - email
      - profile_photo_url
      - created_at
      - is_alerts_enabled
      - is_confirmed
      - is_subscribed_to_changelog
      type: object
    Account:
      additionalProperties: false
      properties:
        execution_region:
          type: string
        is_self_hosted_only:
          type: boolean
        name:
          type: string
        slug:
          deprecated: true
          description: This property is deprecated. Use name instead.
          type: string
      required:
      - name
      - is_self_hosted_only
      - execution_region
      type: object
  securitySchemes:
    APIKeyAuth:
      description: API key created by a Tower user or Tower service account to authenticate an API request.
      in: header
      name: X-API-Key
      type: apiKey
    AccessTokenAuth:
      description: Access token authentication scheme which uses an access token provided by the Tower API as part of a Tower session (see documentation about creating sessions).
      scheme: Bearer
      type: http