Border0 Organizations API

The Organizations API from Border0 — 15 operation(s) for organizations.

OpenAPI Specification

border0-organizations-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Border0 Audit Actions Organizations API
  description: Border0 is an identity-aware Zero Trust network access platform for securing access to servers, databases, Kubernetes clusters, and internal web services. This REST API manages sockets (protected services), policies, connectors, organizations, identity providers, service accounts, sessions, and audit logs.
  version: '1.0'
  contact:
    name: Border0 Support
    email: support@border0.com
    url: https://docs.border0.com
servers:
- url: https://api.border0.com/api/v1
tags:
- name: Organizations
paths:
  /organizations/customdomains:
    delete:
      security:
      - Border0_Token: []
      summary: Delete a custom domain
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1.customDomain'
        description: Delete organization custom domain
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: delete_organizations-customdomains
      tags:
      - Organizations
    get:
      security:
      - Border0_Token: []
      summary: List all custom domains
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/serializer.OrganizationCustomDomain'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: get_organizations-customdomains
      tags:
      - Organizations
    post:
      security:
      - Border0_Token: []
      summary: Create a custom domain
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1.customDomain'
        description: Create organization custom domain
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/serializer.OrganizationCustomDomain'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: post_organizations-customdomains
      tags:
      - Organizations
    put:
      security:
      - Border0_Token: []
      summary: Update a custom domain
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1.customDomain'
        description: Update organization custom domain
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/serializer.OrganizationCustomDomain'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: put_organizations-customdomains
      tags:
      - Organizations
  /organizations/iam/service_accounts/{name}/tokens/{token_id}:
    delete:
      security:
      - Border0_Token: []
      summary: Delete a service account token in the current organization by service account name and token id.
      parameters:
      - description: Service Account Name (slug)
        name: name
        in: path
        required: true
        schema:
          type: string
      - description: Service Account Token ID (uuid)
        name: token_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Successfully deleted
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: delete_organizations-iam-service-accounts-name-tokens-token-id
      tags:
      - Organizations
  /organizations/iam/service_accounts/{name}:
    delete:
      security:
      - Border0_Token: []
      summary: Delete a service account in the current organization.
      parameters:
      - description: Service Account Name (slug)
        name: name
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Successfully deleted
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: delete_organizations-iam-service-accounts-name
      tags:
      - Organizations
    get:
      security:
      - Border0_Token: []
      summary: Retrieve a service account in the current organization by name.
      parameters:
      - description: Service Account Name (slug)
        name: name
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/serviceaccount.Full'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: get_organizations-iam-service-accounts-name
      tags:
      - Organizations
    put:
      security:
      - Border0_Token: []
      summary: Update a service account in the current organization by name.
      parameters:
      - description: Service Account Name (slug)
        name: name
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1.serviceAccountUpdatePayload'
        description: Service Account Update Request
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/serviceaccount.Full'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: put_organizations-iam-service-accounts-name
      tags:
      - Organizations
  /organizations/notifications/{name}:
    delete:
      security:
      - Border0_Token: []
      summary: Delete a notification
      parameters:
      - description: Notification name
        name: name
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: delete_organizations-notifications-name
      tags:
      - Organizations
    get:
      security:
      - Border0_Token: []
      summary: Describe a notification
      parameters:
      - description: Notification name
        name: name
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/serializer.OrganizationNotification'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: get_organizations-notifications-name
      tags:
      - Organizations
    put:
      security:
      - Border0_Token: []
      summary: Update a notification
      parameters:
      - description: Notification name
        name: name
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1.notificationUpdateRequest'
        description: Update organization notification
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/serializer.OrganizationNotification'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: put_organizations-notifications-name
      tags:
      - Organizations
  /organizations/recording_storage:
    delete:
      security:
      - Border0_Token: []
      summary: Unset the organization's recording storage
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '404':
          description: Not Found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: delete_organizations-recording-storage
      tags:
      - Organizations
    get:
      security:
      - Border0_Token: []
      summary: Verify the recording storage
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/serializer.OrganizationRecordingStorage'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: get_organizations-recording-storage
      tags:
      - Organizations
    post:
      security:
      - Border0_Token: []
      summary: Create a recording storage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1.recordingStorageRequest'
        description: Create organization recording strage
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/serializer.OrganizationRecordingStorage'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: post_organizations-recording-storage
      tags:
      - Organizations
  /organizations/tokens:
    delete:
      security:
      - Border0_Token: []
      summary: Disable an access token
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1.deleteToken'
        description: Disable access token
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: delete_organizations-tokens
      tags:
      - Organizations
    get:
      security:
      - Border0_Token: []
      summary: Disable an access token
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: get_organizations-tokens
      tags:
      - Organizations
    post:
      security:
      - Border0_Token: []
      summary: Create a new access token
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1.createToken'
        description: Create access token
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  created_at:
                    type: string
                  name:
                    type: string
                  token:
                    type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: post_organizations-tokens
      tags:
      - Organizations
  /organizations/iam/service_accounts/{name}/tokens:
    get:
      security:
      - Border0_Token: []
      summary: Retrieve a service account tokens based on a service account name.
      parameters:
      - description: Service Account Name (slug)
        name: name
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.getServiceAccountsTokensResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: get_organizations-iam-service-accounts-name-tokens
      tags:
      - Organizations
    post:
      security:
      - Border0_Token: []
      summary: Create a service account token in the current organization.
      parameters:
      - description: Service Account Name (slug)
        name: name
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1.serviceAccountTokenDetailsPayload'
        description: Service Account Token Creation Request
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.postServiceAccountTokenResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: post_organizations-iam-service-accounts-name-tokens
      tags:
      - Organizations
  /organizations/iam/service_accounts:
    get:
      security:
      - Border0_Token: []
      summary: Retrieve the list of all service accounts in the current organization.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.getServiceAccountsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: get_organizations-iam-service-accounts
      tags:
      - Organizations
    post:
      security:
      - Border0_Token: []
      summary: Create a service account in the current organization.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1.serviceAccountCreatePayload'
        description: Service Account Creation Request
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/serviceaccount.Full'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: post_organizations-iam-service-accounts
      tags:
      - Organizations
  /organizations/notifications:
    get:
      security:
      - Border0_Token: []
      summary: List all notifications
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/serializer.OrganizationNotification'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: get_organizations-notifications
      tags:
      - Organizations
    post:
      security:
      - Border0_Token: []
      summary: Create a notification
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1.notificationRequest'
        description: Create organization notification
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/serializer.OrganizationNotification'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: post_organizations-notifications
      tags:
      - Organizations
  /organizations/csr:
    post:
      security:
      - Border0_Token: []
      summary: Generate a cert request and sign the CSR with organization CA
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1.certificateSigningRequest'
        description: certificate signing request
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  ca_certificate:
                    type: string
                  client_certificate:
                    type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: post_organizations-csr
      tags:
      - Organizations
  /organizations/sign_ssh:
    post:
      security:
      - Border0_Token: []
      summary: Generate a signed SSH cert for organization
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1.mtlsSSHRequest'
        description: sign the organization key
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  signed_ssh_cert:
                    type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: post_organizations-sign-ssh
      tags:
      - Organizations
  /organizations/switch:
    post:
      summary: Switch Organization
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1.switchOrgPayload'
        description: Organization name to switch to
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  token:
                    type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/restful.ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/restful.ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/restful.ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/restful.ErrorResponse'
      operationId: post_organizations-switch
      tags:
      - Organizations
  /organizations:
    post:
      security:
      - Border0_Token: []
      summary: Create a new organization
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1.createOrg'
        description: Create organization
        required: true
      responses:
        '200':


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