Your suggested change has been received. Thank you.

close

Data Protection on Demand Platform API (2025.03.21)

Download OpenAPI specification:Download

The DPoD API allows users to access and manage platform tenant resources and marketplace service resources.

Tenant

Return a list of Tenants

Returns a list of registered Tenants.

Authorizations:
OAuth2
query Parameters
page
integer >= 0

Page number to retrieve. Example: 2.

size
integer >= 1

Number of results per page. Example: 5.

parentId
string <uuid>

TenantID for whom the list of tenants is requested. Only authorized accounts can leverage this parameter.

Responses

Response samples

Content type
application/json
{
  • "number": 0,
  • "size": 0,
  • "totalElements": 0,
  • "totalPages": 0,
  • "content": [
    ]
}

Create a Tenant

Create a new Tenant and register the Primary Tenant Administrator.

Authorizations:
OAuth2
Request Body schema: application/json

Details of the Tenant to create. The Tenant Administrator must be verified using the link provided in the confirmation email.

name
required
string [ 1 .. 64 ] characters

Name of the Tenant. Must not contain commas.

companyName
required
string [ 3 .. 255 ] characters

Legal company name.

departmentName
string <= 32 characters

An optional department of a company.

required
object

At this point, only the country is mandatory, and in certain cases the state. In the near future, all the fields but the state will become mandatory.

accountType
required
string [ 10 .. 16 ] characters
Default: "subscriber"

Type of account. Valid values are "service provider" and "subscriber".

serviceQuota
integer [ 0 .. 2147483647 ]

The number of Luna Cloud HSM Services available for creation in the Subscriber Tenant. At this time, the integer maximum value 2147483647 is used to represent an unlimited value. Default are 2 for a Tenant, and 5 for a Service Provider.

hostname
required
string [ 2 .. 24 ] characters

Hostname to be used in the URL of the microservices to be deployed in the Tenant. The name must be unique in the Service Provider domain.

adminGivenName
required
string [ 1 .. 255 ] characters

First name of the Tenant Admin.

adminFamilyName
required
string [ 1 .. 255 ] characters

Last name of the Tenant Admin.

adminPhoneNumber
required
string [ 10 .. 32 ] characters

Phone number of the Tenant Admin.

adminEmail
required
string <email> [ 6 .. 255 ] characters

Email address of the Tenant Admin.

adminPassword
string <password> [ 10 .. 255 ] characters

Initial password for the Tenant Admin.

Responses

Request samples

Content type
application/json
{
  • "name": "Bombardier Aéronautique Inc.",
  • "companyName": "Bombardier Aéronautique Inc.",
  • "departmentName": "Hardware division",
  • "billingAddress": {
    },
  • "accountType": "subscriber",
  • "serviceQuota": 2,
  • "hostname": "bombardier-dpod-1",
  • "adminGivenName": "Paul-Émile",
  • "adminFamilyName": "D'Arcy",
  • "adminPhoneNumber": "+1 5148720311 x8901",
  • "adminEmail": "paul-emile.darcy@bombardier.com",
  • "adminPassword": "rosebud123"
}

Response samples

Content type
application/json
{
  • "id": "10b479be-fb60-45a4-8806-d2dca0476239",
  • "createdAt": "2022-01-30T15:28:07.000Z",
  • "updatedAt": "2022-01-31T15:28:07.000Z",
  • "name": "Bombardier Aéronautique Inc.",
  • "companyName": "Bombardier Aéronautique Inc.",
  • "departmentName": "Hardware division",
  • "billingAddress": {
    },
  • "accountType": "subscriber",
  • "accountStatus": "active",
  • "serviceQuota": 2,
  • "hostname": "a1234567890",
  • "spaceStatus": "active",
  • "parent": "10b479be-fb60-45a4-8806-d2dca0476239"
}

Update Tenant settings

Update the Tenant settings. Enable or disable Tenant onboarding.

Authorizations:
OAuth2
Request Body schema: application/json

Settings to be updated.

automaticTenantOnboarding
boolean

Can either be true or false. "true" to enable automatic Tenant onboarding, "false" to disable.

Responses

Request samples

Content type
application/json
{
  • "automaticTenantOnboarding": true
}

Response samples

Content type
application/json
{
  • "automaticTenantOnboarding": true
}

Return the Tenant settings

Returns the Tenant settings if Tenant onboarding is enabled or disabled.

Authorizations:
OAuth2

Responses

Response samples

Content type
application/json
{
  • "automaticTenantOnboarding": true
}

Return details for a Tenant

Returns details for the specified Tenant.

Authorizations:
OAuth2
path Parameters
id
required
string <uuid>

The resource ID.

Responses

Response samples

Content type
application/json
{
  • "id": "a8e98c32-3ed3-46ce-8cf1-e31cc61cb18d",
  • "name": "fred",
  • "accountType": "subscriber",
  • "accountStatus": "active",
  • "spaceStatus": "active"
}

Delete a Tenant

Delete the Tenant.

Authorizations:
OAuth2
path Parameters
id
required
string <uuid>

The resource ID.

Responses

Update a Tenant

Update an existing Tenant.

Authorizations:
OAuth2
path Parameters
id
required
string <uuid>

The resource ID.

Request Body schema: application/json

New Tenant details.

name
string [ 1 .. 64 ] characters

Name of the Tenant. Must not contain commas.

departmentName
string <= 32 characters

An optional department of a company.

object

At this point, only the country is mandatory, and in certain cases the state. In the near future, all the fields but the state will become mandatory.

serviceQuota
integer [ 0 .. 2147483647 ]

The number of Luna Cloud HSM Services available for creation in the Subscriber Tenant. At this time, the integer maximum value 2147483647 is used to represent an unlimited value.

parent
string <UUIDv4>

ID of the new parent of the Tenant. Not modifiable by a Service Provider.

Responses

Request samples

Content type
application/json
{
  • "name": "Bombardier Aéronautique Inc.",
  • "departmentName": "Hardware division",
  • "billingAddress": {
    },
  • "serviceQuota": 2,
  • "parent": "058d6c47-0a08-4bf6-84a1-f1194fba240a"
}

Response samples

Content type
application/json
{
  • "id": "10b479be-fb60-45a4-8806-d2dca0476239",
  • "createdAt": "2022-01-30T15:28:07.000Z",
  • "updatedAt": "2022-01-31T15:28:07.000Z",
  • "name": "Bombardier Aéronautique Inc.",
  • "companyName": "Bombardier Aéronautique Inc.",
  • "departmentName": "Hardware division",
  • "billingAddress": {
    },
  • "accountType": "subscriber",
  • "accountStatus": "active",
  • "serviceQuota": 2,
  • "hostname": "a1234567890",
  • "spaceStatus": "active",
  • "parent": "10b479be-fb60-45a4-8806-d2dca0476239"
}

Return details for a Tenant's Primary Administrator

Returns details for the identified Tenant's Primary Administrator.

Authorizations:
OAuth2
path Parameters
id
required
string <uuid>

The resource ID.

Responses

Response samples

Content type
application/json
{
  • "givenName": "string",
  • "familyName": "string",
  • "phoneNumber": "string",
  • "email": "string"
}

Return the Tenant logo

Returns the logo image linked to the targeted Tenant. If none exists or the current Tenant is not a Service Provider, the Parent Tenant's logo is returned. If no Parent Tenant log exists, a default logo is returned.

header Parameters
X-Forwarded-Host
required
string

The original request host.

Responses

Return a Tenant logo

Returns the logo image linked to the identified Tenant. If none exists or the current Tenant is not a Service Provider, the Parent Tenant's logo is returned. If no Parent Tenant log exists, a default logo is returned.

Authorizations:
OAuth2
path Parameters
id
required
string <uuid>

The resource ID.

Responses

Response samples

Content type
No sample

Set a Tenant logo

Set the Service Provider Tenant's logo image.

Authorizations:
OAuth2
path Parameters
id
required
string <uuid>

The resource ID.

Request Body schema: image/png

The PNG logo image. The image must be 512 KB maximum and must be exactly 240x96 pixels in size.

string <binary>

Responses

Response samples

Content type
application/json
{
  • "timestamp": "string",
  • "status": 0,
  • "error": "string",
  • "exception": "string",
  • "message": "string",
  • "path": "string"
}

Return a list of a Parent Tenant's Child Tenant IDs

Returns a list of the Child Tenant UUIDS under the identified Parent Tenant.

Authorizations:
OAuth2
path Parameters
id
required
string <uuid>

The resource ID.

Responses

Response samples

Content type
application/json
[
  • "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]

Return a Tenant hostname

Returns hostname of the identified Tenant.

Authorizations:
OAuth2
path Parameters
id
required
string <uuid>

The resource ID.

Responses

Response samples

Content type
application/json
"a1234567890"

Return the service quota information for a Tenant

Returns the service quota information of the identified Tenant.

Authorizations:
OAuth2
path Parameters
id
required
string <uuid>

The resource ID.

Responses

Response samples

Content type
application/json
{
  • "content": [
    ]
}

Return a tree representation of the Tenant hierarchy

Returns a tree representation of the Parent Tenant's Child Tenants. Only includes Tenants that have a valid account status (active or disabled). The user's Tenant is the root node, Service Provider Child Tenants are represented as branch nodes, and Subscriber Child Tenants are represented as leaf nodes.

Authorizations:
OAuth2

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "value": {
    },
  • "children": [
    ],
  • "parent": "42e2bc1b-6741-4e2e-b138-97b4a342c999"
}

Return the Service summary

Returns a list of all the active Services. The list is composed of all the active Services belonging to the Child Tenants.

Authorizations:
OAuth2
query Parameters
serviceType
string

The Service Type required for filtering. Example: "Luna Cloud HSM_FIPS".

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Return the Service summary file

Returns a summary file of all the active Services belonging to the Child Tenants.

Authorizations:
OAuth2
query Parameters
serviceType
string

The Service Type required for filtering. Example: "Luna Cloud HSM_FIPS".

Responses

Response samples

Content type
application/json
"string"

Account Status

Return the account statuses of the Child Tenants

Returns the account statuses of the Child Tenants. If the spIDs parameter is not provided, or empty, the account statuses of the Child Tenants of the currently authenticated Operator or Service Provider user are returned.

Authorizations:
OAuth2
query Parameters
spIds
Array of strings <uuid>

The Parent Tenant unique identifier. Example: 7d8e137d-a773-445b-a936-7a2b11c683b5

Responses

Response samples

Content type
application/json
{
  • "TenantAccountStatuses": [
    ]
}

Return a tenant account status

Returns the tenant account status, including the evaluation term start/end dates and Service Elections related dates.

Authorizations:
OAuth2
path Parameters
id
required
string <uuid>

The tenant unique identifier. Example: 7d8e137d-a773-445b-a936-7a2b11c683b5

Responses

Response samples

Content type
application/json
{
  • "tenantId": "457A2BD8-B8C8-4656-93BD-42416464FE98",
  • "evaluationStartDate": "2018-01-01T00:00:00.000Z",
  • "evaluationEndDate": "2018-01-30T00:00:00.000Z",
  • "agreementRequestDate": null,
  • "agreementStartDate": null,
  • "agreementEndDate": null,
  • "evaluationStatus": "Evaluating",
  • "agreementApprovalStatus": "NotRequested",
  • "cached": false
}

Products

Return a product

Return a product entity.

Authorizations:
OAuth2
path Parameters
serviceType
required
string

The serviceType short code. Example: ctaas

Responses

Response samples

Content type
application/json
{
  • "plans": {
    }
}

Service Agreement

Return the service agreement details for a tenant

Returns the service agreement details for a tenant.

  • If the service agreement has an acceptedDate, the tenant is a Subscriber.
  • If the service agreement has no acceptedDate and the current date is after the endOfEvaluationDate, the tenant is Expired. Otherwise, the tenant is an Evaluation Tenant.
Authorizations:
OAuth2
path Parameters
tenantId
required
string <uuid>

The tenant unique identifier. Example: 7d8e137d-a773-445b-a936-7a2b11c683b5

Responses

Response samples

Content type
application/json
{
  • "terms": {
    },
  • "submission": {
    },
  • "acceptance": {
    },
  • "cached": false
}

Approve a tenant service agreement

Service Providers can approve a submitted tenant service agreement.

Authorizations:
OAuth2
path Parameters
tenantId
required
string <uuid>

The tenant unique identifier. Example: 7d8e137d-a773-445b-a936-7a2b11c683b5

Responses

Response samples

Content type
application/json
{
  • "timestamp": "string",
  • "status": 0,
  • "error": "string",
  • "exception": "string",
  • "message": "string",
  • "path": "string"
}

Reject a tenant service agreement

Service Providers can reject a submitted tenant service agreement.

Authorizations:
OAuth2
path Parameters
tenantId
required
string <uuid>

The tenant unique identifier. Example: 7d8e137d-a773-445b-a936-7a2b11c683b5

Responses

Response samples

Content type
application/json
{
  • "timestamp": "string",
  • "status": 0,
  • "error": "string",
  • "exception": "string",
  • "message": "string",
  • "path": "string"
}

Terms of Service

Return the Terms of Service for the tenant

Returns the Terms of Service for the tenant in PDF.

Authorizations:
OAuth2
path Parameters
tenantId
required
string <uuid>

The tenant unique identifier. Example: 7d8e137d-a773-445b-a936-7a2b11c683b5

Responses

Response samples

Content type
No sample

Subscription

Return the tenant subscriptions

Returns the service subscriptions for the tenant based on the trial state, Initial Service Elections, Additional Service Elections, or monthly subscription.

Authorizations:
OAuth2
query Parameters
tenantId
string <uuid>

The tenant unique identifier that the event applies to.

  • For the Tenant Administrator or Application Owner, their tenant ID is used if the value is missing, other values are invalid.
  • For the other roles, the parameter is mandatory. For a Service Provider, this must be a direct Tenant. Example: 7d8e137d-a773-445b-a936-7a2b11c683b5
serviceType
string <= 255 characters

Optional filter on the subscriptions Service Type. Example "key_vault".

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    },
  • {
    }
]

Pricing

Returns the price details of all Service Types bas

Returns the price details of all Service Types based on submitted country.

query Parameters
countryCode
required
string <string> = 2 characters

Country Code of the tenant in ISO_3166_2 format, e.g. 'FR'

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Credentials

Create client credentials

Create client credentials.

Authorizations:
OAuth2
Request Body schema: application/json

Details of the client you are creating.

name
required
string [ 1 .. 64 ] characters

The client name.

role
required
string
Enum: "appowner" "service" "spadmin"

The DPoD tenant role the client will be bound to.

serviceIds
Array of strings <uuid>

The Service ID(s) which the client is allowed to access (only applicable to Service-scoped clients).

subscriberGroups
Array of strings <uuid>

The Subscriber Groups to which the client would belong or an empty list to add client to all the Subscriber Groups the user has access to.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "role": "appowner",
  • "serviceIds": [
    ],
  • "subscriberGroups": [
    ]
}

Response samples

Content type
application/json
{
  • "application/json": {
    }
}

Return a list of client credentials

Returns a list of client credentials based on the provided filters.

Authorizations:
OAuth2
query Parameters
serviceIds
Array of strings <uuid>

The Service ID(s) which the client is allowed to access (only applicable to Service-scoped clients).

role
string
Enum: "appowner" "service" "spadmin"

The type of client credentials.

page
integer

Page number to retrieve, starting at 0.

size
integer

Number of results per page, defaulting to 20.

Responses

Response samples

Content type
application/json
{
  • "number": 0,
  • "size": 0,
  • "totalElements": 0,
  • "totalPages": 0,
  • "content": [
    ]
}

Return the details of the client credentials associated with a client ID

Returns the details client credentials associated with the provided client ID.

Authorizations:
OAuth2
path Parameters
id
required
string <uuid>

The resource ID.

Responses

Response samples

Content type
application/json
{
  • "application/json": {
    }
}

Update client credentials

Update the existing client credentials associated with the provided client ID.

Authorizations:
OAuth2
path Parameters
id
required
string <uuid>

The resource ID.

Request Body schema: application/json

Details of the client credentials you are updating.

name
string [ 1 .. 64 ] characters

The client name.

Responses

Request samples

Content type
application/json
{
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "application/json": {
    }
}

Delete client credentials

Delete the client credentials associated with the provided client ID.

Authorizations:
OAuth2
path Parameters
id
required
string <uuid>

The resource ID.

Responses

Reset a client credential's secret

Reset the client credential's secret associated with the provided client ID.

Authorizations:
OAuth2
path Parameters
id
required
string <uuid>

The resource ID.

Responses

Response samples

Content type
application/json
{
  • "clientSecret": "string"
}

Subscriber Groups

Return the list of Subscriber Groups

Returns a list of the Subscriber Groups in the tenant.

Authorizations:
OAuth2
query Parameters
page
integer

Page number to retrieve, starting at 0.

size
integer

Number of results per page, defaulting to 20.

Responses

Response samples

Content type
application/json
{
  • "number": 0,
  • "size": 0,
  • "totalElements": 0,
  • "totalPages": 0,
  • "content": [
    ]
}

Create a Subscriber Group

Create a Subscriber Group in the tenant. Subscriber Groups are used to organize Tenant Administrators/Application Owners and services into logical separations.

Authorizations:
OAuth2
Request Body schema: application/json

Details of the Subscriber Group you are creating.

name
required
string [ 1 .. 64 ] characters

Name of the Subscriber Group.

description
string <= 512 characters

Description of the Subscriber Group.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "application/json": {
    }
}

Return Subscriber Group details

Returns the details of a Subscriber Group.

Authorizations:
OAuth2
path Parameters
id
required
string <uuid>

The resource ID.

Responses

Response samples

Content type
application/json
{
  • "application/json": {
    }
}

Delete a Subscriber Group

Delete a Subscriber Group.

Authorizations:
OAuth2
path Parameters
id
required
string <uuid>

The resource ID.

Responses

Update a Subscriber Group

Update a Subscriber Group.

Authorizations:
OAuth2
path Parameters
id
required
string <uuid>

The resource ID.

Request Body schema: application/json

Details of the Subscriber Group you are updating.

name
string [ 1 .. 64 ] characters

Name of the Subscriber Group.

description
string <= 512 characters

Description of the Subscriber Group.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "application/json": {
    }
}

Users

Return a list of Tenant users

Returns a list of the users in the Tenant or Service Provider. Provide a Tenant ID to return a list of the users of specific Tenant. If no Tenant ID is provided, the default is the caller's Tenant ID. Only authorized roles can specify a Tenant ID which is not their own.

Authorizations:
OAuth2
query Parameters
tenantId
string <uuid>

The target tenant ID.

page
integer

Page number to retrieve, starting at 0.

size
integer

Number of results per page, defaulting to 20.

Responses

Response samples

Content type
application/json
{
  • "number": 0,
  • "size": 0,
  • "totalElements": 0,
  • "totalPages": 0,
  • "content": [
    ]
}

Create a User

Create a user in the tenant. The user must verify their account using the link in the registration email.

Authorizations:
OAuth2
Request Body schema: application/json

Details of the user you are creating.

givenName
required
string [ 1 .. 255 ] characters

First name of the tenant user.

familyName
required
string [ 1 .. 255 ] characters

Last name of the tenant user.

phoneNumber
Array of strings <= 1 items [ items [ 9 .. 32 ] characters ]

List of phone numbers corresponding to the tenant user.

username
required
string <email> [ 6 .. 255 ] characters

Tenant user's username as an email.

password
string [ 10 .. 255 ] characters

Tenant user's password.

accountRole
required
string
Enum: "spadmin" "admin" "user"

Type of user account.

subscriberGroups
Array of strings <uuid> <= 1 items

The Subscriber Groups the tenant user is a member of.

tenantId
string <uuid>

The tenant ID of the user. Default to caller's tenant if not provided.

rootAdmin
boolean
Default: false

Identifies whether the user is a root administrator of the Tenant. Only one root administrator exists per Tenant or Service Provider Tenant.

required
object

Indicates the metadata to be used for all emails sent to the end user.

Responses

Request samples

Content type
application/json
{
  • "givenName": "Jean-René",
  • "familyName": "D'Arcy",
  • "phoneNumber": "+1 5148720311 x8902",
  • "username": "jean-rene.darcy@bombardier.com",
  • "password": "rosebud123",
  • "accountRole": "spadmin",
  • "subscriberGroups": [
    ],
  • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
  • "rootAdmin": false,
  • "emailHints": {
    }
}

Response samples

Content type
application/json
{
  • "application/json": {
    }
}

Return the details of the current user

Returns the details of the user authenticated by the JWT sent with this request.

Authorizations:
OAuth2

Responses

Response samples

Content type
application/json
{
  • "application/json": {
    }
}

Return a user's details

Get the details of a user.

Authorizations:
OAuth2
path Parameters
id
required
string <uuid>

The resource ID.

Responses

Response samples

Content type
application/json
{
  • "application/json": {
    }
}

Delete a user

Delete a user.

Authorizations:
OAuth2
path Parameters
id
required
string <uuid>

The resource ID.

Responses

Update a user's details

Update a user's details.

Authorizations:
OAuth2
path Parameters
id
required
string <uuid>

The resource ID.

Request Body schema: application/json

User details you are updating.

givenName
string [ 1 .. 255 ] characters

First name of the tenant user.

familyName
string [ 1 .. 255 ] characters

Last name of the tenant user.

phoneNumber
Array of strings <= 1 items [ items [ 1 .. 32 ] characters ]

List of phone numbers corresponding to the tenant user.

Responses

Request samples

Content type
application/json
{
  • "givenName": "string",
  • "familyName": "string",
  • "phoneNumber": [
    ]
}

Response samples

Content type
application/json
{
  • "application/json": {
    }
}

Update a user's password

Update a user's password, you must provide the old password and a new password.

Authorizations:
OAuth2
Request Body schema: application/json

Change user password details.

oldPassword
required
string [ 10 .. 255 ] characters

Old user password.

newPassword
required
string [ 10 .. 255 ] characters

New user password.

Responses

Request samples

Content type
application/json
{
  • "oldPassword": "stringstri",
  • "newPassword": "stringstri"
}

Response samples

Content type
application/json
{
  • "application/json": {
    }
}

Create and submit a Forgot Password request and request a Password Reset email

Creates a Forgot Password request for the provided email address. On success, the backend system will distribute a Password Reset email to the user allowing them to reset their password.

Authorizations:
OAuth2
Request Body schema: application/json

Forgot password request details.

email
required
string <email> non-empty

The user contact email.

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com"
}

Response samples

Content type
application/json
{
  • "timestamp": "string",
  • "status": 0,
  • "error": "string",
  • "exception": "string",
  • "message": "string",
  • "path": "string",
  • "traceid": "string"
}

Reset a user's multifactor token

Update a user's multifactor token, disabling the current token and enabling them to register with a new token.

Authorizations:
OAuth2
path Parameters
id
required
string <uuid>

The resource ID.

query Parameters
tenantId
string <uuid>

The target tenant ID.

Responses

Response samples

Content type
application/json
{
  • "timestamp": "string",
  • "status": 0,
  • "error": "string",
  • "exception": "string",
  • "message": "string",
  • "path": "string",
  • "traceid": "string"
}

Tiles

Return a list of available tiles

Returns a list of the tiles available to the current user, or to the tenant specified in the query parameter.

Authorizations:
OAuth2
query Parameters
page
integer >= 0

Page number to retrieve. Example: 5. If the size is specified and the page number is not, the page number is set to 0.

size
integer >= 1

Number of results per page. Example: 6. If the page number is specified and the page size is not, the page size is set to 20, the default value.

tenantId
string <uuid>

ID of the tenant to query for tile availability. Service Provider Administrators can use this parameter to query the tiles of their Child Tenants. Other users should not use this parameter; if they do, they must set it to their own tenant's ID. The operator and the maestro service account can use it for any tenant. Example: 7d8e137d-a773-445b-a936-7a2b11c683b5

provisionable
boolean
Default: false

When set to true, the API returns a list of the provisionable tiles only (tiles without a redirection URL to 3rd party partner sites). The value is set to false by default resulting in the API returning all the tiles available to the specified tenant ID.

Responses

Response samples

Content type
application/json
{
  • "number": 0,
  • "size": 0,
  • "totalElements": 0,
  • "totalPages": 0,
  • "content": [
    ]
}

Return detailed information about a tile

Returns detailed information about a specific tile. The tile must be assigned to the tenant that the caller belongs to.

Authorizations:
OAuth2
path Parameters
id
required
string <uuid>

The ID of the tile to retrieve. Example: 1885fab2-0333-4b05-8c2f-a7459562d4b5

query Parameters
provisionable
boolean
Default: false

When set to true, the API returns a list of the provisionable tiles only (tiles without a redirection URL to 3rd party partner sites). The value is set to false by default resulting in the API returning all the tiles available to the specified tenant ID.

Responses

Response samples

Content type
application/json
{
  • "id": "17d1a5fa-17de-4fbe-9e46-775aa9e67c5e",
  • "name": "Luna Cloud HSM",
  • "description": "Set up and access a Cloud HSM service for your organization's cryptographic operations.",
  • "shortCode": "key_vault",
  • "enabled": false,
  • "locked": false,
  • "categoryName": "Luna Cloud HSM Services",
  • "imageUrl": "/assets/service_types/key_vault.svg"
}

Update the content of a tile

Update a tile to enable or disable it. Supports the JSON Patch format (RFC6902), but currently limited only to setting the "enabled" field. Tenant Administrators can set or unset the "enabled" field, Service Provider Administrators can only set it. Any attempt to change fields other than "enabled" will result in an error. Enabling the tile at Service Provider level will enable the corresponding tile for all the subtenants.

Authorizations:
OAuth2
path Parameters
id
required
string <uuid>

The ID of the tile to retrieve. Example: 1885fab2-0333-4b05-8c2f-a7459562d4b5

Request Body schema: application/json-patch+json

An RFC6902-formatted JSON patch request. Example: { "op": "replace", "path": "/enabled", "value": true }.

Array
op
required
string
Enum: "add" "remove" "replace" "move" "copy" "test"

The operation to be performed

path
required
string

A JSON-Pointer

value
object

The value to be used within the operations.

from
string

A string containing a JSON Pointer value.

Responses

Request samples

Content type
application/json-patch+json
[
  • {
    },
  • {
    },
  • {
    }
]

Response samples

Content type
application/json
{
  • "id": "17d1a5fa-17de-4fbe-9e46-775aa9e67c5e",
  • "name": "Luna Cloud HSM",
  • "description": "Set up and access a Cloud HSM service for your organization's cryptographic operations.",
  • "shortCode": "key_vault",
  • "enabled": false,
  • "locked": false,
  • "categoryName": "Luna Cloud HSM Services",
  • "imageUrl": "/assets/service_types/key_vault.svg"
}

Return the plans for a tile

Returns the plans for the specified tile.

Authorizations:
OAuth2
path Parameters
id
required
string <uuid>

The ID of the tile whose plans should be retrieved. Example: 1885fab2-0333-4b05-8c2f-a7459562d4b5

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Service Categories

Return a list of Service Type categories

Returns a list of the available categories for the Service Types.

query Parameters
page
integer >= 0

Page number to retrieve. Example: 5. If the size is specified and the page number is not, the page number is set to 0.

size
integer >= 1

Number of results per page. Example: 6. If the page number is specified and the page size is not, the page size is set to 20, the default value.

Responses

Response samples

Content type
application/json
{
  • "categories": [
    ]
}

Return the details about a service category

Returns detailed information about a service category.

path Parameters
id
required
string <uuid>

The ID of the category to retrieve.

Responses

Response samples

Content type
application/json
{
  • "id": "00001111-2222-3333-4444-555566667777",
  • "name": " Luna Cloud HSM Services",
  • "orderNum": 20
}

Service Types

Return a list of available Service Types

Returns a list of the Service Types currently registered with the system.

query Parameters
marketplace
string

Filter on the marketplace name. Example: DPoD or google

shortCode
string
Default: ""

Filter on the short code, this should return only one Service Type. Example: key_vault

provisionable
boolean
Default: false

When set to true, the API returns a list of the provisionable tiles only (tiles without a redirection URL to 3rd party partner sites). The value is set to false by default resulting in the API returning all the tiles available to the specified tenant ID.

Responses

Response samples

Content type
application/json
{
  • "number": 0,
  • "size": 0,
  • "totalElements": 0,
  • "totalPages": 0,
  • "content": [
    ]
}

Return the details about a Service Type

Returns detailed information about a specific Service Type.

path Parameters
id
required
string <uuid>

The ID of the resource to operate on.

Responses

Response samples

Content type
application/json
{
  • "name": "Luna Cloud HSM",
  • "description": " Set up and access a Cloud HSM service for your organization's cryptographic operations.",
  • "categoryId": "00001111-2222-3333-4444-555566667777",
  • "shortCode": "key_vault",
  • "imageUrl": "/assets/service_types/key_vault.svg",
  • "marketplaces": [
    ],
  • "featured": false
}

Service Instances

Provision a Service Instance

Provision a DPoD platform Service Instance. Partner services are not provisionable over the DPoD platform API.

Authorizations:
OAuth2
Request Body schema: application/json

Contains the name of the Service Instance to create, and other parameters.

name
required
string [ 4 .. 45 ] characters

Name of the Service Instance.

deviceType
string
Enum: "cryptovisor" "cryptovisor_fips"

Type of device to use only when creating the Service Instance. deviceType applies only to "Luna Cloud HSM" Service Instances. Options include cryptovisor and cryptovisor_fips. (Deprecated): Please specify deviceType in createParams

servicePlan
string <= 255 characters

Name of a recognized service plan. This field will be mandatory in future versions.

tileId
string <uuid>

If provided, a Service Instance of the type specified by the given tile will be created. Takes precedence over serviceType, if that field is provided.

serviceType
string <= 255 characters

Type of Service Instance to create. Ignored if tileId is provided; required if tileId is not provided. Example values:

  • key_vault
  • pki_private_key_protection
  • digital_signing
  • oracle_tde_database
  • salesforce_key_broker
  • hyperledger
required
object
Default: {}

Pass through parameters for Service Instance creations. createParams may be listed by calling GET /v1/tiles/{tileId}/plans.

Responses

Request samples

Content type
application/json
{
  • "name": "My Luna Cloud HSM Service",
  • "servicePlan": "single_hsm",
  • "serviceType": "key_vault",
  • "createParams": {
    }
}

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Return active Service Instances

Returns information about the active Service Instances in your Tenant. The Service Instances are ordered by creation date (most recent first).

Authorizations:
OAuth2
query Parameters
page
integer >= 0

Page number to retrieve starting at 0. In absence of both page and size, all the elements are retrieved. If size is specified but page is not, page will default to 0. Example: 5

size
integer >= 1

Number of results per page. It must be 1 at least. In absence of both page and size, all the elements are retrieved. If page is specified but size is not, size will default to 20. Example: 6

tenantId
string <uuid>

Tenant ID of the customer. The value is ignored for Tenant users. Example: 1d2ca858-e696-4a3c-8f37-bba8be1dd8e4

Responses

Response samples

Content type
application/json
{
  • "services": [
    ]
}

Deprovision an active Service Instance

Delete the identified Service Instance. Any existing credentials will be invalidated.

Authorizations:
OAuth2
path Parameters
id
required
string <uuid>

The resource ID.

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Return Service Instance details

Return details of the identified Service Instance.

Authorizations:
OAuth2
path Parameters
id
required
string <uuid>

The Service Instance ID. Example: 51d0ab42-cd94-4247-b53c-3b9a70dafe88

Responses

Response samples

Content type
application/json
{
  • "id": "00001111-2222-3333-4444-555566667777",
  • "name": "Service A"
}

Return all active Service Client bindings

Returns the list of provisioned and bound Service Clients.

Authorizations:
OAuth2
path Parameters
id
required
string <uuid>

The Service Instance ID. Example: 51d0ab42-cd94-4247-b53c-3b9a70dafe88

query Parameters
page
integer >= 0

Page number to retrieve starting at 0. In absence of both page and size, all the elements are retrieved. If size is specified but page is not, page will default to 0. Example: 5

size
integer >= 1

Number of results per page. It must be 1 at least. In absence of both page and size, all the elements are retrieved. If page is specified but size is not, size will default to 20. Example: 6

Responses

Response samples

Content type
application/json
{
  • "number": 1,
  • "size": 50,
  • "totalElements": 50,
  • "totalPages": 5,
  • "content": [
    ]
}

Create a Service Client and bind it to a Service Instance

Create a new Service Client bound to the identified Service.

Authorizations:
OAuth2
path Parameters
id
required
string <uuid>

The Service Instance ID. Example: 51d0ab42-cd94-4247-b53c-3b9a70dafe88

Request Body schema: application/json

Parameters for creating a new Service Client.

name
required
string [ 1 .. 64 ] characters

Client name must be unique for the targeted Service.

required
object
Default: {}

Pass through parameters for Service creation.

Responses

Request samples

Content type
application/json
{
  • "name": "My App Binding",
  • "bindingParams": {
    }
}

Response samples

Content type
application/json
{
  • "credentials": {},
  • "parameters": {
    }
}

Return Service Client binding details

Returns the identified Service Client binding details.

Authorizations:
OAuth2
path Parameters
id
required
string <uuid>

The Service Instance ID. Example: 51d0ab42-cd94-4247-b53c-3b9a70dafe88

clientId
required
string <uuid>

The Service Instance client ID. Example: 37cf2a58-9196-4db7-bf7f-e58e0783ed5b

Responses

Response samples

Content type
application/json
{
  • "id": "37cf2a58-9196-4db7-bf7f-e58e0783ed5b",
  • "createdAt": "2023-08-22T10:15:30Z",
  • "updatedAt": "2023-08-22T10:15:30Z",
  • "name": "My Client Binding",
  • "created_by": "a6822582-f60b-4bc3-961b-727c818d0aff",
  • "created_by_username": "john@company.com"
}

Delete a Service Client from a Service

Delete the identified Client.

Authorizations:
OAuth2
path Parameters
id
required
string <uuid>

The Service Instance ID. Example: 51d0ab42-cd94-4247-b53c-3b9a70dafe88

clientId
required
string <uuid>

The Service Instance client ID. Example: 37cf2a58-9196-4db7-bf7f-e58e0783ed5b

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Services

Bind a Client to a Service

Bind a new Luna Cloud HSM Client to the targeted Service Instance ID and download the Client.

Authorizations:
OAuth2
path Parameters
id
required
string <uuid>

The Service Instance ID. Example: 51d0ab42-cd94-4247-b53c-3b9a70dafe88

Request Body schema: application/json

Parameters for creating a new Client.

name
required
string [ 1 .. 64 ] characters

Client name must be unique for the targeted Service.

os
string
Default: "linux"
Enum: "linux" "windows"

Type of OS for which the Client should be created.

Responses

Request samples

Content type
application/json
{
  • "name": "My Secure Client",
  • "os": "windows"
}

Response samples

Content type
No sample

Reports

Return a summary report of the currently active Services

Returns a summary report of all the currently active Services. The list is a composition of all the active Services belonging to the Tenant users (or Child Tenant users) with one line per Service Type (plus FIPS / non FIPS).

Authorizations:
OAuth2

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Return a usage report for billing

Returns the usage reports for billing. The usage reports have one line per Service Instance.

Authorizations:
OAuth2
query Parameters
startDate
required
string <string> = 24 characters

Start year, month, and day of the report (UTC). The day does not need to be the first day of the month. The time should be 12.00AM. Example: 2018-02-19T00:00:00.000Z

endDate
required
string <string> = 24 characters

End year, month, and day of the report (UTC). The date must be the last day of the month. The date must belong to the same month as the start date. The time should be 11.59 PM. Example: 2018-01-31T23:59:59.999Z

tenantId
string <uuid>

Tenant ID of the customer. If supplied, only the identified Tenant and its Child Tenant's data will be returned, otherwise all Tenant's data will be returned. Example: 1d2ca858-e696-4a3c-8f37-bba8be1dd8e4

shortCode
string [ 1 .. 255 ] characters

A short text code that is a simple and unique Service Type identifier. If supplied, only Service Types of the short code will be returned, otherwise all Service Types are returned. Example: key_vault

Responses

Response samples

Content type
application/json
"string"

Audit Logs

Create an asynchronous job to export audit logs

Create an asynchronous job to export audit logs to a compressed file using the specified filters. The state and result of the operation may be retrieved through the GET /v1/audit-log-exports/{jobId} API.

Authorizations:
OAuth2
Request Body schema: application/json

Contains the filter parameters to be used by the export audit logs operation.

from
required
string <date-time>

Start time of the audit period. The timestamp value is RFC 3339 compliant.

to
required
string <date-time>

End time of the audit period. The timestamp value is RFC 3339 compliant.

source
string [ 1 .. 255 ] characters

Audit log source parameter to filter by. Represents the service which generated the log.

resourceId
string <uuid>

Audit log resourceID parameter to filter by. Represents the resource which was acted upon. Filtering on the resource ID of a deleted service will fail. To access logs for a deleted service do not filter on the resource ID, instead generate a log file including all services.

actorId
string <uuid>

Audit log actorID parameter to filter by. Represents the actor which performed the operation.

tenantId
string <uuid>

Audit log tenantID parameter to filter by. Represents the tenant under which the event occurred.

action
string [ 1 .. 255 ] characters

Audit log action parameter to filter by. Represents the action which occurred.

status
string [ 1 .. 255 ] characters

Audit log status parameter to filter by. Represents the result of the action which occurred.

Responses

Request samples

Content type
application/json
{
  • "from": "2020-11-11T10:13:04.000Z",
  • "to": "2020-11-11T10:13:04.000Z",
  • "source": "thales/cloudhsm/1269045730546",
  • "resourceId": "409dddc1-2ed3-45b7-adc5-d85b8252a3c4",
  • "actorId": "409dddc1-2ed3-45b7-adc5-d85b8252a3c4",
  • "tenantId": "409dddc1-2ed3-45b7-adc5-d85b8252a3c4",
  • "action": "LUNA_LOGIN",
  • "status": "LUNA_RET_OK"
}

Response samples

Content type
application/json
{
  • "jobId": "a26ccfe5-585d-4152-adad-18c453c85a6f",
  • "startedAt": "2022-01-22T17:51:00.000Z",
  • "state": "PENDING",
  • "endedAt": null,
  • "location": null
}

Return the state and result of an export audit logs operation

Returns the state and result of an export audit logs operation that was created using the POST /v1/audit-log-exports API. When the operation has succeeded the "location" will be populated with a signed URL that may be used to download the compressed file.

Authorizations:
OAuth2
path Parameters
jobId
required
string <uuid>

The ID of the export audit logs operation to retrieve.

Responses

Response samples

Content type
application/json
{}
Float Icon 5