Skip to content

Instantly share code, notes, and snippets.

@Zod-
Created February 18, 2020 15:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Zod-/de5243d8d2e4124f85f6db9f28c0bcf8 to your computer and use it in GitHub Desktop.
Save Zod-/de5243d8d2e4124f85f6db9f28c0bcf8 to your computer and use it in GitHub Desktop.
openapi: 3.0.1
info:
title: Cryptlex Web API
description: |-
The Cryptlex Web API is organized around REST. All requests must be made over HTTPS.
Our API has predictable, resource-oriented URLs, and uses HTTP response codes to indicate API errors. JSON is returned by all API responses, including errors.
# Authentication
Authenticate your API requests by using a personal access token (JWT) in an Authorization header.
```
Authorization: Bearer {ACCESS_TOKEN}
```
You can manage your personal access tokens in the [Dashboard](https://app.cryptlex.com/api/personal-access-tokens). Keep your access tokens secure and do not share them in publicly accessible areas such as Github, client-side code, and so forth. API requests without authentication will fail.
# Versioning
All API requests are versioned using the version string in the url e.g. v1, v2, v3. The latest supported version is v3 (3.x.x). Only the major version is to be included in the url.
We follow semantic versioning. Given a version number MAJOR.MINOR.PATCH, the version is incremented in the following manner:
* MAJOR version when we make incompatible/breaking API changes,
* MINOR version when we add functionality in a backwards-compatible manner, and
* PATCH version when we make backwards-compatible bug fixes.
When we introduce breaking changes to the API, we will release a new versioned url endpoint, e.g. we will go from v3 to v4. You
can refer to our [changelog](https://docs.cryptlex.com/changelog/web-api) for all the details.
# Errors
The API uses standard HTTP status codes to indicate the success or failure of the API call. All errors contain 4xx or 5xx status codes in the reponse header. The body of the response will contain the error message in the following format:
```
{
"message" : "Email address is already taken!",
"code" : "DUPLICATE_FIELD_VALUE" // conditional
}
```
# Rate Limiting
A single IP address can make a maximum burst of 50 requests per 5 second window, regardless of authentication. If we observe patterns of abuse, the IP address may be temporarily or permanently blacklisted.
Rate limit status can be checked in the returned HTTP headers of any API request:
| Header | Description |
| -----------------------|---------------|
| X-Rate-Limit-Limit | The the rate limit period (eg. 1m, 12h, 1d). |
| X-Rate-Limit-Remaining | The number of requests remaining in the current rate limit window.|
| X-Rate-Limit-Reset | The UTC date time when the limits reset. |
contact:
email: support@cryptlex.com
version: v3
x-logo:
url: 'https://cryptlex.com/images/cryptlex_logo.png'
servers:
- url: 'https://api.cryptlex.com/'
paths:
'/v3/accounts/{id}':
get:
tags:
- Accounts
summary: Retrieve an account
description: Retrieves the details of an existing account.
operationId: 'get/v3/accounts/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the account.
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/TenantDto'
text/json:
schema:
$ref: '#/components/schemas/TenantDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
patch:
tags:
- Accounts
summary: Update an account
description: Updates the specified account by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
operationId: 'patch/v3/accounts/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the account.
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AccountUpdateViewModel'
text/json:
schema:
$ref: '#/components/schemas/AccountUpdateViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/AccountUpdateViewModel'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/TenantDto'
text/json:
schema:
$ref: '#/components/schemas/TenantDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/accounts:
post:
tags:
- Accounts
summary: Create an account
description: Creates a new user account.
operationId: post/v3/accounts
requestBody:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/RegisterViewModel'
text/json:
schema:
$ref: '#/components/schemas/RegisterViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/RegisterViewModel'
responses:
'201':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/SignupDto'
text/json:
schema:
$ref: '#/components/schemas/SignupDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/accounts/login:
post:
tags:
- Accounts
summary: Log into the account
description: Returns an access token.
operationId: post/v3/accounts/login
requestBody:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/LoginViewModel'
text/json:
schema:
$ref: '#/components/schemas/LoginViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/LoginViewModel'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AccessTokenDto'
text/json:
schema:
$ref: '#/components/schemas/AccessTokenDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/accounts/login-google:
post:
tags:
- Accounts
summary: Log into the account using Google
description: Returns an access token.
operationId: post/v3/accounts/login-google
requestBody:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/GoogleLoginViewModel'
text/json:
schema:
$ref: '#/components/schemas/GoogleLoginViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/GoogleLoginViewModel'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AccessTokenDto'
text/json:
schema:
$ref: '#/components/schemas/AccessTokenDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/accounts/reset-password-request:
post:
tags:
- Accounts
summary: Send reset password email
description: Sends the reset password email.
operationId: post/v3/accounts/reset-password-request
parameters:
- name: origin
in: header
schema:
type: string
requestBody:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/UserEmailViewModel'
text/json:
schema:
$ref: '#/components/schemas/UserEmailViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/UserEmailViewModel'
responses:
'202':
description: Success
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'/v3/accounts/{id}/status':
put:
tags:
- Accounts
summary: Update account status
description: Updates the account status.
operationId: 'put/v3/accounts/{id}/status'
parameters:
- name: id
in: path
description: Unique identifier for the account.
required: true
schema:
type: string
requestBody:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/AccountStatusViewModel'
text/json:
schema:
$ref: '#/components/schemas/AccountStatusViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/AccountStatusViewModel'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/TenantDto'
text/json:
schema:
$ref: '#/components/schemas/TenantDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'/v3/accounts/{id}/plan':
put:
tags:
- Accounts
summary: Update account plan
description: Updates the account plan.
operationId: 'put/v3/accounts/{id}/plan'
parameters:
- name: id
in: path
description: Unique identifier for the account.
required: true
schema:
type: string
requestBody:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/PlanUpdateViewModel'
text/json:
schema:
$ref: '#/components/schemas/PlanUpdateViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/PlanUpdateViewModel'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/TenantDto'
text/json:
schema:
$ref: '#/components/schemas/TenantDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/activation-logs:
get:
tags:
- ActivationLogs
summary: List all activation logs
description: 'Returns a list of activation logs. The activation logs are returned sorted by creation date, with the most recent activation logs appearing first.'
operationId: get/v3/activation-logs
parameters:
- name: licenseId
in: query
schema:
type: string
- name: productId
in: query
schema:
type: string
- name: page
in: query
description: The page number.
schema:
maximum: 2147483647
minimum: 1
type: integer
format: int32
- name: limit
in: query
description: The number of records per page. Must be a number between 1 and 100.
schema:
maximum: 100
minimum: 1
type: integer
format: int32
- name: sort
in: query
description: The sort string to sort the returned records e.g. "-createdAt"
schema:
pattern: '([+-]\w*){1}(\|[+-]\w*){0,5}'
type: string
- name: query
in: query
description: Query string.
schema:
maxLength: 256
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ActivationLogDto'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/ActivationLogDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'/v3/activation-logs/{id}':
get:
tags:
- ActivationLogs
summary: Retrieve an activation log
description: Retrieves the details of an existing activation log.
operationId: 'get/v3/activation-logs/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the activation log.
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ActivationLogDto'
text/json:
schema:
$ref: '#/components/schemas/ActivationLogDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/activations:
get:
tags:
- Activations
summary: List all activations
description: 'Returns a list of activations. The activations are returned sorted by creation date, with the most recent activations appearing first.'
operationId: get/v3/activations
parameters:
- name: licenseId
in: query
schema:
type: string
- name: productId
in: query
schema:
type: string
- name: page
in: query
description: The page number.
schema:
maximum: 2147483647
minimum: 1
type: integer
format: int32
- name: limit
in: query
description: The number of records per page. Must be a number between 1 and 100.
schema:
maximum: 100
minimum: 1
type: integer
format: int32
- name: sort
in: query
description: The sort string to sort the returned records e.g. "-createdAt"
schema:
pattern: '([+-]\w*){1}(\|[+-]\w*){0,5}'
type: string
- name: query
in: query
description: Query string.
schema:
maxLength: 256
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ActivationDto'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/ActivationDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
post:
tags:
- Activations
summary: Create an activation
description: Creates a new activation.
operationId: post/v3/activations
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ActivationViewModel'
text/json:
schema:
$ref: '#/components/schemas/ActivationViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/ActivationViewModel'
responses:
'201':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ActivationTokenDto'
text/json:
schema:
$ref: '#/components/schemas/ActivationTokenDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'/v3/activations/{id}':
get:
tags:
- Activations
summary: Retrieve an activation
description: Retrieves the details of an existing activation.
operationId: 'get/v3/activations/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the activation.
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ActivationDto'
text/json:
schema:
$ref: '#/components/schemas/ActivationDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
patch:
tags:
- Activations
summary: Update an activation
description: Updates the specified activation by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
operationId: 'patch/v3/activations/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the activation.
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ActivationViewModel'
text/json:
schema:
$ref: '#/components/schemas/ActivationViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/ActivationViewModel'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ActivationTokenDto'
text/json:
schema:
$ref: '#/components/schemas/ActivationTokenDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
delete:
tags:
- Activations
summary: Delete an activation
description: Permanently deletes an activation. It cannot be undone.
operationId: 'delete/v3/activations/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the activation.
required: true
schema:
type: string
responses:
'204':
description: No Content
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/activations/offline-activate:
post:
tags:
- Activations
summary: Create an offline activation
description: Creates a new offline activation.
operationId: post/v3/activations/offline-activate
requestBody:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/OfflineActivationViewModel'
text/json:
schema:
$ref: '#/components/schemas/OfflineActivationViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/OfflineActivationViewModel'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/OfflineActivationDto'
text/json:
schema:
$ref: '#/components/schemas/OfflineActivationDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/activations/offline-deactivate:
post:
tags:
- Activations
summary: Delete an activation offline
description: Permanently deletes an activation using offline deactivation request. It cannot be undone.
operationId: post/v3/activations/offline-deactivate
requestBody:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/OfflineDeactivationRequestViewModel'
text/json:
schema:
$ref: '#/components/schemas/OfflineDeactivationRequestViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/OfflineDeactivationRequestViewModel'
responses:
'200':
description: Success
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/analytics/stats:
get:
tags:
- Analytics
summary: Retrieve account stats
description: Retrieves the account stats.
operationId: get/v3/analytics/stats
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AccountStatsDto'
text/json:
schema:
$ref: '#/components/schemas/AccountStatsDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/analytics/licenses:
get:
tags:
- Analytics
summary: Retrieve licenses' stats
description: Retrieves the licenses' stats.
operationId: get/v3/analytics/licenses
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/LicenseStatsDto'
text/json:
schema:
$ref: '#/components/schemas/LicenseStatsDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/analytics/activations:
get:
tags:
- Analytics
summary: Retrieve activations by time
description: Retrieve activations as time series data.
operationId: get/v3/analytics/activations
parameters:
- name: productId
in: query
description: Unique identifier for the product.
schema:
type: string
- name: startDate
in: query
description: Start date to get the activations from.
schema:
type: string
format: date-time
- name: endDate
in: query
description: End date to get the activations to.
schema:
type: string
format: date-time
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ActivationsByDateDto'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/ActivationsByDateDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/analytics/activations/os:
get:
tags:
- Analytics
summary: Retrieve activations by OS
description: Retrieve activations by OS.
operationId: get/v3/analytics/activations/os
parameters:
- name: productId
in: query
description: Unique identifier for the product.
schema:
type: string
- name: startDate
in: query
description: Start date to get the activations from.
schema:
type: string
format: date-time
- name: endDate
in: query
description: End date to get the activations to.
schema:
type: string
format: date-time
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ActivationsByOsDto'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/ActivationsByOsDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/analytics/activations/os-version:
get:
tags:
- Analytics
summary: Retrieve activations by OS version
description: Retrieve activations by OS version.
operationId: get/v3/analytics/activations/os-version
parameters:
- name: productId
in: query
description: Unique identifier for the product.
schema:
type: string
- name: startDate
in: query
description: Start date to get the activations from.
schema:
type: string
format: date-time
- name: endDate
in: query
description: End date to get the activations to.
schema:
type: string
format: date-time
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ActivationsByOsVersionDto'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/ActivationsByOsVersionDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/analytics/activations/geo-location:
get:
tags:
- Analytics
summary: Retrieve activations by geo-location
description: Retrieve activations by geo-location.
operationId: get/v3/analytics/activations/geo-location
parameters:
- name: productId
in: query
description: Unique identifier for the product.
schema:
type: string
- name: startDate
in: query
description: Start date to get the activations from.
schema:
type: string
format: date-time
- name: endDate
in: query
description: End date to get the activations to.
schema:
type: string
format: date-time
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ActivationsByCountryDto'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/ActivationsByCountryDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/analytics/activations/app-version:
get:
tags:
- Analytics
summary: Retrieve activations by app version
description: Retrieve activations by app version.
operationId: get/v3/analytics/activations/app-version
parameters:
- name: productId
in: query
description: Unique identifier for the product.
schema:
type: string
- name: startDate
in: query
description: Start date to get the activations from.
schema:
type: string
format: date-time
- name: endDate
in: query
description: End date to get the activations to.
schema:
type: string
format: date-time
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ActivationsByCountryDto'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/ActivationsByCountryDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/analytics/activations/vm-name:
get:
tags:
- Analytics
summary: Retrieve activations by virtual machines
description: Retrieve activations by virtual machines.
operationId: get/v3/analytics/activations/vm-name
parameters:
- name: productId
in: query
description: Unique identifier for the product.
schema:
type: string
- name: startDate
in: query
description: Start date to get the activations from.
schema:
type: string
format: date-time
- name: endDate
in: query
description: End date to get the activations to.
schema:
type: string
format: date-time
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ActivationsByVmDto'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/ActivationsByVmDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/analytics/trial-activations:
get:
tags:
- Analytics
summary: Retrieve trial activations by time
description: Retrieve trial activations as time series data.
operationId: get/v3/analytics/trial-activations
parameters:
- name: productId
in: query
description: Unique identifier for the product.
schema:
type: string
- name: startDate
in: query
description: Start date to get the activations from.
schema:
type: string
format: date-time
- name: endDate
in: query
description: End date to get the activations to.
schema:
type: string
format: date-time
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ActivationsByDateDto'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/ActivationsByDateDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/analytics/trial-activations/os:
get:
tags:
- Analytics
summary: Retrieve trial activations by OS
description: Retrieve trial activations by OS.
operationId: get/v3/analytics/trial-activations/os
parameters:
- name: productId
in: query
description: Unique identifier for the product.
schema:
type: string
- name: startDate
in: query
description: Start date to get the activations from.
schema:
type: string
format: date-time
- name: endDate
in: query
description: End date to get the activations to.
schema:
type: string
format: date-time
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ActivationsByOsDto'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/ActivationsByOsDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/analytics/trial-activations/os-version:
get:
tags:
- Analytics
summary: Retrieve trial activations by OS version
description: Retrieve trial activations by OS version.
operationId: get/v3/analytics/trial-activations/os-version
parameters:
- name: productId
in: query
description: Unique identifier for the product.
schema:
type: string
- name: startDate
in: query
description: Start date to get the activations from.
schema:
type: string
format: date-time
- name: endDate
in: query
description: End date to get the activations to.
schema:
type: string
format: date-time
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ActivationsByOsVersionDto'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/ActivationsByOsVersionDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/analytics/trial-activations/geo-location:
get:
tags:
- Analytics
summary: Retrieve trial activations by geo-location
description: Retrieve trial activations by geo-location.
operationId: get/v3/analytics/trial-activations/geo-location
parameters:
- name: productId
in: query
description: Unique identifier for the product.
schema:
type: string
- name: startDate
in: query
description: Start date to get the activations from.
schema:
type: string
format: date-time
- name: endDate
in: query
description: End date to get the activations to.
schema:
type: string
format: date-time
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ActivationsByCountryDto'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/ActivationsByCountryDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/analytics/trial-activations/vm-name:
get:
tags:
- Analytics
summary: Retrieve trial activations by virtual machines
description: Retrieve trial activations by virtual machines.
operationId: get/v3/analytics/trial-activations/vm-name
parameters:
- name: productId
in: query
description: Unique identifier for the product.
schema:
type: string
- name: startDate
in: query
description: Start date to get the activations from.
schema:
type: string
format: date-time
- name: endDate
in: query
description: End date to get the activations to.
schema:
type: string
format: date-time
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ActivationsByVmDto'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/ActivationsByVmDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/payment-methods/cards:
get:
tags:
- CreditCards
summary: List all credit cards
description: 'Returns a list of credit cards. The credit cards are returned sorted by creation date, with the most recent credit cards appearing first.'
operationId: get/v3/payment-methods/cards
parameters:
- name: page
in: query
description: The page number.
schema:
maximum: 2147483647
minimum: 1
type: integer
format: int32
- name: limit
in: query
description: The number of records per page. Must be a number between 1 and 100.
schema:
maximum: 100
minimum: 1
type: integer
format: int32
- name: sort
in: query
description: The sort string to sort the returned records e.g. "-createdAt"
schema:
pattern: '([+-]\w*){1}(\|[+-]\w*){0,5}'
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreditCardDto'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreditCardDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
post:
tags:
- CreditCards
summary: Create a credit card
description: Creates a new credit card.
operationId: post/v3/payment-methods/cards
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentMethodTokenViewModel'
text/json:
schema:
$ref: '#/components/schemas/PaymentMethodTokenViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/PaymentMethodTokenViewModel'
responses:
'201':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/CreditCardDto'
text/json:
schema:
$ref: '#/components/schemas/CreditCardDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'/v3/payment-methods/cards/{id}':
get:
tags:
- CreditCards
summary: Retrieve a credit card
description: Retrieves the details of an existing credit card.
operationId: 'get/v3/payment-methods/cards/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the credit card.
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/CreditCardDto'
text/json:
schema:
$ref: '#/components/schemas/CreditCardDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
patch:
tags:
- CreditCards
summary: Update a credit card
description: Updates the specified credit card by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
operationId: 'patch/v3/payment-methods/cards/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the credit card.
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreditCardViewModel'
text/json:
schema:
$ref: '#/components/schemas/CreditCardViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/CreditCardViewModel'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/CreditCardDto'
text/json:
schema:
$ref: '#/components/schemas/CreditCardDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
delete:
tags:
- CreditCards
summary: Delete a credit card
description: Permanently deletes a credit card. It cannot be undone.
operationId: 'delete/v3/payment-methods/cards/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the credit card.
required: true
schema:
type: string
responses:
'204':
description: No Content
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/event-logs:
get:
tags:
- EventLogs
summary: List all event logs
description: 'Returns a list of event logs. The event logs are returned sorted by creation date, with the most recent event logs appearing first.'
operationId: get/v3/event-logs
parameters:
- name: page
in: query
description: The page number.
schema:
maximum: 2147483647
minimum: 1
type: integer
format: int32
- name: limit
in: query
description: The number of records per page. Must be a number between 1 and 100.
schema:
maximum: 100
minimum: 1
type: integer
format: int32
- name: sort
in: query
description: The sort string to sort the returned records e.g. "-createdAt"
schema:
pattern: '([+-]\w*){1}(\|[+-]\w*){0,5}'
type: string
- name: query
in: query
description: Query string.
schema:
maxLength: 256
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/EventLogDto'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/EventLogDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'/v3/event-logs/{id}':
get:
tags:
- EventLogs
summary: Retrieve an event log
description: Retrieves the details of an existing event log.
operationId: 'get/v3/event-logs/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the event log.
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/EventLogDto'
text/json:
schema:
$ref: '#/components/schemas/EventLogDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/invoices:
get:
tags:
- Invoices
summary: List all invoices
description: 'Returns a list of invoices. The invoices are returned sorted by creation date, with the most recent invoices appearing first.'
operationId: get/v3/invoices
parameters:
- name: page
in: query
description: The page number.
schema:
maximum: 2147483647
minimum: 1
type: integer
format: int32
- name: limit
in: query
description: The number of records per page. Must be a number between 1 and 100.
schema:
maximum: 100
minimum: 1
type: integer
format: int32
- name: sort
in: query
description: The sort string to sort the returned records e.g. "-createdAt"
schema:
pattern: '([+-]\w*){1}(\|[+-]\w*){0,5}'
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/InvoiceDto'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/InvoiceDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/next:
get:
tags:
- Invoices
summary: List all invoices
description: 'Returns a list of invoices. The invoices are returned sorted by creation date, with the most recent invoices appearing first.'
operationId: get/next
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/InvoiceDto'
text/json:
schema:
$ref: '#/components/schemas/InvoiceDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/license-policies:
get:
tags:
- LicensePolicies
summary: List all license policies
description: 'Returns a list of license policies. The license policies are returned sorted by creation date, with the most recent license policies appearing first.'
operationId: get/v3/license-policies
parameters:
- name: page
in: query
description: The page number.
schema:
maximum: 2147483647
minimum: 1
type: integer
format: int32
- name: limit
in: query
description: The number of records per page. Must be a number between 1 and 100.
schema:
maximum: 100
minimum: 1
type: integer
format: int32
- name: sort
in: query
description: The sort string to sort the returned records e.g. "-createdAt"
schema:
pattern: '([+-]\w*){1}(\|[+-]\w*){0,5}'
type: string
- name: query
in: query
description: Query string.
schema:
maxLength: 256
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/LicensePolicyDto'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/LicensePolicyDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
post:
tags:
- LicensePolicies
summary: Create a license policy
description: Creates a new license policy.
operationId: post/v3/license-policies
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/LicensePolicyViewModel'
text/json:
schema:
$ref: '#/components/schemas/LicensePolicyViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/LicensePolicyViewModel'
responses:
'201':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/LicensePolicyDto'
text/json:
schema:
$ref: '#/components/schemas/LicensePolicyDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'/v3/license-policies/{id}':
get:
tags:
- LicensePolicies
summary: Retrieve a license policy
description: Retrieves the details of an existing license policy.
operationId: 'get/v3/license-policies/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the license policy.
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/LicensePolicyDto'
text/json:
schema:
$ref: '#/components/schemas/LicensePolicyDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
patch:
tags:
- LicensePolicies
summary: Update a license policy
description: Updates the specified license policy by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
operationId: 'patch/v3/license-policies/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the license policy.
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/LicensePolicyViewModel'
text/json:
schema:
$ref: '#/components/schemas/LicensePolicyViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/LicensePolicyViewModel'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/LicensePolicyDto'
text/json:
schema:
$ref: '#/components/schemas/LicensePolicyDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
delete:
tags:
- LicensePolicies
summary: Delete a license policy
description: Permanently deletes a license policy. It cannot be undone.
operationId: 'delete/v3/license-policies/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the license policy.
required: true
schema:
type: string
responses:
'204':
description: No Content
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/licenses:
get:
tags:
- Licenses
summary: List all licenses
description: 'Returns a list of licenses. The licenses are returned sorted by creation date, with the most recent licenses appearing first.'
operationId: get/v3/licenses
parameters:
- name: page
in: query
description: The page number.
schema:
maximum: 2147483647
minimum: 1
type: integer
format: int32
- name: limit
in: query
description: The number of records per page. Must be a number between 1 and 100.
schema:
maximum: 100
minimum: 1
type: integer
format: int32
- name: sort
in: query
description: The sort string to sort the returned records e.g. "-createdAt"
schema:
pattern: '([+-]\w*){1}(\|[+-]\w*){0,5}'
type: string
- name: productId
in: query
description: Unique identifier for the product.
schema:
type: string
- name: userId
in: query
description: Unique identifier for the user.
schema:
type: string
- name: email
in: query
description: Email address of the user.
schema:
type: string
- name: key
in: query
description: The key associated with the license.
schema:
maxLength: 256
minLength: 0
type: string
- name: revoked
in: query
description: Whether a license is revoked.
schema:
type: boolean
- name: type
in: query
description: Type of the license.
schema:
type: string
- name: validity
in: query
description: The duration after which the license will expire.
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
- name: allowedActivations
in: query
description: Allowed number of activations for the license.
schema:
maximum: 2147483647
minimum: 1
type: integer
format: int32
- name: allowedDeactivations
in: query
description: Allowed number of deactivations for the license.
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
- name: totalActivations
in: query
description: Total number of activations for the license.
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
- name: totalDeactivations
in: query
description: Total number of deactivations for the license.
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
- name: allowVmActivation
in: query
description: Whether activation is allowed inside a virtual machine.
schema:
type: boolean
- name: userLocked
in: query
description: Whether activation is locked to the machine user.
schema:
type: boolean
- name: expired
in: query
description: Whether license is expired.
schema:
type: boolean
- name: expirationStrategy
in: query
description: Expiration strategy of the license.
schema:
maxLength: 256
type: string
- name: createdAfter
in: query
description: Licenses created after.
schema:
type: string
format: date-time
- name: createdBefore
in: query
description: Licenses created before.
schema:
type: string
format: date-time
- name: tag
in: query
description: Tag associated with the license.
schema:
maxLength: 256
type: string
- name: metadataKey
in: query
description: Metadata key associated with the license.
schema:
maxLength: 256
type: string
- name: metadataValue
in: query
description: Metadata value associated with the license.
schema:
maxLength: 256
type: string
- name: query
in: query
description: Query string.
schema:
maxLength: 256
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/LicenseDto'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/LicenseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
post:
tags:
- Licenses
summary: Create a license
description: Creates a new license.
operationId: post/v3/licenses
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/LicenseViewModel'
text/json:
schema:
$ref: '#/components/schemas/LicenseViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/LicenseViewModel'
responses:
'201':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/LicenseDto'
text/json:
schema:
$ref: '#/components/schemas/LicenseDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'/v3/licenses/{id}':
get:
tags:
- Licenses
summary: Retrieve a license
description: Retrieves the details of an existing license.
operationId: 'get/v3/licenses/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the license.
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/LicenseDto'
text/json:
schema:
$ref: '#/components/schemas/LicenseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
patch:
tags:
- Licenses
summary: Update a license
description: Updates the specified license by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
operationId: 'patch/v3/licenses/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the license.
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/LicenseUpdateViewModel'
text/json:
schema:
$ref: '#/components/schemas/LicenseUpdateViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/LicenseUpdateViewModel'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/LicenseDto'
text/json:
schema:
$ref: '#/components/schemas/LicenseDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
delete:
tags:
- Licenses
summary: Delete a license
description: Permanently deletes a license. It cannot be undone.
operationId: 'delete/v3/licenses/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the license.
required: true
schema:
type: string
responses:
'204':
description: No Content
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/licenses/export:
get:
tags:
- Licenses
summary: Export all licenses
description: Exports all licenses in the csv format.
operationId: get/v3/licenses/export
parameters:
- name: productId
in: query
description: Unique identifier for the product.
schema:
type: string
- name: userId
in: query
description: Unique identifier for the user.
schema:
type: string
- name: email
in: query
description: Email address of the user.
schema:
type: string
responses:
'200':
description: Success
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'/v3/licenses/{id}/renew':
post:
tags:
- Licenses
summary: Renew license
description: Extends the license expiry by it's validity.
operationId: 'post/v3/licenses/{id}/renew'
parameters:
- name: id
in: path
description: ''
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/LicenseDto'
text/json:
schema:
$ref: '#/components/schemas/LicenseDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'/v3/licenses/{id}/extend':
post:
tags:
- Licenses
summary: Extend license
description: Extends the license expiry by extension length.
operationId: 'post/v3/licenses/{id}/extend'
parameters:
- name: id
in: path
description: ''
required: true
schema:
type: string
requestBody:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/LicenseExtensionViewModel'
text/json:
schema:
$ref: '#/components/schemas/LicenseExtensionViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/LicenseExtensionViewModel'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/LicenseDto'
text/json:
schema:
$ref: '#/components/schemas/LicenseDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/personal-access-tokens:
get:
tags:
- PersonalAccessTokens
summary: List all personal access tokens
description: 'Returns a list of personal access tokens. The personal access tokens are returned sorted by creation date, with the most recent personal access tokens appearing first.'
operationId: get/v3/personal-access-tokens
parameters:
- name: page
in: query
description: The page number.
schema:
maximum: 2147483647
minimum: 1
type: integer
format: int32
- name: limit
in: query
description: The number of records per page. Must be a number between 1 and 100.
schema:
maximum: 100
minimum: 1
type: integer
format: int32
- name: sort
in: query
description: The sort string to sort the returned records e.g. "-createdAt"
schema:
pattern: '([+-]\w*){1}(\|[+-]\w*){0,5}'
type: string
- name: query
in: query
description: Query string.
schema:
maxLength: 256
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/PersonalAccessTokenDto'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/PersonalAccessTokenDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
post:
tags:
- PersonalAccessTokens
summary: Create a personal access token
description: Creates a new personal access token.
operationId: post/v3/personal-access-tokens
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PersonalAccessTokenViewModel'
text/json:
schema:
$ref: '#/components/schemas/PersonalAccessTokenViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/PersonalAccessTokenViewModel'
responses:
'201':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AccessTokenDto'
text/json:
schema:
$ref: '#/components/schemas/AccessTokenDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'/v3/personal-access-tokens/{id}':
get:
tags:
- PersonalAccessTokens
summary: Retrieve a personal access token
description: Retrieves the details of an existing personal access token.
operationId: 'get/v3/personal-access-tokens/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the personal access token.
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/PersonalAccessTokenDto'
text/json:
schema:
$ref: '#/components/schemas/PersonalAccessTokenDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
patch:
tags:
- PersonalAccessTokens
summary: Update a personal access token
description: Updates the specified personal access token by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
operationId: 'patch/v3/personal-access-tokens/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the personal access token.
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PersonalAccessTokenRevokeViewModel'
text/json:
schema:
$ref: '#/components/schemas/PersonalAccessTokenRevokeViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/PersonalAccessTokenRevokeViewModel'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/PersonalAccessTokenDto'
text/json:
schema:
$ref: '#/components/schemas/PersonalAccessTokenDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
delete:
tags:
- PersonalAccessTokens
summary: Delete a personal access token
description: Permanently deletes a personal access token. It cannot be undone.
operationId: 'delete/v3/personal-access-tokens/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the personal access token.
required: true
schema:
type: string
responses:
'204':
description: No Content
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/plans:
get:
tags:
- Plans
summary: List all plans
description: 'Returns a list of plans. The plans are returned sorted by creation date, with the most recent plans appearing first.'
operationId: get/v3/plans
parameters:
- name: page
in: query
description: The page number.
schema:
maximum: 2147483647
minimum: 1
type: integer
format: int32
- name: limit
in: query
description: The number of records per page. Must be a number between 1 and 100.
schema:
maximum: 100
minimum: 1
type: integer
format: int32
- name: sort
in: query
description: The sort string to sort the returned records e.g. "-createdAt"
schema:
pattern: '([+-]\w*){1}(\|[+-]\w*){0,5}'
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/PlanDto'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/PlanDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'/v3/plans/{id}':
get:
tags:
- Plans
summary: Retrieve a plan
description: Retrieves the details of an existing plan.
operationId: 'get/v3/plans/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the plan.
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/PlanDto'
text/json:
schema:
$ref: '#/components/schemas/PlanDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/products:
get:
tags:
- Products
summary: List all products
description: 'Returns a list of products. The products are returned sorted by creation date, with the most recent products appearing first.'
operationId: get/v3/products
parameters:
- name: page
in: query
description: The page number.
schema:
maximum: 2147483647
minimum: 1
type: integer
format: int32
- name: limit
in: query
description: The number of records per page. Must be a number between 1 and 100.
schema:
maximum: 100
minimum: 1
type: integer
format: int32
- name: sort
in: query
description: The sort string to sort the returned records e.g. "-createdAt"
schema:
pattern: '([+-]\w*){1}(\|[+-]\w*){0,5}'
type: string
- name: query
in: query
description: Query string.
schema:
maxLength: 256
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ProductDto'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/ProductDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
post:
tags:
- Products
summary: Create a product
description: Creates a new product.
operationId: post/v3/products
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ProductViewModel'
text/json:
schema:
$ref: '#/components/schemas/ProductViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/ProductViewModel'
responses:
'201':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ProductDto'
text/json:
schema:
$ref: '#/components/schemas/ProductDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'/v3/products/{id}':
get:
tags:
- Products
summary: Retrieve a product
description: Retrieves the details of an existing product.
operationId: 'get/v3/products/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the product.
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ProductDto'
text/json:
schema:
$ref: '#/components/schemas/ProductDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
patch:
tags:
- Products
summary: Update a product
description: Updates the specified product by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
operationId: 'patch/v3/products/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the product.
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ProductViewModel'
text/json:
schema:
$ref: '#/components/schemas/ProductViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/ProductViewModel'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ProductDto'
text/json:
schema:
$ref: '#/components/schemas/ProductDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
delete:
tags:
- Products
summary: Delete a product
description: Permanently deletes a product. It cannot be undone.
operationId: 'delete/v3/products/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the product.
required: true
schema:
type: string
- name: authorization
in: header
schema:
type: string
responses:
'204':
description: No Content
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'/v3/products/{id}/product.dat':
get:
tags:
- Products
summary: Download product.dat file
description: Downloads the product.dat file.
operationId: 'get/v3/products/{id}/product.dat'
parameters:
- name: id
in: path
description: ''
required: true
schema:
type: string
responses:
'200':
description: Success
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/referrals/stats:
get:
tags:
- Referrals
summary: Retrieve referral stats
description: Retrieves the referral stats.
operationId: get/v3/referrals/stats
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ReferralStatsDto'
text/json:
schema:
$ref: '#/components/schemas/ReferralStatsDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/referrals/program:
post:
tags:
- Referrals
summary: Join referral program
description: Join the referrals program.
operationId: post/v3/referrals/program
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ReferralStatsDto'
text/json:
schema:
$ref: '#/components/schemas/ReferralStatsDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/release-files:
get:
tags:
- ReleaseFiles
summary: List all release files
description: 'Returns a list of release files. The release files are returned sorted by creation date, with the most recent release files appearing first.'
operationId: get/v3/release-files
parameters:
- name: page
in: query
description: The page number.
schema:
maximum: 2147483647
minimum: 1
type: integer
format: int32
- name: limit
in: query
description: The number of records per page. Must be a number between 1 and 100.
schema:
maximum: 100
minimum: 1
type: integer
format: int32
- name: sort
in: query
description: The sort string to sort the returned records e.g. "-createdAt"
schema:
pattern: '([+-]\w*){1}(\|[+-]\w*){0,5}'
type: string
- name: releaseId
in: query
description: Unique identifier for the release.
required: true
schema:
maxLength: 256
type: string
- name: name
in: query
description: Release file name
schema:
maxLength: 256
type: string
- name: query
in: query
description: Query string
schema:
maxLength: 256
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ReleaseFileDto'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/ReleaseFileDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
post:
tags:
- ReleaseFiles
summary: Create a release file
description: Creates a new release file.
operationId: post/v3/release-files
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ReleaseFileViewModel'
text/json:
schema:
$ref: '#/components/schemas/ReleaseFileViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/ReleaseFileViewModel'
responses:
'201':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ReleaseDto'
text/json:
schema:
$ref: '#/components/schemas/ReleaseDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'/v3/release-files/{id}':
get:
tags:
- ReleaseFiles
summary: Retrieve a release file
description: Retrieves the details of an existing release file.
operationId: 'get/v3/release-files/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the release file.
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ReleaseFileDto'
text/json:
schema:
$ref: '#/components/schemas/ReleaseFileDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
delete:
tags:
- ReleaseFiles
summary: Delete a release file
description: Permanently deletes a release file. It cannot be undone.
operationId: 'delete/v3/release-files/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the release file.
required: true
schema:
type: string
- name: authorization
in: header
schema:
type: string
responses:
'204':
description: No Content
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/releases:
get:
tags:
- Releases
summary: List all releases
description: 'Returns a list of releases. The releases are returned sorted by creation date, with the most recent releases appearing first.'
operationId: get/v3/releases
parameters:
- name: page
in: query
description: The page number.
schema:
maximum: 2147483647
minimum: 1
type: integer
format: int32
- name: limit
in: query
description: The number of records per page. Must be a number between 1 and 100.
schema:
maximum: 100
minimum: 1
type: integer
format: int32
- name: sort
in: query
description: The sort string to sort the returned records e.g. "-createdAt"
schema:
pattern: '([+-]\w*){1}(\|[+-]\w*){0,5}'
type: string
- name: productId
in: query
description: Unique identifier for the product.
required: true
schema:
maxLength: 256
type: string
- name: name
in: query
description: Release name
schema:
maxLength: 256
type: string
- name: platform
in: query
description: Release platform
schema:
maxLength: 256
type: string
- name: channel
in: query
description: Release channel
schema:
maxLength: 256
type: string
- name: version
in: query
description: Release version
schema:
type: string
- name: query
in: query
description: Query string
schema:
maxLength: 256
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ReleaseDto'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/ReleaseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
post:
tags:
- Releases
summary: Create a release
description: Creates a new release.
operationId: post/v3/releases
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ReleaseViewModel'
text/json:
schema:
$ref: '#/components/schemas/ReleaseViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/ReleaseViewModel'
responses:
'201':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ReleaseDto'
text/json:
schema:
$ref: '#/components/schemas/ReleaseDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'/v3/releases/{id}':
get:
tags:
- Releases
summary: Retrieve a release
description: Retrieves the details of an existing release.
operationId: 'get/v3/releases/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the release.
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ReleaseDto'
text/json:
schema:
$ref: '#/components/schemas/ReleaseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
patch:
tags:
- Releases
summary: Update a release
description: Updates the specified release by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
operationId: 'patch/v3/releases/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the release.
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ReleaseViewModel'
text/json:
schema:
$ref: '#/components/schemas/ReleaseViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/ReleaseViewModel'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ReleaseDto'
text/json:
schema:
$ref: '#/components/schemas/ReleaseDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
delete:
tags:
- Releases
summary: Delete a release
description: Permanently deletes a release. It cannot be undone.
operationId: 'delete/v3/releases/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the release.
required: true
schema:
type: string
- name: authorization
in: header
schema:
type: string
responses:
'204':
description: No Content
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/releases/update:
get:
tags:
- Releases
summary: Check for an update
description: Checks whether a new release is available by comparing with the provided release version.
operationId: get/v3/releases/update
parameters:
- name: platform
in: query
description: Release platform
required: true
schema:
maxLength: 256
type: string
- name: productId
in: query
description: Unique identifier for the product.
required: true
schema:
maxLength: 256
type: string
- name: channel
in: query
description: Release channel
schema:
maxLength: 256
type: string
- name: version
in: query
description: Current release version
required: true
schema:
maxLength: 256
type: string
- name: key
in: query
description: License key
required: true
schema:
maxLength: 256
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ReleaseDto'
text/json:
schema:
$ref: '#/components/schemas/ReleaseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/releases/latest:
get:
tags:
- Releases
summary: Get latest release
description: Gets the latest release.
operationId: get/v3/releases/latest
parameters:
- name: platform
in: query
description: Release platform.
required: true
schema:
maxLength: 256
type: string
- name: productId
in: query
description: Unique identifier for the product.
required: true
schema:
maxLength: 256
type: string
- name: channel
in: query
description: Release channel.
schema:
maxLength: 256
type: string
- name: key
in: query
description: License key.
required: true
schema:
maxLength: 256
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ReleaseDto'
text/json:
schema:
$ref: '#/components/schemas/ReleaseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'/v3/releases/{id}/publish':
post:
tags:
- Releases
summary: Publish release
description: After the release is published it can't be modified. The /update and /latest endpoints will start returning the published release.
operationId: 'post/v3/releases/{id}/publish'
parameters:
- name: id
in: path
description: ''
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ReleaseDto'
text/json:
schema:
$ref: '#/components/schemas/ReleaseDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/roles:
get:
tags:
- Roles
summary: List all roles
description: 'Returns a list of roles. The roles are returned sorted by creation date, with the most recent roles appearing first.'
operationId: get/v3/roles
parameters:
- name: page
in: query
description: The page number.
schema:
maximum: 2147483647
minimum: 1
type: integer
format: int32
- name: limit
in: query
description: The number of records per page. Must be a number between 1 and 100.
schema:
maximum: 100
minimum: 1
type: integer
format: int32
- name: sort
in: query
description: The sort string to sort the returned records e.g. "-createdAt"
schema:
pattern: '([+-]\w*){1}(\|[+-]\w*){0,5}'
type: string
- name: query
in: query
description: Query string.
schema:
maxLength: 256
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RoleDto'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/RoleDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
post:
tags:
- Roles
summary: Create a role
description: Creates a new role.
operationId: post/v3/roles
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RoleViewModel'
text/json:
schema:
$ref: '#/components/schemas/RoleViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/RoleViewModel'
responses:
'201':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/RoleDto'
text/json:
schema:
$ref: '#/components/schemas/RoleDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/roles/claims:
get:
tags:
- Roles
summary: List all role claims
description: Returns the list of all the role claims (permissions).
operationId: get/v3/roles/claims
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
additionalProperties:
type: array
items:
type: string
text/json:
schema:
type: object
additionalProperties:
type: array
items:
type: string
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'/v3/roles/{id}':
get:
tags:
- Roles
summary: Retrieve a role
description: Retrieves the details of an existing role.
operationId: 'get/v3/roles/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the role.
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/RoleDto'
text/json:
schema:
$ref: '#/components/schemas/RoleDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
patch:
tags:
- Roles
summary: Update a role
description: Updates the specified role by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
operationId: 'patch/v3/roles/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the role.
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RoleViewModel'
text/json:
schema:
$ref: '#/components/schemas/RoleViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/RoleViewModel'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/RoleDto'
text/json:
schema:
$ref: '#/components/schemas/RoleDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
delete:
tags:
- Roles
summary: Delete a role
description: Permanently deletes a role. It cannot be undone.
operationId: 'delete/v3/roles/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the role.
required: true
schema:
type: string
responses:
'204':
description: No Content
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/system-webhooks:
get:
tags:
- SystemWebhooks
summary: List all system webhooks
description: 'Returns a list of system webhooks. The system webhooks are returned sorted by creation date, with the most recent system webhooks appearing first.'
operationId: get/v3/system-webhooks
parameters:
- name: page
in: query
description: The page number.
schema:
maximum: 2147483647
minimum: 1
type: integer
format: int32
- name: limit
in: query
description: The number of records per page. Must be a number between 1 and 100.
schema:
maximum: 100
minimum: 1
type: integer
format: int32
- name: sort
in: query
description: The sort string to sort the returned records e.g. "-createdAt"
schema:
pattern: '([+-]\w*){1}(\|[+-]\w*){0,5}'
type: string
- name: query
in: query
description: Query string.
schema:
maxLength: 256
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/WebhookDto'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/WebhookDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
post:
tags:
- SystemWebhooks
summary: Create a system webhook
description: Creates a new system webhook.
operationId: post/v3/system-webhooks
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookViewModel'
text/json:
schema:
$ref: '#/components/schemas/WebhookViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/WebhookViewModel'
responses:
'201':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookDto'
text/json:
schema:
$ref: '#/components/schemas/WebhookDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'/v3/system-webhooks/{id}':
get:
tags:
- SystemWebhooks
summary: Retrieve a system webhook
description: Retrieves the details of an existing system webhook.
operationId: 'get/v3/system-webhooks/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the system webhook.
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookDto'
text/json:
schema:
$ref: '#/components/schemas/WebhookDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
patch:
tags:
- SystemWebhooks
summary: Update a system webhook
description: Updates the specified system webhook by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
operationId: 'patch/v3/system-webhooks/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the system webhook.
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookViewModel'
text/json:
schema:
$ref: '#/components/schemas/WebhookViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/WebhookViewModel'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookDto'
text/json:
schema:
$ref: '#/components/schemas/WebhookDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
delete:
tags:
- SystemWebhooks
summary: Delete a system webhook
description: Permanently deletes a system webhook. It cannot be undone.
operationId: 'delete/v3/system-webhooks/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the system webhook.
required: true
schema:
type: string
responses:
'204':
description: No Content
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/system-webhooks/events:
get:
tags:
- SystemWebhooks
summary: List all system webhooks
description: 'Returns a list of system webhooks. The system webhooks are returned sorted by creation date, with the most recent system webhooks appearing first.'
operationId: get/v3/system-webhooks/events
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
additionalProperties:
type: array
items:
type: string
text/json:
schema:
type: object
additionalProperties:
type: array
items:
type: string
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/tags:
get:
tags:
- Tags
summary: List all tags
description: 'Returns a list of tags. The tags are returned sorted by creation date, with the most recent tags appearing first.'
operationId: get/v3/tags
parameters:
- name: page
in: query
description: The page number.
schema:
maximum: 2147483647
minimum: 1
type: integer
format: int32
- name: limit
in: query
description: The number of records per page. Must be a number between 1 and 100.
schema:
maximum: 100
minimum: 1
type: integer
format: int32
- name: sort
in: query
description: The sort string to sort the returned records e.g. "-createdAt"
schema:
pattern: '([+-]\w*){1}(\|[+-]\w*){0,5}'
type: string
- name: query
in: query
description: Query string.
schema:
maxLength: 256
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/TagDto'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/TagDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
post:
tags:
- Tags
summary: Create a tag
description: Creates a new tag.
operationId: post/v3/tags
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TagViewModel'
text/json:
schema:
$ref: '#/components/schemas/TagViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/TagViewModel'
responses:
'201':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/TagDto'
text/json:
schema:
$ref: '#/components/schemas/TagDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'/v3/tags/{id}':
get:
tags:
- Tags
summary: Retrieve a tag
description: Retrieves the details of an existing tag.
operationId: 'get/v3/tags/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the tag.
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/TagDto'
text/json:
schema:
$ref: '#/components/schemas/TagDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
patch:
tags:
- Tags
summary: Update a tag
description: Updates the specified tag by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
operationId: 'patch/v3/tags/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the tag.
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TagViewModel'
text/json:
schema:
$ref: '#/components/schemas/TagViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/TagViewModel'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/TagDto'
text/json:
schema:
$ref: '#/components/schemas/TagDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
delete:
tags:
- Tags
summary: Delete a tag
description: Permanently deletes a tag. It cannot be undone.
operationId: 'delete/v3/tags/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the tag.
required: true
schema:
type: string
responses:
'204':
description: No Content
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/trial-activations:
get:
tags:
- TrialActivations
summary: List all trial activations
description: 'Returns a list of trial activations. The trial activations are returned sorted by creation date, with the most recent trial activations appearing first.'
operationId: get/v3/trial-activations
parameters:
- name: productId
in: query
schema:
type: string
- name: page
in: query
description: The page number.
schema:
maximum: 2147483647
minimum: 1
type: integer
format: int32
- name: limit
in: query
description: The number of records per page. Must be a number between 1 and 100.
schema:
maximum: 100
minimum: 1
type: integer
format: int32
- name: sort
in: query
description: The sort string to sort the returned records e.g. "-createdAt"
schema:
pattern: '([+-]\w*){1}(\|[+-]\w*){0,5}'
type: string
- name: query
in: query
description: Query string.
schema:
maxLength: 256
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/TrialActivationDto'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/TrialActivationDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
post:
tags:
- TrialActivations
summary: Create a trial activation
description: Creates a new trial activation.
operationId: post/v3/trial-activations
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TrialActivationViewModel'
text/json:
schema:
$ref: '#/components/schemas/TrialActivationViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/TrialActivationViewModel'
responses:
'201':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/TrialActivationTokenDto'
text/json:
schema:
$ref: '#/components/schemas/TrialActivationTokenDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'/v3/trial-activations/{id}':
get:
tags:
- TrialActivations
summary: Retrieve a trial activation
description: Retrieves the details of an existing trial activation.
operationId: 'get/v3/trial-activations/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the trial activation.
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/TrialActivationDto'
text/json:
schema:
$ref: '#/components/schemas/TrialActivationDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
delete:
tags:
- TrialActivations
summary: Delete a trial activation
description: Permanently deletes a trial activation. It cannot be undone.
operationId: 'delete/v3/trial-activations/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the trial activation.
required: true
schema:
type: string
responses:
'204':
description: No Content
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'/v3/trial-activations/{id}/extend':
post:
tags:
- TrialActivations
summary: Extend a trial activation
description: Extends the trial expiry by extension length.
operationId: 'post/v3/trial-activations/{id}/extend'
parameters:
- name: id
in: path
description: ''
required: true
schema:
type: string
requestBody:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/TrialExtensionViewModel'
text/json:
schema:
$ref: '#/components/schemas/TrialExtensionViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/TrialExtensionViewModel'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/TrialActivationDto'
text/json:
schema:
$ref: '#/components/schemas/TrialActivationDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/trial-activations/offline-activate:
post:
tags:
- TrialActivations
summary: Create an offline trial activation
description: Creates a new offline trial activation.
operationId: post/v3/trial-activations/offline-activate
requestBody:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/OfflineTrialActivationViewModel'
text/json:
schema:
$ref: '#/components/schemas/OfflineTrialActivationViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/OfflineTrialActivationViewModel'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/OfflineActivationDto'
text/json:
schema:
$ref: '#/components/schemas/OfflineActivationDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/trial-policies:
get:
tags:
- TrialPolicies
summary: List all trial policies
description: 'Returns a list of trial policies. The trial policies are returned sorted by creation date, with the most recent trial policies appearing first.'
operationId: get/v3/trial-policies
parameters:
- name: page
in: query
description: The page number.
schema:
maximum: 2147483647
minimum: 1
type: integer
format: int32
- name: limit
in: query
description: The number of records per page. Must be a number between 1 and 100.
schema:
maximum: 100
minimum: 1
type: integer
format: int32
- name: sort
in: query
description: The sort string to sort the returned records e.g. "-createdAt"
schema:
pattern: '([+-]\w*){1}(\|[+-]\w*){0,5}'
type: string
- name: query
in: query
description: Query string.
schema:
maxLength: 256
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/TrialPolicyDto'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/TrialPolicyDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
post:
tags:
- TrialPolicies
summary: Create a trial policy
description: Creates a new trial policy.
operationId: post/v3/trial-policies
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TrialPolicyViewModel'
text/json:
schema:
$ref: '#/components/schemas/TrialPolicyViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/TrialPolicyViewModel'
responses:
'201':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/TrialPolicyDto'
text/json:
schema:
$ref: '#/components/schemas/TrialPolicyDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'/v3/trial-policies/{id}':
get:
tags:
- TrialPolicies
summary: Retrieve a trial policy
description: Retrieves the details of an existing trial policy.
operationId: 'get/v3/trial-policies/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the trial policy.
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/TrialPolicyDto'
text/json:
schema:
$ref: '#/components/schemas/TrialPolicyDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
patch:
tags:
- TrialPolicies
summary: Update a trial policy
description: Updates the specified trial policy by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
operationId: 'patch/v3/trial-policies/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the trial policy.
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TrialPolicyViewModel'
text/json:
schema:
$ref: '#/components/schemas/TrialPolicyViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/TrialPolicyViewModel'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/TrialPolicyDto'
text/json:
schema:
$ref: '#/components/schemas/TrialPolicyDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
delete:
tags:
- TrialPolicies
summary: Delete a trial policy
description: Permanently deletes a trial policy. It cannot be undone.
operationId: 'delete/v3/trial-policies/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the trial policy.
required: true
schema:
type: string
responses:
'204':
description: No Content
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/users:
get:
tags:
- Users
summary: List all users
description: 'Returns a list of users. The users are returned sorted by creation date, with the most recent users appearing first.'
operationId: get/v3/users
parameters:
- name: page
in: query
description: The page number.
schema:
maximum: 2147483647
minimum: 1
type: integer
format: int32
- name: limit
in: query
description: The number of records per page. Must be a number between 1 and 100.
schema:
maximum: 100
minimum: 1
type: integer
format: int32
- name: sort
in: query
description: The sort string to sort the returned records e.g. "-createdAt"
schema:
pattern: '([+-]\w*){1}(\|[+-]\w*){0,5}'
type: string
- name: role
in: query
description: Role of the user.
schema:
type: string
- name: userType
in: query
description: Type of the user.
schema:
type: string
- name: email
in: query
description: Email address of the user.
schema:
type: string
- name: company
in: query
description: Company of the user.
schema:
type: string
- name: tag
in: query
description: Tag associated with the user.
schema:
maxLength: 256
type: string
- name: tags
in: query
description: Tags associated with the user.
schema:
maxLength: 10
type: array
items:
type: string
- name: metadataKey
in: query
description: Metadata key associated with the user.
schema:
maxLength: 256
type: string
- name: metadataValue
in: query
description: Metadata value associated with the user.
schema:
maxLength: 256
type: string
- name: createdAfter
in: query
description: User created after.
schema:
type: string
format: date-time
- name: lastSeenAfter
in: query
description: Last datetime after which user used the app.
schema:
type: string
format: date-time
- name: lastSeenBefore
in: query
description: Last datetime before which user used the app.
schema:
type: string
format: date-time
- name: query
in: query
description: Query string.
schema:
maxLength: 256
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/UserDto'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/UserDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
post:
tags:
- Users
summary: Create an user
description: Creates a new user.
operationId: post/v3/users
parameters:
- name: origin
in: header
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UserViewModel'
text/json:
schema:
$ref: '#/components/schemas/UserViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/UserViewModel'
responses:
'201':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/UserDto'
text/json:
schema:
$ref: '#/components/schemas/UserDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'/v3/users/{id}':
get:
tags:
- Users
summary: Retrieve an user
description: Retrieves the details of an existing user.
operationId: 'get/v3/users/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the user.
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/UserDto'
text/json:
schema:
$ref: '#/components/schemas/UserDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
patch:
tags:
- Users
summary: Update an user
description: Updates the specified user by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
operationId: 'patch/v3/users/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the user.
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UserUpdateViewModel'
text/json:
schema:
$ref: '#/components/schemas/UserUpdateViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/UserUpdateViewModel'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/UserDto'
text/json:
schema:
$ref: '#/components/schemas/UserDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
delete:
tags:
- Users
summary: Delete an user
description: Permanently deletes an user. It cannot be undone.
operationId: 'delete/v3/users/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the user.
required: true
schema:
type: string
responses:
'204':
description: No Content
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'/v3/users/{id}/update-password':
post:
tags:
- Users
summary: Update password
description: Update the user's password. A user's password can only be updated when authenticated as the given user.
operationId: 'post/v3/users/{id}/update-password'
parameters:
- name: id
in: path
description: ''
required: true
schema:
type: string
requestBody:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/UserPasswordViewModel'
text/json:
schema:
$ref: '#/components/schemas/UserPasswordViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/UserPasswordViewModel'
responses:
'204':
description: No Content
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'/v3/users/{id}/reset-password-token':
post:
tags:
- Users
summary: Generate reset password token
description: Generates the reset password token (url encoded) for users with 'USER' role. It should only be used for custom portals to implement password reset.
operationId: 'post/v3/users/{id}/reset-password-token'
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ResetPasswordTokenDto'
text/json:
schema:
$ref: '#/components/schemas/ResetPasswordTokenDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'/v3/users/{id}/reset-password':
post:
tags:
- Users
summary: Reset password
description: Update the user's password using password reset token.
operationId: 'post/v3/users/{id}/reset-password'
parameters:
- name: id
in: path
description: ''
required: true
schema:
type: string
requestBody:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ResetPasswordViewModel'
text/json:
schema:
$ref: '#/components/schemas/ResetPasswordViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/ResetPasswordViewModel'
responses:
'204':
description: No Content
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/me:
get:
tags:
- Users
summary: Retrieve profile
description: Retrieves the details of the currently authenticated user.
operationId: get/v3/me
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/UserDto'
text/json:
schema:
$ref: '#/components/schemas/UserDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
patch:
tags:
- Users
summary: Update profile
description: Updates the currently authenticated user by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
operationId: patch/v3/me
requestBody:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/MeUpdateViewModel'
text/json:
schema:
$ref: '#/components/schemas/MeUpdateViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/MeUpdateViewModel'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/UserDto'
text/json:
schema:
$ref: '#/components/schemas/UserDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/me/licenses:
get:
tags:
- Users
summary: List all licenses
description: 'Returns a list of licenses of the currently authenticated user. The licenses are returned sorted by creation date, with the most recent licenses appearing first.Retrieves the licenses.'
operationId: get/v3/me/licenses
parameters:
- name: page
in: query
description: The page number.
schema:
maximum: 2147483647
minimum: 1
type: integer
format: int32
- name: limit
in: query
description: The number of records per page. Must be a number between 1 and 100.
schema:
maximum: 100
minimum: 1
type: integer
format: int32
- name: sort
in: query
description: The sort string to sort the returned records e.g. "-createdAt"
schema:
pattern: '([+-]\w*){1}(\|[+-]\w*){0,5}'
type: string
- name: releaseId
in: query
description: ''
schema:
type: string
- name: query
in: query
description: Query string.
schema:
maxLength: 256
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/UserLicenseDto'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/UserLicenseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'/v3/me/licenses/{id}':
get:
tags:
- Users
summary: Retrieve a license
description: Retrieves the details of an existing license.
operationId: 'get/v3/me/licenses/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the user.
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/UserLicenseDto'
text/json:
schema:
$ref: '#/components/schemas/UserLicenseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/me/activations:
get:
tags:
- Users
summary: List all activations
description: 'Returns a list of activations of the currently authenticated user. The activations are returned sorted by creation date, with the most recent activations appearing first.'
operationId: get/v3/me/activations
parameters:
- name: licenseId
in: query
description: ''
schema:
type: string
- name: page
in: query
description: The page number.
schema:
maximum: 2147483647
minimum: 1
type: integer
format: int32
- name: limit
in: query
description: The number of records per page. Must be a number between 1 and 100.
schema:
maximum: 100
minimum: 1
type: integer
format: int32
- name: sort
in: query
description: The sort string to sort the returned records e.g. "-createdAt"
schema:
pattern: '([+-]\w*){1}(\|[+-]\w*){0,5}'
type: string
- name: query
in: query
description: Query string.
schema:
maxLength: 256
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ActivationDto'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/ActivationDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'/v3/me/activations/{id}':
get:
tags:
- Users
summary: Retrieve an activation
description: Retrieves the details of an existing activations.
operationId: 'get/v3/me/activations/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the user.
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ActivationDto'
text/json:
schema:
$ref: '#/components/schemas/ActivationDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/me/releases:
get:
tags:
- Users
summary: List all releases
description: 'Returns a list of published releases which can be downloaded by the currently authenticated user. The releases are returned sorted by published date, with the most recent published release appearing first.'
operationId: get/v3/me/releases
parameters:
- name: page
in: query
description: The page number.
schema:
maximum: 2147483647
minimum: 1
type: integer
format: int32
- name: limit
in: query
description: The number of records per page. Must be a number between 1 and 100.
schema:
maximum: 100
minimum: 1
type: integer
format: int32
- name: sort
in: query
description: The sort string to sort the returned records e.g. "-createdAt"
schema:
pattern: '([+-]\w*){1}(\|[+-]\w*){0,5}'
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/UserReleaseDto'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/UserReleaseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/me/2fa-secret:
post:
tags:
- Users
summary: Generate the 2FA secret
description: Generates the 2FA secret for Authenticator app.
operationId: post/v3/me/2fa-secret
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/TwoFactorSecretDto'
text/json:
schema:
$ref: '#/components/schemas/TwoFactorSecretDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/me/2fa-recovery-codes:
post:
tags:
- Users
summary: Generate the 2FA recovery codes
description: Generates the 2FA recovery codes.
operationId: post/v3/me/2fa-recovery-codes
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/TwoFactorRecoveryCodesDto'
text/json:
schema:
$ref: '#/components/schemas/TwoFactorRecoveryCodesDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/webhooks:
get:
tags:
- Webhooks
summary: List all webhooks
description: 'Returns a list of webhooks. The webhooks are returned sorted by creation date, with the most recent webhooks appearing first.'
operationId: get/v3/webhooks
parameters:
- name: page
in: query
description: The page number.
schema:
maximum: 2147483647
minimum: 1
type: integer
format: int32
- name: limit
in: query
description: The number of records per page. Must be a number between 1 and 100.
schema:
maximum: 100
minimum: 1
type: integer
format: int32
- name: sort
in: query
description: The sort string to sort the returned records e.g. "-createdAt"
schema:
pattern: '([+-]\w*){1}(\|[+-]\w*){0,5}'
type: string
- name: query
in: query
description: Query string.
schema:
maxLength: 256
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/WebhookDto'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/WebhookDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
post:
tags:
- Webhooks
summary: Create a webhook
description: Creates a new webhook.
operationId: post/v3/webhooks
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookViewModel'
text/json:
schema:
$ref: '#/components/schemas/WebhookViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/WebhookViewModel'
responses:
'201':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookDto'
text/json:
schema:
$ref: '#/components/schemas/WebhookDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'/v3/webhooks/{id}':
get:
tags:
- Webhooks
summary: Retrieve a webhook
description: Retrieves the details of an existing webhook.
operationId: 'get/v3/webhooks/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the webhook.
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookDto'
text/json:
schema:
$ref: '#/components/schemas/WebhookDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
patch:
tags:
- Webhooks
summary: Update a webhook
description: Updates the specified webhook by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
operationId: 'patch/v3/webhooks/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the webhook.
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookViewModel'
text/json:
schema:
$ref: '#/components/schemas/WebhookViewModel'
application/*+json:
schema:
$ref: '#/components/schemas/WebhookViewModel'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookDto'
text/json:
schema:
$ref: '#/components/schemas/WebhookDto'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
delete:
tags:
- Webhooks
summary: Delete a webhook
description: Permanently deletes a webhook. It cannot be undone.
operationId: 'delete/v3/webhooks/{id}'
parameters:
- name: id
in: path
description: Unique identifier for the webhook.
required: true
schema:
type: string
responses:
'204':
description: No Content
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
/v3/webhooks/events:
get:
tags:
- Webhooks
summary: List all events
description: Returns a list of all the events which can be subscribed to using webhooks.
operationId: get/v3/webhooks/events
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
additionalProperties:
type: array
items:
type: string
text/json:
schema:
type: object
additionalProperties:
type: array
items:
type: string
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/HttpErrorResponseDto'
security:
- bearerAuth: []
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
schemas:
PlanDto:
type: object
properties:
id:
type: string
nullable: true
name:
type: string
nullable: true
displayName:
type: string
nullable: true
interval:
type: string
nullable: true
allowedUsers:
type: integer
format: int32
allowedAdmins:
type: integer
format: int32
allowedProducts:
type: integer
format: int32
allowedPolicies:
type: integer
format: int32
allowedActivations:
type: integer
format: int32
allowedTrialActivations:
type: integer
format: int32
allowedReleases:
type: integer
format: int32
allowedProductSpace:
type: integer
format: int64
amount:
type: string
nullable: true
allowCustomerPortalAccess:
type: boolean
allowOfflineActivations:
type: boolean
allowHostedFloatingLicenses:
type: boolean
allowOnPremiseFloatingLicenses:
type: boolean
allowCustomDomain:
type: boolean
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
additionalProperties: false
TenantDto:
type: object
properties:
company:
type: string
nullable: true
email:
type: string
nullable: true
status:
enum:
- active
- inactive
type: string
nullable: true
customDomain:
type: string
nullable: true
website:
type: string
nullable: true
logoUrl:
type: string
nullable: true
faviconUrl:
type: string
nullable: true
googleClientId:
type: string
nullable: true
trialExpiresAt:
type: string
format: date-time
plan:
allOf:
- $ref: '#/components/schemas/PlanDto'
nullable: true
companyId:
type: string
nullable: true
id:
type: string
nullable: true
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
additionalProperties: false
HttpErrorResponseDto:
required:
- message
type: object
properties:
message:
type: string
description: The error message.
code:
type: string
description: The error code (conditional).
nullable: true
additionalProperties: false
AccountUpdateViewModel:
type: object
properties:
email:
type: string
description: Email address of the company.
format: email
nullable: true
company:
maxLength: 256
minLength: 0
type: string
description: Name of the company.
nullable: true
companyId:
maxLength: 256
minLength: 0
pattern: '^[a-zA-Z0-9_-]+$'
type: string
description: Unique company identifier.
nullable: true
customDomain:
maxLength: 256
minLength: 0
pattern: '^(?!:\/\/)([a-zA-Z0-9-_]+\.)*[a-zA-Z0-9][a-zA-Z0-9-_]+\.[a-zA-Z0-9][a-zA-Z0-9-_]+\.[a-zA-Z]{2,11}?$'
type: string
description: Custom domain of the company.
nullable: true
website:
maxLength: 256
minLength: 0
type: string
description: Website of the company.
format: uri
nullable: true
logoUrl:
maxLength: 256
minLength: 0
type: string
description: Logo url.
format: uri
nullable: true
faviconUrl:
maxLength: 256
minLength: 0
type: string
description: Favicon url.
format: uri
nullable: true
googleClientId:
maxLength: 256
minLength: 0
type: string
description: Google client id.
nullable: true
additionalProperties: false
RegisterViewModel:
required:
- company
- companyId
- email
- firstName
- lastName
- password
type: object
properties:
firstName:
maxLength: 256
minLength: 0
type: string
description: First name of the user.
lastName:
maxLength: 256
minLength: 0
type: string
description: Last name of the user.
email:
maxLength: 256
minLength: 0
type: string
description: Email address of the user.
format: email
password:
maxLength: 256
minLength: 0
type: string
description: Password of the user.
company:
maxLength: 256
minLength: 0
type: string
description: Name of the company.
companyId:
maxLength: 256
minLength: 0
pattern: '^[a-zA-Z0-9_-]+$'
type: string
description: Unique company identifier.
additionalProperties: false
MetadataDto:
type: object
properties:
visible:
type: boolean
key:
type: string
nullable: true
value:
type: string
nullable: true
additionalProperties: false
UserDto:
type: object
properties:
name:
type: string
nullable: true
firstName:
type: string
nullable: true
lastName:
type: string
nullable: true
email:
type: string
nullable: true
company:
type: string
nullable: true
twoFactorEnabled:
type: boolean
googleSsoEnabled:
type: boolean
role:
type: string
nullable: true
lastLoginAt:
type: string
format: date-time
nullable: true
lastSeenAt:
type: string
format: date-time
nullable: true
metadata:
type: array
items:
$ref: '#/components/schemas/MetadataDto'
nullable: true
tags:
type: array
items:
type: string
nullable: true
id:
type: string
nullable: true
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
additionalProperties: false
SignupDto:
type: object
properties:
user:
allOf:
- $ref: '#/components/schemas/UserDto'
nullable: true
company:
type: string
nullable: true
email:
type: string
nullable: true
status:
enum:
- active
- inactive
type: string
nullable: true
customDomain:
type: string
nullable: true
website:
type: string
nullable: true
logoUrl:
type: string
nullable: true
faviconUrl:
type: string
nullable: true
googleClientId:
type: string
nullable: true
trialExpiresAt:
type: string
format: date-time
plan:
allOf:
- $ref: '#/components/schemas/PlanDto'
nullable: true
companyId:
type: string
nullable: true
id:
type: string
nullable: true
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
additionalProperties: false
LoginViewModel:
required:
- email
- password
type: object
properties:
companyId:
maxLength: 256
minLength: 0
type: string
description: Unique identifier of the company. Required for your employee/customer login.
nullable: true
email:
maxLength: 256
minLength: 0
type: string
description: Email address of the user.
format: email
password:
maxLength: 256
minLength: 0
type: string
description: Password of the user.
twoFactorCode:
maxLength: 6
minLength: 6
type: string
description: Two factor code generated by Authenticator app.
nullable: true
twoFactorRecoveryCode:
maxLength: 8
minLength: 8
type: string
description: Two factor recovery code.
nullable: true
additionalProperties: false
AccessTokenDto:
type: object
properties:
accessToken:
type: string
nullable: true
additionalProperties: false
GoogleLoginViewModel:
required:
- email
- idToken
type: object
properties:
companyId:
maxLength: 256
minLength: 0
type: string
description: Unique identifier of the company. Required for your employee/customer login.
nullable: true
email:
maxLength: 256
minLength: 0
type: string
description: Email address of the user.
format: email
idToken:
minLength: 8
type: string
description: Google id token of the user.
additionalProperties: false
UserEmailViewModel:
required:
- email
type: object
properties:
companyId:
maxLength: 256
minLength: 0
type: string
description: Unique company identifier.
nullable: true
email:
type: string
description: Email address of the user.
format: email
additionalProperties: false
AccountStatusViewModel:
required:
- status
type: object
properties:
status:
enum:
- active
- inactive
type: string
description: Status of the account.
additionalProperties: false
PlanUpdateViewModel:
required:
- planId
type: object
properties:
planId:
type: string
description: Unique identifier for the plan.
additionalProperties: false
GeoLocationDto:
type: object
properties:
ipAddress:
type: string
nullable: true
countryCode:
type: string
nullable: true
countryName:
type: string
nullable: true
regionCode:
type: string
nullable: true
regionName:
type: string
nullable: true
city:
type: string
nullable: true
zipCode:
type: string
nullable: true
timeZone:
type: string
nullable: true
latitude:
type: number
format: double
nullable: true
longitude:
type: number
format: double
nullable: true
additionalProperties: false
ActivationMetadataDto:
type: object
properties:
key:
type: string
nullable: true
value:
type: string
nullable: true
additionalProperties: false
ActivationLogDto:
type: object
properties:
os:
enum:
- windows
- linux
- macos
- android
- ios
type: string
nullable: true
osVersion:
type: string
nullable: true
hostname:
type: string
nullable: true
action:
type: string
nullable: true
location:
allOf:
- $ref: '#/components/schemas/GeoLocationDto'
nullable: true
vmName:
type: string
nullable: true
metadata:
type: array
items:
$ref: '#/components/schemas/ActivationMetadataDto'
nullable: true
licenseId:
type: string
nullable: true
id:
type: string
nullable: true
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
additionalProperties: false
ActivationMeterAttributeDto:
type: object
properties:
name:
type: string
nullable: true
uses:
type: integer
format: int64
additionalProperties: false
ActivationDto:
type: object
properties:
licenseId:
type: string
nullable: true
lastSyncedAt:
type: string
format: date-time
leaseExpiresAt:
type: string
format: date-time
nullable: true
os:
enum:
- windows
- linux
- macos
- android
- ios
type: string
nullable: true
osVersion:
type: string
nullable: true
hostname:
type: string
nullable: true
location:
allOf:
- $ref: '#/components/schemas/GeoLocationDto'
nullable: true
vmName:
type: string
nullable: true
appVersion:
type: string
nullable: true
expiresAt:
type: string
format: date-time
nullable: true
metadata:
type: array
items:
$ref: '#/components/schemas/ActivationMetadataDto'
nullable: true
meterAttributes:
type: array
items:
$ref: '#/components/schemas/ActivationMeterAttributeDto'
nullable: true
id:
type: string
nullable: true
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
additionalProperties: false
ActivationMetadataViewModel:
required:
- key
- value
type: object
properties:
key:
maxLength: 256
minLength: 0
type: string
description: Name of the key.
value:
maxLength: 4096
minLength: 0
type: string
description: Value of the key.
additionalProperties: false
ActivationMeterAttributeViewModel:
required:
- name
- uses
type: object
properties:
name:
maxLength: 256
minLength: 0
type: string
description: Name of the attribute.
uses:
minimum: 0
type: integer
description: Number of uses for the attribute.
format: int64
additionalProperties: false
ActivationViewModel:
required:
- appVersion
- fingerprint
- hostname
- key
- os
- productId
- userHash
type: object
properties:
key:
type: string
description: License key to activate the license.
email:
type: string
description: Email address of the user.
nullable: true
password:
type: string
description: Password of the user.
nullable: true
metadata:
type: array
items:
$ref: '#/components/schemas/ActivationMetadataViewModel'
description: List of metdata key/value pairs.
nullable: true
meterAttributes:
type: array
items:
$ref: '#/components/schemas/ActivationMeterAttributeViewModel'
description: List of meter attributes.
nullable: true
os:
enum:
- windows
- linux
- macos
- android
- ios
type: string
description: Name of the operating system.
osVersion:
type: string
description: Version of the operating system.
nullable: true
fingerprint:
minLength: 64
type: string
description: Fingerprint of the machine.
vmName:
type: string
description: Name of the virtual machine.
nullable: true
hostname:
type: string
description: Name of the host machine.
appVersion:
type: string
description: Version of the application.
userHash:
type: string
description: Hash of the machine user name.
productId:
type: string
description: Unique identifier for the product.
additionalProperties: false
ActivationTokenDto:
type: object
properties:
activationToken:
type: string
nullable: true
additionalProperties: false
OfflineActivationViewModel:
required:
- licenseId
- offlineRequest
- responseValidity
type: object
properties:
offlineRequest:
type: string
description: Encrypted offline activation request.
responseValidity:
maximum: 2147483647
minimum: 1
type: integer
description: The duration (in seconds) for which the offline response should remain valid.
format: int32
licenseId:
type: string
description: Unique identifier for the license.
additionalProperties: false
OfflineActivationDto:
type: object
properties:
offlineResponse:
type: string
nullable: true
additionalProperties: false
OfflineDeactivationRequestViewModel:
required:
- licenseId
- offlineRequest
type: object
properties:
offlineRequest:
type: string
description: Encrypted offline deactivation request.
licenseId:
type: string
description: Unique identifier for the license.
additionalProperties: false
AccountStatsDto:
type: object
properties:
products:
type: integer
format: int32
licenses:
type: integer
format: int32
activations:
type: integer
format: int32
trialActivations:
type: integer
format: int32
releases:
type: integer
format: int32
users:
type: integer
format: int32
admins:
type: integer
format: int32
additionalProperties: false
LicenseStatsDto:
type: object
properties:
active:
type: integer
format: int32
expired:
type: integer
format: int32
expiringSoon:
type: integer
format: int32
revoked:
type: integer
format: int32
suspended:
type: integer
format: int32
additionalProperties: false
ActivationsByDateDto:
type: object
properties:
activations:
type: integer
format: int32
activatedAt:
type: string
format: date-time
additionalProperties: false
ActivationsByOsDto:
type: object
properties:
activations:
type: integer
format: int32
os:
enum:
- windows
- linux
- macos
- android
- ios
type: string
nullable: true
additionalProperties: false
ActivationsByOsVersionDto:
type: object
properties:
activations:
type: integer
format: int32
osVersion:
type: string
nullable: true
additionalProperties: false
ActivationsByCountryDto:
type: object
properties:
activations:
type: integer
format: int32
countryCode:
type: string
nullable: true
additionalProperties: false
ActivationsByVmDto:
type: object
properties:
activations:
type: integer
format: int32
vmName:
type: string
nullable: true
additionalProperties: false
CreditCardDto:
type: object
properties:
brand:
type: string
nullable: true
country:
type: string
nullable: true
last4:
type: string
nullable: true
addressZip:
type: string
nullable: true
expirationYear:
type: integer
format: int32
expirationMonth:
type: integer
format: int32
id:
type: string
nullable: true
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
additionalProperties: false
PaymentMethodTokenViewModel:
required:
- token
type: object
properties:
token:
maxLength: 256
minLength: 0
type: string
description: Token to validate payment method details.
additionalProperties: false
CreditCardViewModel:
required:
- addressZip
- expirationMonth
- expirationYear
type: object
properties:
expirationMonth:
maximum: 12
minimum: 1
type: integer
description: Credit card expiration month.
format: int32
expirationYear:
maximum: 2200
minimum: 2018
type: integer
description: Credit card expiration year.
format: int32
addressZip:
type: string
description: Credit card address zip.
additionalProperties: false
EventLogDto:
type: object
properties:
resource:
type: string
nullable: true
action:
type: string
nullable: true
resourceId:
type: string
nullable: true
ipAddress:
type: string
nullable: true
user:
allOf:
- $ref: '#/components/schemas/UserDto'
nullable: true
id:
type: string
nullable: true
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
additionalProperties: false
InvoiceDto:
type: object
properties:
id:
type: string
nullable: true
date:
type: string
format: date-time
nullable: true
description:
type: string
nullable: true
total:
type: integer
format: int32
paid:
type: boolean
periodEnd:
type: string
format: date-time
periodStart:
type: string
format: date-time
invoicePdf:
type: string
nullable: true
receiptNumber:
type: string
nullable: true
statementDescriptor:
type: string
nullable: true
additionalProperties: false
LicensePolicyDto:
type: object
properties:
validity:
type: integer
format: int32
expirationStrategy:
enum:
- immediate
- delayed
- rolling
type: string
nullable: true
fingerprintMatchingStrategy:
enum:
- fuzzy
- exact
- loose
type: string
nullable: true
allowedActivations:
type: integer
format: int32
allowedDeactivations:
type: integer
format: int32
type:
enum:
- node-locked
- hosted-floating
- on-premise-floating
type: string
nullable: true
keyPattern:
type: string
nullable: true
leaseDuration:
type: integer
format: int32
leasingStrategy:
enum:
- per-machine
- per-instance
type: string
nullable: true
allowedFloatingClients:
type: integer
format: int32
serverSyncGracePeriod:
type: integer
format: int32
serverSyncInterval:
type: integer
format: int32
allowedClockOffset:
type: integer
format: int32
requireAuthentication:
type: boolean
requiredMetadataKeys:
type: array
items:
type: string
nullable: true
requiredMeterAttributes:
type: array
items:
type: string
nullable: true
name:
type: string
nullable: true
allowVmActivation:
type: boolean
userLocked:
type: boolean
disableGeoLocation:
type: boolean
allowedCountries:
type: array
items:
type: string
nullable: true
disallowedCountries:
type: array
items:
type: string
nullable: true
allowedIpAddresses:
type: array
items:
type: string
nullable: true
disallowedIpAddresses:
type: array
items:
type: string
nullable: true
id:
type: string
nullable: true
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
additionalProperties: false
LicensePolicyViewModel:
required:
- allowedActivations
- allowedClockOffset
- allowedDeactivations
- allowVmActivation
- disableGeoLocation
- expirationStrategy
- fingerprintMatchingStrategy
- name
- requireAuthentication
- serverSyncGracePeriod
- serverSyncInterval
- type
- userLocked
- validity
type: object
properties:
validity:
maximum: 2147483647
minimum: 0
type: integer
description: The duration after which the license will expire. Set to '0' for no expiry.
format: int32
expirationStrategy:
enum:
- immediate
- delayed
- rolling
type: string
description: The strategy to determine the expiration start date.
allowedActivations:
maximum: 2147483647
minimum: 0
type: integer
description: Allowed number of activations for the license. Set to '0' for unlimited activations.
format: int32
allowedDeactivations:
maximum: 2147483647
minimum: 0
type: integer
description: Allowed number of deactivations for the license. This setting is ignored for floating licenses.
format: int32
type:
enum:
- node-locked
- hosted-floating
- on-premise-floating
type: string
description: Type of the license key.
keyPattern:
type: string
description: Regex for the license key pattern.
nullable: true
leaseDuration:
maximum: 2147483647
minimum: 0
type: integer
description: Duration of lease for floating licenses. Set to '0' for unlimited lease duration.
format: int32
nullable: true
leasingStrategy:
enum:
- per-machine
- per-instance
type: string
description: Leasing strategy for floating licenses.
nullable: true
allowedFloatingClients:
maximum: 2147483647
minimum: 0
type: integer
description: Allowed number of floating clients for on-premise LexFloatServer.
format: int32
nullable: true
serverSyncGracePeriod:
maximum: 2147483647
minimum: 0
type: integer
description: The duration for which the server sync failure due to network error is acceptable.
format: int32
serverSyncInterval:
maximum: 2147483647
minimum: 180
type: integer
description: The interval at which license data in client is synced with the server.
format: int32
allowedClockOffset:
maximum: 2147483647
minimum: 60
type: integer
description: The allowed clock offset between the network time and the local time.
format: int32
requireAuthentication:
type: boolean
description: Whether user authentication is required for license activation.
requiredMetadataKeys:
maxLength: 50
type: array
items:
type: string
description: List of required metadata keys which a license must have.
nullable: true
requiredMeterAttributes:
maxLength: 50
type: array
items:
type: string
description: List of required meter attributes which a license must have.
nullable: true
name:
type: string
description: Name for the policy.
fingerprintMatchingStrategy:
enum:
- fuzzy
- exact
- loose
type: string
description: Strategy for matching machine fingerprint.
allowVmActivation:
type: boolean
description: Whether to allow an activation inside a virtual machine.
userLocked:
type: boolean
description: Locks the activation to the machine user.
disableGeoLocation:
type: boolean
description: Whether IP address and geo-location should be stored.
allowedCountries:
maxLength: 256
type: array
items:
type: string
description: List of the allowed countries. Leave empty to ignore.
nullable: true
disallowedCountries:
maxLength: 256
type: array
items:
type: string
description: List of the disallowed countries. Leave empty to ignore.
nullable: true
allowedIpAddresses:
maxLength: 256
type: array
items:
type: string
description: List of the allowed ip addresses. Leave empty to ignore.
nullable: true
disallowedIpAddresses:
maxLength: 256
type: array
items:
type: string
description: List of the disallowed ip addresses. Leave empty to ignore.
nullable: true
additionalProperties: false
LicenseMeterAttributeDto:
type: object
properties:
name:
type: string
nullable: true
allowedUses:
type: integer
format: int64
totalUses:
type: integer
format: int64
grossUses:
type: integer
format: int64
additionalProperties: false
LicenseDto:
type: object
properties:
key:
type: string
nullable: true
revoked:
type: boolean
suspended:
type: boolean
totalActivations:
type: integer
format: int32
totalDeactivations:
type: integer
format: int32
validity:
type: integer
format: int32
expirationStrategy:
enum:
- immediate
- delayed
- rolling
type: string
nullable: true
fingerprintMatchingStrategy:
enum:
- fuzzy
- exact
- loose
type: string
nullable: true
allowedActivations:
type: integer
format: int32
allowedDeactivations:
type: integer
format: int32
type:
enum:
- node-locked
- hosted-floating
- on-premise-floating
type: string
nullable: true
allowedFloatingClients:
type: integer
format: int32
serverSyncGracePeriod:
type: integer
format: int32
serverSyncInterval:
type: integer
format: int32
allowedClockOffset:
type: integer
format: int32
leaseDuration:
type: integer
format: int32
leasingStrategy:
enum:
- per-machine
- per-instance
type: string
nullable: true
expiresAt:
type: string
format: date-time
nullable: true
allowVmActivation:
type: boolean
userLocked:
type: boolean
requireAuthentication:
type: boolean
disableGeoLocation:
type: boolean
notes:
type: string
nullable: true
productId:
type: string
nullable: true
user:
allOf:
- $ref: '#/components/schemas/UserDto'
nullable: true
reseller:
allOf:
- $ref: '#/components/schemas/UserDto'
nullable: true
allowedCountries:
type: array
items:
type: string
nullable: true
disallowedCountries:
type: array
items:
type: string
nullable: true
allowedIpAddresses:
type: array
items:
type: string
nullable: true
disallowedIpAddresses:
type: array
items:
type: string
nullable: true
metadata:
type: array
items:
$ref: '#/components/schemas/MetadataDto'
nullable: true
meterAttributes:
type: array
items:
$ref: '#/components/schemas/LicenseMeterAttributeDto'
nullable: true
tags:
type: array
items:
type: string
nullable: true
id:
type: string
nullable: true
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
additionalProperties: false
LicenseMetadataViewModel:
required:
- key
- value
- visible
type: object
properties:
visible:
type: boolean
description: Set true to access the metadata on activation.
key:
maxLength: 256
minLength: 0
type: string
description: Name of the key.
value:
maxLength: 4096
minLength: 0
type: string
description: Value of the key.
additionalProperties: false
LicenseMeterAttributeViewModel:
required:
- allowedUses
- name
type: object
properties:
name:
maxLength: 256
minLength: 0
type: string
description: Name of the attribute.
allowedUses:
minimum: 1
type: integer
description: Allowed number of uses for the attribute.
format: int64
additionalProperties: false
LicenseViewModel:
required:
- productId
type: object
properties:
validity:
maximum: 2147483647
minimum: 0
type: integer
description: The duration after which the license will expire. Set to '0' for no expiry.
format: int32
nullable: true
leasingStrategy:
enum:
- per-machine
- per-instance
type: string
description: Leasing strategy for hosted-floating and on-premise license.
nullable: true
userLocked:
type: boolean
description: Locks the activation to the machine user.
nullable: true
expirationStrategy:
enum:
- immediate
- delayed
- rolling
type: string
description: The strategy to determine the expiration start date.
nullable: true
type:
enum:
- node-locked
- hosted-floating
- on-premise-floating
type: string
description: Type of the license.
nullable: true
createdAt:
type: string
description: This property should only be used if importing old licenses.
format: date-time
nullable: true
productId:
type: string
description: Unique identifier for the product.
licensePolicyId:
type: string
description: Unique identifier for the license policy. Use this to override the default license policy.
nullable: true
key:
maxLength: 256
minLength: 16
type: string
description: 'The key associated with the license. If left empty, key is auto-generated.'
nullable: true
revoked:
type: boolean
description: Set true to revoke the license.
nullable: true
suspended:
type: boolean
description: Set true to suspend the license.
nullable: true
fingerprintMatchingStrategy:
enum:
- fuzzy
- exact
- loose
type: string
description: Strategy for matching machine fingerprint.
nullable: true
allowedActivations:
maximum: 2147483647
minimum: 0
type: integer
description: Allowed number of activations for the license. Set to '0' for unlimited activations.
format: int32
nullable: true
allowedDeactivations:
maximum: 2147483647
minimum: 0
type: integer
description: Allowed number of deactivations for the license. This setting is ignored for floating licenses.
format: int32
nullable: true
leaseDuration:
maximum: 2147483647
minimum: 0
type: integer
description: Duration of lease for floating licenses. Set to '0' for unlimited lease duration.
format: int32
nullable: true
allowedFloatingClients:
maximum: 2147483647
minimum: 0
type: integer
description: Allowed number of floating clients for on-premise floating licenses
format: int32
nullable: true
serverSyncGracePeriod:
maximum: 2147483647
minimum: 0
type: integer
description: The duration for which the server sync failure due to network error is acceptable.
format: int32
nullable: true
serverSyncInterval:
maximum: 2147483647
minimum: 180
type: integer
description: The interval at which license data in client is synced with the server.
format: int32
nullable: true
allowedClockOffset:
maximum: 2147483647
minimum: 60
type: integer
description: The allowed clock offset between the network time and the local time.
format: int32
nullable: true
allowVmActivation:
type: boolean
description: Whether to allow an activation inside a virtual machine.
nullable: true
requireAuthentication:
type: boolean
description: Whether user authentication is required for license activation.
nullable: true
disableGeoLocation:
type: boolean
description: Whether IP address and geo-location should be stored.
nullable: true
notes:
type: string
description: Notes to store with the license.
nullable: true
allowedCountries:
maxLength: 256
type: array
items:
type: string
description: List of the allowed countries. Leave empty to ignore.
nullable: true
disallowedCountries:
maxLength: 256
type: array
items:
type: string
description: List of the disallowed countries. Leave empty to ignore.
nullable: true
allowedIpAddresses:
maxLength: 256
type: array
items:
type: string
description: List of the allowed ip addresses. Leave empty to ignore.
nullable: true
disallowedIpAddresses:
maxLength: 256
type: array
items:
type: string
description: List of the disallowed ip addresses. Leave empty to ignore.
nullable: true
userId:
type: string
description: Unique identifier for the user.
nullable: true
resellerId:
type: string
description: Unique identifier for the reseller user.
nullable: true
tags:
maxLength: 5
type: array
items:
type: string
description: List of tags.
nullable: true
metadata:
type: array
items:
$ref: '#/components/schemas/LicenseMetadataViewModel'
description: List of metdata key/value pairs.
nullable: true
meterAttributes:
type: array
items:
$ref: '#/components/schemas/LicenseMeterAttributeViewModel'
description: List of metered attributes.
nullable: true
additionalProperties: false
LicenseUpdateViewModel:
type: object
properties:
key:
maxLength: 256
minLength: 16
type: string
description: 'The key associated with the license. If left empty, key is auto-generated.'
nullable: true
revoked:
type: boolean
description: Set true to revoke the license.
nullable: true
suspended:
type: boolean
description: Set true to suspend the license.
nullable: true
fingerprintMatchingStrategy:
enum:
- fuzzy
- exact
- loose
type: string
description: Strategy for matching machine fingerprint.
nullable: true
allowedActivations:
maximum: 2147483647
minimum: 0
type: integer
description: Allowed number of activations for the license. Set to '0' for unlimited activations.
format: int32
nullable: true
allowedDeactivations:
maximum: 2147483647
minimum: 0
type: integer
description: Allowed number of deactivations for the license. This setting is ignored for floating licenses.
format: int32
nullable: true
leaseDuration:
maximum: 2147483647
minimum: 0
type: integer
description: Duration of lease for floating licenses. Set to '0' for unlimited lease duration.
format: int32
nullable: true
allowedFloatingClients:
maximum: 2147483647
minimum: 0
type: integer
description: Allowed number of floating clients for on-premise floating licenses
format: int32
nullable: true
serverSyncGracePeriod:
maximum: 2147483647
minimum: 0
type: integer
description: The duration for which the server sync failure due to network error is acceptable.
format: int32
nullable: true
serverSyncInterval:
maximum: 2147483647
minimum: 180
type: integer
description: The interval at which license data in client is synced with the server.
format: int32
nullable: true
allowedClockOffset:
maximum: 2147483647
minimum: 60
type: integer
description: The allowed clock offset between the network time and the local time.
format: int32
nullable: true
allowVmActivation:
type: boolean
description: Whether to allow an activation inside a virtual machine.
nullable: true
requireAuthentication:
type: boolean
description: Whether user authentication is required for license activation.
nullable: true
disableGeoLocation:
type: boolean
description: Whether IP address and geo-location should be stored.
nullable: true
notes:
type: string
description: Notes to store with the license.
nullable: true
allowedCountries:
maxLength: 256
type: array
items:
type: string
description: List of the allowed countries. Leave empty to ignore.
nullable: true
disallowedCountries:
maxLength: 256
type: array
items:
type: string
description: List of the disallowed countries. Leave empty to ignore.
nullable: true
allowedIpAddresses:
maxLength: 256
type: array
items:
type: string
description: List of the allowed ip addresses. Leave empty to ignore.
nullable: true
disallowedIpAddresses:
maxLength: 256
type: array
items:
type: string
description: List of the disallowed ip addresses. Leave empty to ignore.
nullable: true
userId:
type: string
description: Unique identifier for the user.
nullable: true
resellerId:
type: string
description: Unique identifier for the reseller user.
nullable: true
tags:
maxLength: 5
type: array
items:
type: string
description: List of tags.
nullable: true
metadata:
type: array
items:
$ref: '#/components/schemas/LicenseMetadataViewModel'
description: List of metdata key/value pairs.
nullable: true
meterAttributes:
type: array
items:
$ref: '#/components/schemas/LicenseMeterAttributeViewModel'
description: List of metered attributes.
nullable: true
additionalProperties: false
LicenseExtensionViewModel:
required:
- extensionLength
type: object
properties:
extensionLength:
type: integer
description: License extension duration (in seconds) to extend the license expiry.
format: int32
additionalProperties: false
PersonalAccessTokenDto:
type: object
properties:
name:
type: string
nullable: true
expiresAt:
type: string
format: date-time
nullable: true
revoked:
type: boolean
scopes:
type: array
items:
type: string
nullable: true
id:
type: string
nullable: true
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
additionalProperties: false
PersonalAccessTokenViewModel:
required:
- name
- scopes
type: object
properties:
name:
maxLength: 256
type: string
description: Name for the access token.
revoked:
type: boolean
description: Set true to revoke the token.
nullable: true
expiresAt:
type: string
description: The date after which the token will expire.
format: date-time
nullable: true
scopes:
maxLength: 50
type: array
items:
type: string
description: List of permissions for the token.
additionalProperties: false
PersonalAccessTokenRevokeViewModel:
required:
- revoked
type: object
properties:
revoked:
type: boolean
description: Set true to revoke the token.
additionalProperties: false
TrialPolicyDto:
type: object
properties:
trialLength:
type: integer
format: int32
fingerprintMatchingStrategy:
enum:
- fuzzy
- exact
- loose
type: string
nullable: true
name:
type: string
nullable: true
allowVmActivation:
type: boolean
userLocked:
type: boolean
disableGeoLocation:
type: boolean
allowedCountries:
type: array
items:
type: string
nullable: true
disallowedCountries:
type: array
items:
type: string
nullable: true
allowedIpAddresses:
type: array
items:
type: string
nullable: true
disallowedIpAddresses:
type: array
items:
type: string
nullable: true
id:
type: string
nullable: true
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
additionalProperties: false
ProductDto:
type: object
properties:
name:
type: string
nullable: true
displayName:
type: string
nullable: true
description:
type: string
nullable: true
publicKey:
type: string
nullable: true
totalLicenses:
type: integer
format: int32
totalTrialActivations:
type: integer
format: int32
totalReleases:
type: integer
format: int32
licensePolicy:
allOf:
- $ref: '#/components/schemas/LicensePolicyDto'
nullable: true
trialPolicy:
allOf:
- $ref: '#/components/schemas/TrialPolicyDto'
nullable: true
metadata:
type: array
items:
$ref: '#/components/schemas/MetadataDto'
nullable: true
id:
type: string
nullable: true
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
additionalProperties: false
ProductMetadataViewModel:
required:
- key
- value
- visible
type: object
properties:
visible:
type: boolean
description: Set true to access the metadata on activation.
key:
maxLength: 256
minLength: 0
type: string
description: Name of the key.
value:
maxLength: 4096
minLength: 0
type: string
description: Value of the key.
additionalProperties: false
ProductViewModel:
required:
- description
- displayName
- licensePolicyId
- name
type: object
properties:
name:
maxLength: 256
type: string
description: Name for the product.
displayName:
maxLength: 256
type: string
description: 'Display name for the product, shown in the customer portal.'
description:
maxLength: 256
type: string
description: Description for the product.
licensePolicyId:
type: string
description: Unique identifier for the license policy.
trialPolicyId:
type: string
description: Unique identifier for the trial policy.
nullable: true
metadata:
type: array
items:
$ref: '#/components/schemas/ProductMetadataViewModel'
description: List of metdata key/value pairs.
nullable: true
additionalProperties: false
ReferralStatsDto:
type: object
properties:
referrals:
type: integer
format: int32
clicks:
type: integer
format: int32
current:
type: integer
format: int32
earned:
type: integer
format: int32
paid:
type: integer
format: int32
additionalProperties: false
ReleaseFileDto:
type: object
properties:
name:
type: string
nullable: true
url:
type: string
nullable: true
size:
type: integer
format: int64
downloads:
type: integer
format: int64
extension:
type: string
nullable: true
checksum:
type: string
nullable: true
secured:
type: boolean
releaseId:
type: string
nullable: true
id:
type: string
nullable: true
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
additionalProperties: false
ReleaseFileViewModel:
required:
- checksum
- name
- releaseId
- secured
- size
- url
type: object
properties:
name:
maxLength: 256
type: string
description: Name of the file.
url:
type: string
description: Download URL of the file.
format: uri
size:
minimum: 0
type: integer
description: Size of the file.
format: int64
checksum:
maxLength: 256
type: string
description: MD5 checksum of the file.
secured:
type: boolean
description: Secured release files require license key for download.
releaseId:
maxLength: 256
type: string
description: Unique identifier for the release.
additionalProperties: false
ReleaseDto:
type: object
properties:
published:
type: boolean
productId:
type: string
nullable: true
tenantId:
type: string
nullable: true
name:
type: string
nullable: true
channel:
type: string
nullable: true
version:
type: string
nullable: true
platform:
type: string
nullable: true
notes:
type: string
nullable: true
totalFiles:
type: integer
format: int32
files:
type: array
items:
$ref: '#/components/schemas/ReleaseFileDto'
nullable: true
id:
type: string
nullable: true
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
additionalProperties: false
ReleaseViewModel:
required:
- channel
- name
- platform
- productId
- version
type: object
properties:
name:
maxLength: 256
type: string
description: Name of the release. This can be a user friendly name to identify the release.
version:
type: string
description: 'The version of the release. Only following three formats are allowed x.x, x.x.x, x.x.x.x.'
channel:
maxLength: 256
type: string
description: Channel of the release. The default value is 'stable'.
platform:
maxLength: 256
type: string
description: 'Platform of the release. It will usually have one of the following values: windows, linux, macos, win32, win64 etc.'
notes:
maxLength: 4098
type: string
description: Release notes for the release. It also supports markdown.
nullable: true
productId:
maxLength: 256
type: string
description: Unique identifier for the product.
additionalProperties: false
RoleDto:
type: object
properties:
name:
type: string
nullable: true
description:
type: string
nullable: true
claims:
type: array
items:
type: string
nullable: true
id:
type: string
nullable: true
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
additionalProperties: false
RoleViewModel:
required:
- claims
- name
type: object
properties:
name:
type: string
description: Name for the role.
description:
type: string
description: Description for the role.
nullable: true
claims:
type: array
items:
type: string
description: List of permission claims for the role.
additionalProperties: false
WebhookDto:
type: object
properties:
name:
type: string
nullable: true
url:
type: string
nullable: true
token:
type: string
nullable: true
active:
type: boolean
events:
type: array
items:
type: string
nullable: true
id:
type: string
nullable: true
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
additionalProperties: false
WebhookViewModel:
required:
- active
- events
- name
- token
- url
type: object
properties:
name:
maxLength: 256
type: string
description: Name for the webhook.
url:
maxLength: 256
type: string
description: The endpoint which will receive the HTTP POST payload.
format: uri
token:
maxLength: 256
type: string
description: The secret which will be used to sign the payload using HMAC256 algorithm.
active:
type: boolean
description: 'Whether webhook is active, you can use it to disable a webhook.'
events:
type: array
items:
type: string
description: The list of events you want to subscribe.
additionalProperties: false
TagDto:
type: object
properties:
name:
type: string
nullable: true
description:
type: string
nullable: true
id:
type: string
nullable: true
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
additionalProperties: false
TagViewModel:
required:
- description
- name
type: object
properties:
name:
maxLength: 256
type: string
description: Name for the tag.
description:
maxLength: 256
type: string
description: Description for the tag.
additionalProperties: false
TrialActivationDto:
type: object
properties:
productId:
type: string
nullable: true
os:
enum:
- windows
- linux
- macos
- android
- ios
type: string
nullable: true
osVersion:
type: string
nullable: true
hostname:
type: string
nullable: true
location:
allOf:
- $ref: '#/components/schemas/GeoLocationDto'
nullable: true
vmName:
type: string
nullable: true
appVersion:
type: string
nullable: true
expiresAt:
type: string
format: date-time
nullable: true
metadata:
type: array
items:
$ref: '#/components/schemas/ActivationMetadataDto'
nullable: true
meterAttributes:
type: array
items:
$ref: '#/components/schemas/ActivationMeterAttributeDto'
nullable: true
id:
type: string
nullable: true
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
additionalProperties: false
TrialActivationMetadataViewModel:
required:
- key
- value
type: object
properties:
key:
maxLength: 256
minLength: 0
type: string
description: Name of the key.
value:
maxLength: 4096
minLength: 0
type: string
description: Value of the key.
additionalProperties: false
TrialActivationViewModel:
required:
- appVersion
- fingerprint
- hostname
- os
- productId
- userHash
type: object
properties:
metadata:
type: array
items:
$ref: '#/components/schemas/TrialActivationMetadataViewModel'
description: List of metdata key/value pairs.
nullable: true
os:
enum:
- windows
- linux
- macos
- android
- ios
type: string
description: Name of the operating system.
osVersion:
type: string
description: Version of the operating system.
nullable: true
fingerprint:
minLength: 64
type: string
description: Fingerprint of the machine.
vmName:
type: string
description: Name of the virtual machine.
nullable: true
hostname:
type: string
description: Name of the host machine.
appVersion:
type: string
description: Version of the application.
userHash:
type: string
description: Hash of the machine user name.
productId:
type: string
description: Unique identifier for the product.
additionalProperties: false
TrialActivationTokenDto:
type: object
properties:
trialActivationToken:
type: string
nullable: true
additionalProperties: false
TrialExtensionViewModel:
required:
- extensionLength
type: object
properties:
extensionLength:
maximum: 2147483647
minimum: 1
type: integer
description: Trial extension duration (in seconds) to extend the trial expiry.
format: int32
additionalProperties: false
OfflineTrialActivationViewModel:
required:
- offlineRequest
- productId
- responseValidity
type: object
properties:
offlineRequest:
type: string
description: Encrypted offline trial activation request.
responseValidity:
maximum: 2147483647
minimum: 1
type: integer
description: The duration (in seconds) for which the offline response should remain valid.
format: int32
productId:
type: string
description: Unique identifier for the product.
additionalProperties: false
TrialPolicyViewModel:
required:
- allowVmActivation
- disableGeoLocation
- fingerprintMatchingStrategy
- name
- trialLength
- userLocked
type: object
properties:
trialLength:
maximum: 2147483647
minimum: 1
type: integer
description: The duration after which the trial will expire.
format: int32
name:
type: string
description: Name for the policy.
fingerprintMatchingStrategy:
enum:
- fuzzy
- exact
- loose
type: string
description: Strategy for matching machine fingerprint.
allowVmActivation:
type: boolean
description: Whether to allow an activation inside a virtual machine.
userLocked:
type: boolean
description: Locks the activation to the machine user.
disableGeoLocation:
type: boolean
description: Whether IP address and geo-location should be stored.
allowedCountries:
maxLength: 256
type: array
items:
type: string
description: List of the allowed countries. Leave empty to ignore.
nullable: true
disallowedCountries:
maxLength: 256
type: array
items:
type: string
description: List of the disallowed countries. Leave empty to ignore.
nullable: true
allowedIpAddresses:
maxLength: 256
type: array
items:
type: string
description: List of the allowed ip addresses. Leave empty to ignore.
nullable: true
disallowedIpAddresses:
maxLength: 256
type: array
items:
type: string
description: List of the disallowed ip addresses. Leave empty to ignore.
nullable: true
additionalProperties: false
UserMetadataViewModel:
required:
- key
- value
- visible
type: object
properties:
visible:
type: boolean
description: Set true to access the metadata on activation.
key:
maxLength: 256
minLength: 0
type: string
description: Name of the key.
value:
maxLength: 4096
minLength: 0
type: string
description: Value of the key.
additionalProperties: false
UserViewModel:
required:
- email
- firstName
- lastName
- password
type: object
properties:
password:
minLength: 8
type: string
description: Password of the user.
role:
maxLength: 256
type: string
description: Role of the user.
nullable: true
firstName:
type: string
description: First name of the user.
lastName:
type: string
description: Last name of the user.
email:
type: string
description: Email address of the user.
format: email
company:
type: string
description: Company of the user.
nullable: true
metadata:
type: array
items:
$ref: '#/components/schemas/UserMetadataViewModel'
description: List of metdata key/value pairs.
nullable: true
tags:
maxLength: 5
type: array
items:
type: string
description: List of tags.
nullable: true
additionalProperties: false
UserUpdateViewModel:
required:
- email
- firstName
- lastName
type: object
properties:
role:
maxLength: 256
type: string
description: Role of the user.
nullable: true
firstName:
type: string
description: First name of the user.
lastName:
type: string
description: Last name of the user.
email:
type: string
description: Email address of the user.
format: email
company:
type: string
description: Company of the user.
nullable: true
metadata:
type: array
items:
$ref: '#/components/schemas/UserMetadataViewModel'
description: List of metdata key/value pairs.
nullable: true
tags:
maxLength: 5
type: array
items:
type: string
description: List of tags.
nullable: true
additionalProperties: false
UserPasswordViewModel:
required:
- newPassword
- oldPassword
type: object
properties:
oldPassword:
minLength: 8
type: string
description: Old password of the user.
newPassword:
minLength: 8
type: string
description: New password of the user.
additionalProperties: false
ResetPasswordTokenDto:
type: object
properties:
resetPasswordToken:
type: string
nullable: true
additionalProperties: false
ResetPasswordViewModel:
required:
- newPassword
- token
type: object
properties:
newPassword:
minLength: 8
type: string
description: New password of the user.
token:
type: string
description: Password reset token.
additionalProperties: false
MeUpdateViewModel:
required:
- email
- firstName
- lastName
type: object
properties:
googleSsoEnabled:
type: boolean
description: Enable or disable Google SSO.
nullable: true
twoFactorEnabled:
type: boolean
description: Enable or disable two factor authentication.
nullable: true
twoFactorCode:
maxLength: 6
minLength: 6
type: string
description: Two factor code generated by Authenticator app.
nullable: true
firstName:
type: string
description: First name of the user.
lastName:
type: string
description: Last name of the user.
email:
type: string
description: Email address of the user.
format: email
company:
type: string
description: Company of the user.
nullable: true
metadata:
type: array
items:
$ref: '#/components/schemas/UserMetadataViewModel'
description: List of metdata key/value pairs.
nullable: true
tags:
maxLength: 5
type: array
items:
type: string
description: List of tags.
nullable: true
additionalProperties: false
UserProductDto:
type: object
properties:
displayName:
type: string
nullable: true
additionalProperties: false
UserLicenseDto:
type: object
properties:
key:
type: string
nullable: true
revoked:
type: boolean
suspended:
type: boolean
type:
enum:
- node-locked
- hosted-floating
- on-premise-floating
type: string
nullable: true
validity:
type: integer
format: int32
totalActivations:
type: integer
format: int32
totalDeactivations:
type: integer
format: int32
allowedActivations:
type: integer
format: int32
allowedDeactivations:
type: integer
format: int32
allowedFloatingClients:
type: integer
format: int32
leaseDuration:
type: integer
format: int32
expiresAt:
type: string
format: date-time
nullable: true
notes:
type: string
nullable: true
product:
allOf:
- $ref: '#/components/schemas/UserProductDto'
nullable: true
id:
type: string
nullable: true
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
additionalProperties: false
UserReleaseDto:
type: object
properties:
product:
allOf:
- $ref: '#/components/schemas/UserProductDto'
nullable: true
name:
type: string
nullable: true
channel:
type: string
nullable: true
version:
type: string
nullable: true
platform:
type: string
nullable: true
notes:
type: string
nullable: true
totalFiles:
type: integer
format: int32
files:
type: array
items:
$ref: '#/components/schemas/ReleaseFileDto'
nullable: true
id:
type: string
nullable: true
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
additionalProperties: false
TwoFactorSecretDto:
type: object
properties:
email:
type: string
nullable: true
url:
type: string
nullable: true
additionalProperties: false
TwoFactorRecoveryCodesDto:
type: object
properties:
recoveryCodes:
type: array
items:
type: string
nullable: true
additionalProperties: false
tags:
- name: Accounts
description: 'Account management helps you manage your account related details. It includes API endpoints for login, updating account details, changing account status, sending password reset emails etc.'
x-displayName: Accounts
- name: ActivationLogs
description: |-
Activation logs provide a complete history of all the license activations and deactivations.
They can be used for auditing the license usage over time.
x-displayName: Activation Logs
- name: Activations
description: |-
A license activation is said to occur when your customer uses a license key to activate the license in your application on his/her machine.
By default all activations are node-locked, it means that the machine fingerprint is stored along with the activation details.
x-displayName: Activations
- name: Analytics
description: |+
You can gain important insights regarding how your customers are using your products and track key metrics like activations over time, activations by country, activations by OS and much more.
x-displayName: Analytics
- name: EventLogs
description: 'Every resource which is created, updated or deleted is logged along with the user who did that operation. This provides you a complete audit log of every activity going on in your account.'
x-displayName: Event Logs
- name: LicensePolicies
description: |-
A license policy helps you create different types of license profiles. It acts as a blueprint for the licenses you create for your customers and helps you implement different types of licensing models.
A single license policy can be shared across different products and each product must have a license policy.
x-displayName: License Policies
- name: Licenses
description: |-
A license is what you use to license your application. Licenses are grouped under products and inherit all the properties of license policy attached to the product.
You can override all the properties of the license inherited from a license policy if needed.
x-displayName: Licenses
- name: PersonalAccessTokens
description: |-
Personal access tokens are the preferred way for third party applications and scripts to authenticate with the Cryptlex Web API.
They function similar to API keys and offer fine grained access control. For example in order to create licenses from a script you can create a personal access token with scope (permission) `license:write`.
You should always scope the token access to minimum required resources, by adding minimum number of permissions.
x-displayName: Personal Access Tokens
- name: Products
description: |-
A product refers to your application which you want to license.
You can create a single product for all your application versions or you can create multiple products for your different application versions. e.g. if you offer two versions of your app PRO and LITE then you can choose to create two products.
x-displayName: Products
- name: ReleaseFiles
description: 'A release file contains the information of the uploaded file including url, checksum, size etc.'
x-displayName: Release Files
- name: Releases
description: 'Release management helps you in protection of your software applications from unlicensed distribution. It allows you to host software applications of any size and type on our servers or your own servers, implement auto updates in your application and much more.'
x-displayName: Releases
- name: Roles
description: |-
Role management helps you manage authorization, which enables you to specify the resources that users in your application are allowed to access. Role management lets you treat groups of users as a unit by assigning users to roles such as manager, sales, developer, and so on.
Role claims refer to permissions which you assign to a role. Every resource has read and write permission which you can add to a role.
x-displayName: Roles
- name: Tags
description: Tags help you to group licenses across or within products. You can search licenses using tags.
x-displayName: Tags
- name: TrialActivations
description: |-
A trial activation is said to occur when your customer activates the trial in your application on his/her machine.
By default all trial activations are node-locked, it means that the machine fingerprint is stored along with the trial activation details.
x-displayName: Trial Activations
- name: TrialPolicies
description: |-
A trial policy is similar to a license policy, with the difference that it is applicable for trials only. You can create a trial policy using license policies too, but this offers you a cheap and convenient way of doing so.
A single trial policy can be shared across different products and each product may have a trial policy. Not attaching a trial policy to a product disables trials automatically.
x-displayName: Trial Policies
- name: Users
description: |-
A user refers to your customer whom you want to license your product.
Cryptlex provides identity management for your customers, which means you can authenticate your customers using email/password, and other features like password reset etc.
x-displayName: Users
- name: Webhooks
description: 'Using webhooks you can subscribe to events, that happen within your Cryptlex account. When one of those events is triggered, we''ll send an HTTP POST payload to the webhook''s configured URL.'
x-displayName: Webhooks
x-tagGroups:
- name: User Management
tags:
- Users
- Roles
- name: Account Management
tags:
- Accounts
- name: Access Tokens
tags:
- PersonalAccessTokens
- name: Policies
tags:
- LicensePolicies
- TrialPolicies
- name: Products
tags:
- Products
- name: Release Management
tags:
- Releases
- ReleaseFiles
- name: License Management
tags:
- Licenses
- Activations
- Tags
- name: Trials
tags:
- TrialActivations
- name: Analytics
tags:
- Analytics
- name: Webhooks
tags:
- Webhooks
- name: Logs
tags:
- EventLogs
- ActivationLogs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment