Calyptia invitation API

The invitation API from Calyptia — 2 operation(s) for invitation.

OpenAPI Specification

calyptia-invitation-api-openapi.yml Raw ↑
openapi: 3.0.4
info:
  title: Calyptia Cloud agent invitation API
  version: '1.0'
  description: HTTP API service of Calyptia Cloud
  contact:
    name: Calyptia
    email: hello@calyptia.com
    url: https://cloud.calyptia.com
  termsOfService: https://calyptia.com/terms/
servers:
- url: https://cloud-api.calyptia.com
  description: prod
- url: https://cloud-api-dev.calyptia.com
  description: dev
- url: https://cloud-api-staging.calyptia.com
  description: staging
- url: http://localhost:{port}
  description: local
  variables:
    port:
      default: '5000'
tags:
- name: invitation
paths:
  /v1/projects/{projectID}/invite:
    parameters:
    - schema:
        type: string
        format: uuid
      name: projectID
      in: path
      required: true
    post:
      tags:
      - invitation
      summary: Create invitation
      operationId: createInvitation
      description: 'Create invitation to a project.

        This will send an invitation email with a link to join to the email address provided.'
      security:
      - user: []
      - project: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateInvitation'
      responses:
        '204':
          description: No Content
  /v1/join_project:
    post:
      tags:
      - invitation
      summary: Accept invitation
      operationId: acceptInvitation
      description: 'Accept invitation to a project.

        The project to which you join is parsed from the token.'
      security:
      - user: []
      - project: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AcceptInvitation'
      responses:
        '204':
          description: No Content
components:
  schemas:
    AcceptInvitation:
      description: Accept invitation request body.
      type: object
      properties:
        token:
          type: string
          example: redacted
      required:
      - token
    Permission:
      type: string
      enum:
      - create:*
      - read:*
      - update:*
      - delete:*
    CreateInvitation:
      description: Create invitation request body.
      type: object
      properties:
        email:
          type: string
          format: email
        permissions:
          description: An empty list means it has all permissions.
          type: array
          uniqueItems: true
          items:
            $ref: '#/components/schemas/Permission'
        redirectURI:
          type: string
          format: uri
      required:
      - email
      - permissions
      - redirectURI
  securitySchemes:
    user:
      type: http
      scheme: bearer
    project:
      name: X-Project-Token
      type: apiKey
      in: header
    auth0:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://sso.calyptia.com/oauth/token
          scopes: {}
        authorizationCode:
          authorizationUrl: https://sso.calyptia.com/authorize
          tokenUrl: https://sso.calyptia.com/oauth/token
          scopes: {}