OpenAPI Specification
openapi: 3.0.1
info:
title: Elementum Access Token Domains API
description: Manage access tokens using OAuth 2.0 standards
contact:
email: apiteam@elementum.io
version: 0.0.1
servers:
- url: /v1
tags:
- name: Domains
description: Manage organization domains
paths:
/domains:
post:
tags:
- Domains
summary: Create an organization domain
operationId: createOrganizationDomain
parameters: []
requestBody:
description: The domain to create (exactly one of managedDomain or emailDomain)
content:
application/json:
schema:
$ref: '#/components/schemas/OrganizationDomainRequest'
required: true
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/OrganizationDomain'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'422':
$ref: '#/components/responses/422'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
security:
- ClientCredentials: []
x-codegen-request-body-name: body
/domains/{domainId}:
put:
tags:
- Domains
summary: Update an organization domain
operationId: updateOrganizationDomain
parameters:
- $ref: '#/components/parameters/domainId'
requestBody:
description: The domain fields to update
content:
application/json:
schema:
$ref: '#/components/schemas/OrganizationDomainRequest'
required: true
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/OrganizationDomain'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'422':
$ref: '#/components/responses/422'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
security:
- ClientCredentials: []
x-codegen-request-body-name: body
components:
schemas:
EmailDomainInput:
type: object
properties:
domain:
type: string
description: The email-send domain
example: '{domain=mail.example.com}'
ManagedDomainInput:
type: object
properties:
domain:
type: string
description: The domain, e.g. example.com
sso:
type: boolean
description: Whether SSO is enabled (mutually exclusive with selfRegistration)
internal:
type: boolean
description: Whether users on this domain are internal to the org
startUrl:
type: string
description: SSO start URL
selfRegistration:
type: boolean
description: Whether self-registration is allowed (mutually exclusive with sso)
name:
type: string
description: Display name
approved:
type: boolean
description: Whether the domain is approved
example: '{domain=example.com, name=Example}'
OrganizationDomain:
type: object
properties:
domain:
type: string
description: The domain
internal:
type: boolean
description: Whether users on this domain are internal (managed only)
approved:
type: boolean
description: Whether the domain is approved (managed only)
id:
type: string
description: The domain ID
format: uuid
startUrl:
type: string
description: SSO start URL (managed only)
selfRegistration:
type: boolean
description: Whether self-registration is allowed (managed only)
name:
type: string
description: Display name (managed only)
type:
type: string
description: MANAGED or EMAIL
sso:
type: boolean
description: Whether SSO is enabled (managed only)
example: '{name=Example, domain=example.com, id=550e8400-e29b-41d4-a716-446655440001, type=MANAGED}'
OrganizationDomainRequest:
type: object
properties:
emailDomain:
$ref: '#/components/schemas/EmailDomainInput'
managedDomain:
$ref: '#/components/schemas/ManagedDomainInput'
description: Exactly one of managedDomain or emailDomain must be set
parameters:
domainId:
name: domainId
in: path
description: The organization domain ID (UUID)
required: true
schema:
type: string
format: uuid
responses:
'422':
description: Unprocessable Entity
'404':
description: Not Found
'400':
description: Bad Request
'401':
description: Unauthorized
'403':
description: Forbidden
'500':
description: Internal Server Error
'429':
description: Too Many Requests
securitySchemes:
ClientCredentials:
type: oauth2
flows:
clientCredentials:
tokenUrl: /oauth/token
externalDocs:
description: Find out more about Elementum
url: https://www.elementum.com/