Skip to main content

API documentation

Welcome to the Fast2 API documentation.
This section provides a complete reference for interacting programmatically with Fast2 using its RESTful web services.

The API allows you to:

  • Trigger and monitor migrations
  • Manage configurations, workers, and migration jobs
  • Query results and punnets data
  • And many more...

All endpoints are documented with:

  • Path and query parameters
  • Request and response schemas
  • Example calls in cURL

Before using the API, make sure you have:

  • A valid authentication token (see Authentication)
  • Network access to the Fast2 server

Base URL: http://localhost:1789

Note: The interactive Swagger UI for Fast2 is available at:
http://localhost:1789/swagger-ui/index.html

Authentication

  • Bearer JWT via Authorization: Bearer <token> (Bearer Token)

All examples include cURL requests. Replace placeholders with real values.

Tags

  • Catalog API — Endpoint to retrieve catalog tasks
  • Job API — Endpoint for managing jobs
  • Worker API — API for managing workers
  • User API — Endpoint for managing users
  • Shared Objects API — Endpoint for managing shared objects
  • Email API — Endpoint for managing emails
  • Map API — Endpoint for managing maps
  • Queue API — Endpoint for managing queues
  • Punnet API — Endpoint to retrieve punnets
  • Broker API — Endpoint for broker-worker communication
  • Campaign API — Endpoint for managing campaigns
  • Authentication API — Endpoint for managing authentications

Authentication API

Endpoint for managing authentications

changePassword

POST /auth/change-password

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
currentPasswordstringno
newPasswordstringno
newPasswordConfirmationstringno

Body format:

{
"currentPassword": "string",
"newPassword": "string",
"newPasswordConfirmation": "string"
}

Responses

StatusContent-TypeSchemaDescription
200/objectOK

cURL example

curl -X POST 'http://localhost:1789/auth/change-password' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"currentPassword": "string",
"newPassword": "string",
"newPasswordConfirmation": "string"
}'

isAuthenticated

GET /auth/is-authenticated

Responses

StatusContent-TypeSchemaDescription
200/booleanOK

cURL example

curl -X GET 'http://localhost:1789/auth/is-authenticated' \
-H 'Authorization: Bearer <token>' \

getLockTimeDuration

GET /auth/lock-time-duration

Responses

StatusContent-TypeSchemaDescription
200/integer(int32)OK

cURL example

curl -X GET 'http://localhost:1789/auth/lock-time-duration' \
-H 'Authorization: Bearer <token>' \

authenticate

POST /auth/login

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
emailstringno
passwordstringno

Body format:

{
"email": "string",
"password": "string"
}

Responses

StatusContent-TypeSchemaDescription
200/objectOK

cURL example

curl -X POST 'http://localhost:1789/auth/login' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"email": "string",
"password": "string"
}'

getMaxFailedAttempts

GET /auth/max-failed-attempts

Responses

StatusContent-TypeSchemaDescription
200/integer(int32)OK

cURL example

curl -X GET 'http://localhost:1789/auth/max-failed-attempts' \
-H 'Authorization: Bearer <token>' \

getPublicKey

GET /auth/public-key

Responses

StatusContent-TypeSchemaDescription
200/stringOK

cURL example

curl -X GET 'http://localhost:1789/auth/public-key' \
-H 'Authorization: Bearer <token>' \

refreshToken

POST /auth/refresh-token

Responses

StatusContent-TypeSchemaDescription
200/objectOK

cURL example

curl -X POST 'http://localhost:1789/auth/refresh-token' \
-H 'Authorization: Bearer <token>' \

getRemainingAttempts

GET /auth/remaining-attempts

Parameters

NameInRequiredTypeDescription
emailqueryyesstring

Responses

StatusContent-TypeSchemaDescription
200/integer(int32)OK

cURL example

curl -X GET 'http://localhost:1789/auth/remaining-attempts' \
-H 'Authorization: Bearer <token>' \

getRemainingLockTime

GET /auth/remaining-lock-time

Parameters

NameInRequiredTypeDescription
emailqueryyesstring

Responses

StatusContent-TypeSchemaDescription
200/integer(int64)OK

cURL example

curl -X GET 'http://localhost:1789/auth/remaining-lock-time' \
-H 'Authorization: Bearer <token>' \

resetPassword

POST /auth/reset-password

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
targetUserstringno
newPasswordstringno
newPasswordConfirmationstringno

Body format:

{
"targetUser": "string",
"newPassword": "string",
"newPasswordConfirmation": "string"
}

Responses

StatusContent-TypeSchemaDescription
200/objectOK

cURL example

curl -X POST 'http://localhost:1789/auth/reset-password' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"targetUser": "string",
"newPassword": "string",
"newPasswordConfirmation": "string"
}'

Broker API

Endpoint for broker-worker communication

Delete any content set in broker files directory

DELETE /broker/contents

Parameters

NameInRequiredTypeDescription
pathqueryyesstring

Responses

StatusContent-TypeSchemaDescription
200OK

cURL example

curl -X DELETE 'http://localhost:1789/broker/contents' \
-H 'Authorization: Bearer <token>' \

Download any content set in broker files directory

GET /broker/contents

Parameters

NameInRequiredTypeDescription
pathqueryyesstring

Responses

StatusContent-TypeSchemaDescription
200application/jsonstring(binary)OK

cURL example

curl -X GET 'http://localhost:1789/broker/contents' \
-H 'Authorization: Bearer <token>' \

Download logs produced by the broker

GET /broker/download-broker-logs

Responses

StatusContent-TypeSchemaDescription
200application/jsonarray[string(byte)]OK

cURL example

curl -X GET 'http://localhost:1789/broker/download-broker-logs' \
-H 'Authorization: Bearer <token>' \

Campaign API

Endpoint for managing campaigns

Delete campaigns by names

DELETE /campaigns/delete-by-names

Deletes campaigns that match the list of specified campaign names and map version. Returns a multi-status response indicating the success or failure of deleting each campaign

Parameters

NameInRequiredTypeDescription
campaignsqueryyesarray[object]Campaign names to retrieve
mapVersionSerieIdquerynostringMap version series id to filter campaigns

Responses

StatusContent-TypeSchemaDescription
207application/jsonobjectServer failed to delete campaigns
200application/jsonobjectSuccessfully deleted campaigns
400Invalid request parameters

cURL example

curl -X DELETE 'http://localhost:1789/campaigns/delete-by-names' \
-H 'Authorization: Bearer <token>' \

Delete campaigns by pattern

DELETE /campaigns/delete-by-pattern

Deletes campaigns that match the specified name pattern and map version. If no name pattern is provided, all campaigns will be selected. Returns a multi-status response indicating the success or failure of deleting each campaign

Parameters

NameInRequiredTypeDescription
namePatternquerynostringPattern to filter campaign names
mapVersionSerieIdquerynostringMap version series id to filter campaigns

Responses

StatusContent-TypeSchemaDescription
207application/jsonobjectServer failed to delete campaigns
200application/jsonobjectSuccessfully deleted campaigns
400Invalid request parameters

cURL example

curl -X DELETE 'http://localhost:1789/campaigns/delete-by-pattern' \
-H 'Authorization: Bearer <token>' \

Download campaign exceptions

GET /campaigns/download-exceptions

Downloads all exceptions thrown during a specific campaign

Parameters

NameInRequiredTypeDescription
campaignsqueryyesarray[string]
mapIdsqueryyesarray[string]

Responses

StatusContent-TypeSchemaDescription
200Successfully downloaded exceptions
500Server failed to download exceptions
400Invalid request parameters

cURL example

curl -X GET 'http://localhost:1789/campaigns/download-exceptions' \
-H 'Authorization: Bearer <token>' \

Get campaigns dto information by names

GET /campaigns/dto/search-by-names

Retrieves campaigns that match the list of specified campaign names, map version and map id

Parameters

NameInRequiredTypeDescription
campaignsqueryyesarray[object]Campaign names to retrieve
mapVersionSerieIdquerynostringMap version series id to filter campaigns
mapIdquerynostringMap id to filter campaigns
paginateParamsqueryyesobjectPagination parameters

Responses

StatusContent-TypeSchemaDescription
500Failed to retrieve campaigns
200application/jsonobjectSuccessfully retrieved campaigns
400Invalid request parameters

cURL example

curl -X GET 'http://localhost:1789/campaigns/dto/search-by-names' \
-H 'Authorization: Bearer <token>' \

Get campaigns dto information by pattern

GET /campaigns/dto/search-by-pattern

Retrieves a list of campaigns dto that match the specified name pattern, map version and map id. If no name pattern is provided, all campaigns will be selected

Parameters

NameInRequiredTypeDescription
namePatternquerynostringPattern to filter campaign names
mapVersionSerieIdquerynostringMap version series id to filter campaigns
mapIdquerynostringMap id to filter campaigns
statusquerynostringCampaign status to filter campaigns
paginateParamsqueryyesobjectPagination parameters

Responses

StatusContent-TypeSchemaDescription
500Server failed to retrieve campaigns
200application/jsonobjectSuccessfully retrieved campaigns
400Invalid request parameters

cURL example

curl -X GET 'http://localhost:1789/campaigns/dto/search-by-pattern' \
-H 'Authorization: Bearer <token>' \

Get campaign dto information

GET /campaigns/dto/{campaign}

Retrieves a campaign dto from its name

Parameters

NameInRequiredTypeDescription
campaignpathyesobjectCampaign name to retrieve

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectSuccessfully retrieved campaign
400Invalid request parameters
404Campaign not found
500Server failed to retrieve campaign

cURL example

curl -X GET 'http://localhost:1789/campaigns/dto/<campaign>' \
-H 'Authorization: Bearer <token>' \

Get campaigns information by name

GET /campaigns/search-by-names

Retrieves campaigns that match the list of specified campaign names, map version and map id

Parameters

NameInRequiredTypeDescription
campaignsqueryyesarray[object]Campaign names to stop
mapVersionSerieIdquerynostringMap version series id to filter campaigns
mapIdquerynostringMap id to filter campaigns
paginateParamsqueryyesobjectPagination parameters

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectSuccessfully retrieved campaigns
500Server failed to retrieve campaigns
400Invalid request parameters

cURL example

curl -X GET 'http://localhost:1789/campaigns/search-by-names' \
-H 'Authorization: Bearer <token>' \

Get campaigns information by pattern

GET /campaigns/search-by-pattern

Retrieves campaigns that match the specified name pattern, map version and map id. If no name pattern is provided, all campaigns will be selected

Parameters

NameInRequiredTypeDescription
namePatternquerynostringPattern to filter campaign names
mapVersionSerieIdquerynostringMap version series id to filter campaigns
mapIdquerynostringMap id to filter campaigns
paginateParamsqueryyesobjectPagination parameters

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectSuccessfully retrieved campaigns
500Server failed to retrieve campaigns
400Invalid request parameters

cURL example

curl -X GET 'http://localhost:1789/campaigns/search-by-pattern' \
-H 'Authorization: Bearer <token>' \

Stop campaigns by names

POST /campaigns/stop-by-names

Stops campaigns that match the specified list of campaign names and map version. Returns a multi-status response indicating the success or failure of stopping each campaign

Parameters

NameInRequiredTypeDescription
campaignsqueryyesarray[object]Campaign names to stop
mapVersionSerieIdquerynostringMap version series id to filter campaigns

Responses

StatusContent-TypeSchemaDescription
207application/jsonobjectServer failed to stop campaign
200application/jsonobjectSuccessfully stopped campaign
400Invalid request parameters

cURL example

curl -X POST 'http://localhost:1789/campaigns/stop-by-names' \
-H 'Authorization: Bearer <token>' \

Stop campaigns by pattern

POST /campaigns/stop-by-pattern

Stops campaigns that match the specified name pattern and map version. If no name pattern is provided, all campaigns will be selected. Returns a multi-status response indicating the success or failure of stopping each campaign

Parameters

NameInRequiredTypeDescription
namePatternquerynostringPattern to filter campaign names
mapVersionSerieIdquerynostringMap version series id to filter campaigns

Responses

StatusContent-TypeSchemaDescription
207application/jsonobjectServer failed to stop campaign
200application/jsonobjectSuccessfully stopped campaign
400Invalid request parameters

cURL example

curl -X POST 'http://localhost:1789/campaigns/stop-by-pattern' \
-H 'Authorization: Bearer <token>' \

Delete a campaign

DELETE /campaigns/{campaign}

Deletes a campaign from its name

Parameters

NameInRequiredTypeDescription
campaignpathyesobjectCampaign name to delete

Responses

StatusContent-TypeSchemaDescription
200Successfully deleted campaign
400Invalid request parameters
404Campaign not found
500Server failed to delete the campaign

cURL example

curl -X DELETE 'http://localhost:1789/campaigns/<campaign>' \
-H 'Authorization: Bearer <token>' \

deleteCampaignParameter

DELETE /campaigns/{campaign}/parameter/{campaignParameter}

Parameters

NameInRequiredTypeDescription
campaignpathyesobjectCampaign name
campaignParameterpathyesstringCampaign parameter key

Responses

StatusContent-TypeSchemaDescription
200OK

cURL example

curl -X DELETE 'http://localhost:1789/campaigns/<campaign>/parameter/<campaignParameter>' \
-H 'Authorization: Bearer <token>' \

deleteAllCampaignParameters

DELETE /campaigns/{campaign}/parameters

Parameters

NameInRequiredTypeDescription
campaignpathyesobjectCampaign name

Responses

StatusContent-TypeSchemaDescription
200OK

cURL example

curl -X DELETE 'http://localhost:1789/campaigns/<campaign>/parameters' \
-H 'Authorization: Bearer <token>' \

getCampaignParameters

GET /campaigns/{campaign}/parameters

Parameters

NameInRequiredTypeDescription
campaignpathyesobjectCampaign name

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X GET 'http://localhost:1789/campaigns/<campaign>/parameters' \
-H 'Authorization: Bearer <token>' \

createCampaignParameters

POST /campaigns/{campaign}/parameters

Parameters

NameInRequiredTypeDescription
mapIdqueryyesobjectMap Id
campaignpathyesobjectCampaign name

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
emptybooleanno

Body format:

{
"empty": true
}

Responses

StatusContent-TypeSchemaDescription
200OK

cURL example

curl -X POST 'http://localhost:1789/campaigns/<campaign>/parameters' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"empty": true
}'

Resume a campaign

POST /campaigns/{campaign}/resume

Resumes a campaign from its name. Only stopped campaigns can be resumed

Parameters

NameInRequiredTypeDescription
campaignpathyesobjectCampaign name

Responses

StatusContent-TypeSchemaDescription
400Campaign not stopped
404Campaign not found
500Server failed to resume campaign
200application/jsonobjectSuccessfully resumed campaign

cURL example

curl -X POST 'http://localhost:1789/campaigns/<campaign>/resume' \
-H 'Authorization: Bearer <token>' \

Retry punnets

POST /campaigns/{campaign}/retry-punnets

Retry punnets in any step for a specific campaign. You can filter the punnets to retry by status and metadata values

Parameters

NameInRequiredTypeDescription
campaignpathyesobjectCampaign name of the punnets to retry
mapIdqueryyesobjectMap id related to the campaign
stepIdqueryyesobjectStep id containing the punnets to retry
statusquerynoarray[string]Status to filter punnets to retry

Responses

StatusContent-TypeSchemaDescription
500Server failed to retry punnets
400Invalid request parameters
200Successfully retried campaign

cURL example

curl -X POST 'http://localhost:1789/campaigns/<campaign>/retry-punnets' \
-H 'Authorization: Bearer <token>' \

Start a campaign

POST /campaigns/{campaign}/start

Starts a campaign from its name and a map id. Can be a new campaign or a rerun

Parameters

NameInRequiredTypeDescription
campaignpathyesobjectCampaign name
mapIdqueryyesobjectMap Id
newCampaignquerynobooleanNew campaign

Responses

StatusContent-TypeSchemaDescription
400Invalid request parameters
404Map not found
200application/jsonobjectSuccessfully started campaign
500Server failed to start campaign

cURL example

curl -X POST 'http://localhost:1789/campaigns/<campaign>/start' \
-H 'Authorization: Bearer <token>' \

Get campaign stats

GET /campaigns/{campaign}/stats

Retrieves stats of specified campaign

Parameters

NameInRequiredTypeDescription
campaignpathyesobjectCampaign name to retrieve

Responses

StatusContent-TypeSchemaDescription
500Server failed to retrieve campaign stats
200application/jsonobjectSuccessfully retrieved campaign stats
400Invalid request parameters
404Campaign or stats not found

cURL example

curl -X GET 'http://localhost:1789/campaigns/<campaign>/stats' \
-H 'Authorization: Bearer <token>' \

Get campaign status

GET /campaigns/{campaign}/status

Retrieves status of specified campaign

Parameters

NameInRequiredTypeDescription
campaignpathyesobjectCampaign name to retrieve

Responses

StatusContent-TypeSchemaDescription
404Campaign or status not found
200application/jsonstringSuccessfully retrieved campaign status
400Invalid request parameters
500Server failed to retrieve campaign status

cURL example

curl -X GET 'http://localhost:1789/campaigns/<campaign>/status' \
-H 'Authorization: Bearer <token>' \

Download step result

GET /campaigns/{campaign}/step/{stepId}/download-result

Downloads step result for a specific campaign. You can filter the punnets to download by status and metadata values

Parameters

NameInRequiredTypeDescription
campaignpathyesobjectCampaign name of the step
mapIdqueryyesobjectMap id related to the campaign
stepIdpathyesobjectStep id to download result
statusquerynoarray[string]Status to filter punnets to download

Responses

StatusContent-TypeSchemaDescription
200Successfully downloaded step result
500Server failed to download step result
400Invalid request parameters

cURL example

curl -X GET 'http://localhost:1789/campaigns/<campaign>/step/<stepId>/download-result' \
-H 'Authorization: Bearer <token>' \

Pause a step

POST /campaigns/{campaign}/step/{stepId}/pause

Pause a step by providing the campaign name, map ID, and step ID. These parameters define the exact context of the task to pause.

Parameters

NameInRequiredTypeDescription
campaignpathyesobjectThe campaign name to identify the task context
mapIdqueryyesobjectThe map Id related to the campaign
stepIdpathyesobjectThe step Id defining the specific task to pause

Responses

StatusContent-TypeSchemaDescription
204application/jsonobjectSuccessfully paused step
400Invalid request parameters
404Campaign not found
500Failed to pause step

cURL example

curl -X POST 'http://localhost:1789/campaigns/<campaign>/step/<stepId>/pause' \
-H 'Authorization: Bearer <token>' \

Resume a step

POST /campaigns/{campaign}/step/{stepId}/resume

Resume a step by providing the campaign name, map ID, and step ID. These parameters define the exact context of the task to resume.

Parameters

NameInRequiredTypeDescription
campaignpathyesobjectThe campaign name to identify the task context
mapIdqueryyesobjectThe map Id related to the campaign
stepIdpathyesobjectThe step Id defining the specific task to resume

Responses

StatusContent-TypeSchemaDescription
500Failed to resume step
400Invalid request parameters
404Campaign not found
204application/jsonobjectSuccessfully resumed step

cURL example

curl -X POST 'http://localhost:1789/campaigns/<campaign>/step/<stepId>/resume' \
-H 'Authorization: Bearer <token>' \

Stop a campaign

POST /campaigns/{campaign}/stop

Stop a campaign from its name

Parameters

NameInRequiredTypeDescription
campaignpathyesobjectCampaign name

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectSuccessfully stopped campaign
400Campaign not started
500Failed to resume campaign
404Campaign not found

cURL example

curl -X POST 'http://localhost:1789/campaigns/<campaign>/stop' \
-H 'Authorization: Bearer <token>' \

Catalog API

Endpoint to retrieve catalog tasks

getCatalog

GET /catalog

Parameters

NameInRequiredTypeDescription
namequerynostring
classNamesquerynoarray[string]
allTaskquerynoboolean

Responses

StatusContent-TypeSchemaDescription
200application/jsonarray[object]OK

cURL example

curl -X GET 'http://localhost:1789/catalog' \
-H 'Authorization: Bearer <token>' \

getCatalogDto

GET /catalog/dto

Parameters

NameInRequiredTypeDescription
namequerynostring
classNamesquerynoarray[string]
allTaskquerynoboolean

Responses

StatusContent-TypeSchemaDescription
200application/jsonarray[object]OK

cURL example

curl -X GET 'http://localhost:1789/catalog/dto' \
-H 'Authorization: Bearer <token>' \

Email API

Endpoint for managing emails

createEmail

POST /emails

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
emailstringno
activebooleanno
emailIdobjectno

Body format:

{
"email": "string",
"active": true,
"emailId": {}
}

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X POST 'http://localhost:1789/emails' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"email": "string",
"active": true,
"emailId": {}
}'

updateEmail

PUT /emails

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
emailstringno
activebooleanno
emailIdobjectno

Body format:

{
"email": "string",
"active": true,
"emailId": {}
}

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X PUT 'http://localhost:1789/emails' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"email": "string",
"active": true,
"emailId": {}
}'

deleteEmails_byNames

DELETE /emails/delete-by-names

Parameters

NameInRequiredTypeDescription
emailsqueryyesarray[string]

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
frominteger(int32)no
sizeinteger(int32)no
orderBystringno
ascendingbooleanno

Body format:

{
"from": 0,
"size": 0,
"orderBy": "string",
"ascending": true
}

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X DELETE 'http://localhost:1789/emails/delete-by-names' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"from": 0,
"size": 0,
"orderBy": "string",
"ascending": true
}'

deleteEmails_byPattern

DELETE /emails/delete-by-pattern

Parameters

NameInRequiredTypeDescription
namePatternquerynostring

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
frominteger(int32)no
sizeinteger(int32)no
orderBystringno
ascendingbooleanno

Body format:

{
"from": 0,
"size": 0,
"orderBy": "string",
"ascending": true
}

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X DELETE 'http://localhost:1789/emails/delete-by-pattern' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"from": 0,
"size": 0,
"orderBy": "string",
"ascending": true
}'

getEmailsByNames

GET /emails/search-by-names

Parameters

NameInRequiredTypeDescription
emailsqueryyesarray[string]
paginateParamsqueryyesobject

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X GET 'http://localhost:1789/emails/search-by-names' \
-H 'Authorization: Bearer <token>' \

getEmails

GET /emails/search-by-pattern

Parameters

NameInRequiredTypeDescription
namePatternquerynostring
paginateParamsqueryyesobject

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X GET 'http://localhost:1789/emails/search-by-pattern' \
-H 'Authorization: Bearer <token>' \

deleteEmail

DELETE /emails/{email}

Parameters

NameInRequiredTypeDescription
emailpathyesstring

Responses

StatusContent-TypeSchemaDescription
200OK

cURL example

curl -X DELETE 'http://localhost:1789/emails/<email>' \
-H 'Authorization: Bearer <token>' \

getEmail

GET /emails/{email}

Parameters

NameInRequiredTypeDescription
emailpathyesstring

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X GET 'http://localhost:1789/emails/<email>' \
-H 'Authorization: Bearer <token>' \

Job API

Endpoint for managing jobs

Create a job

POST /jobs

Creates a new job for a map with its cron expression

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
jobIdobjectno
jobNamestringno
campaignobjectno
taskFlowMapRefobjectno
maxNumberExecutionsinteger(int32)no
actionstringno
activebooleanno
cronExpressionstringno

Body format:

{
"jobId": {},
"jobName": "string",
"campaign": {
"name": "string",
"index": "string",
"prefix": "string",
"suffix": 0
},
"taskFlowMapRef": {},
"maxNumberExecutions": 0,
"action": "STOP",
"active": true,
"cronExpression": "string"
}

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectSuccessfully created job
400Invalid request parameters
409Job name already taken
500Server failed to create job

cURL example

curl -X POST 'http://localhost:1789/jobs' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"jobId": {},
"jobName": "string",
"campaign": {
"name": "string",
"index": "string",
"prefix": "string",
"suffix": 0
},
"taskFlowMapRef": {},
"maxNumberExecutions": 0,
"action": "STOP",
"active": true,
"cronExpression": "string"
}'

Update a job

PUT /jobs

Updates a job. The job must have a name and an Id are required

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
jobIdobjectno
jobNamestringno
campaignobjectno
taskFlowMapRefobjectno
maxNumberExecutionsinteger(int32)no
actionstringno
activebooleanno
cronExpressionstringno

Body format:

{
"jobId": {},
"jobName": "string",
"campaign": {
"name": "string",
"index": "string",
"prefix": "string",
"suffix": 0
},
"taskFlowMapRef": {},
"maxNumberExecutions": 0,
"action": "STOP",
"active": true,
"cronExpression": "string"
}

Responses

StatusContent-TypeSchemaDescription
500Server failed to update job
404Provided job not found
400Invalid request parameters
409Job name already taken
200application/jsonobjectSuccessfully updated job

cURL example

curl -X PUT 'http://localhost:1789/jobs' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"jobId": {},
"jobName": "string",
"campaign": {
"name": "string",
"index": "string",
"prefix": "string",
"suffix": 0
},
"taskFlowMapRef": {},
"maxNumberExecutions": 0,
"action": "STOP",
"active": true,
"cronExpression": "string"
}'

Delete jobs by name

DELETE /jobs/delete-by-name

Deletes jobs that match the list of specified job names. Returns a multi-status response indicating the success or failure of deleting each job

Parameters

NameInRequiredTypeDescription
jobNamesqueryyesarray[string]Job names to delete

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectSuccessfully deleted jobs
400Invalid request parameters
207application/jsonobjectServer failed to delete campaigns

cURL example

curl -X DELETE 'http://localhost:1789/jobs/delete-by-name' \
-H 'Authorization: Bearer <token>' \

Delete jobs by pattern

DELETE /jobs/delete-by-pattern

Deletes jobs that match the specified name pattern. If no name pattern is provided, all jobs will be selected. Returns a multi-status response indicating the success or failure of deleting each job

Parameters

NameInRequiredTypeDescription
namePatternquerynostringPattern to filter job names

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectSuccessfully deleted jobs
400Invalid request parameters
207application/jsonobjectServer failed to delete campaigns

cURL example

curl -X DELETE 'http://localhost:1789/jobs/delete-by-pattern' \
-H 'Authorization: Bearer <token>' \

Get jobs by name

GET /jobs/search-by-names

Retrieves jobs that match the list of specified job names

Parameters

NameInRequiredTypeDescription
jobNamesqueryyesarray[string]Job names to retrieve
paginateParamsqueryyesobjectPagination parameters

Responses

StatusContent-TypeSchemaDescription
400Invalid request parameters
500Server failed to retrieve jobs
200application/jsonobjectSuccessfully retrieved jobs

cURL example

curl -X GET 'http://localhost:1789/jobs/search-by-names' \
-H 'Authorization: Bearer <token>' \

Get jobs by pattern

GET /jobs/search-by-pattern

Retrieves jobs that match the specified name pattern. If no name pattern is provided, all jobs will be selected

Parameters

NameInRequiredTypeDescription
namePatternquerynostringPattern to filter job names
paginateParamsqueryyesobjectPagination parameters

Responses

StatusContent-TypeSchemaDescription
400Invalid request parameters
500Server failed to retrieve jobs
200application/jsonobjectSuccessfully retrieved jobs

cURL example

curl -X GET 'http://localhost:1789/jobs/search-by-pattern' \
-H 'Authorization: Bearer <token>' \

isCronValidFromString

GET /jobs/validateCron

Parameters

NameInRequiredTypeDescription
cronExpressionqueryyesstring

Responses

StatusContent-TypeSchemaDescription
200application/jsonbooleanOK

cURL example

curl -X GET 'http://localhost:1789/jobs/validateCron' \
-H 'Authorization: Bearer <token>' \

Delete a job

DELETE /jobs/{jobName}

Deletes a job from its name

Parameters

NameInRequiredTypeDescription
jobNamepathyesstringThe name of the job

Responses

StatusContent-TypeSchemaDescription
400Invalid request parameters
404Job not found
200Successfully deleted job
500Server failed to delete job

cURL example

curl -X DELETE 'http://localhost:1789/jobs/<jobName>' \
-H 'Authorization: Bearer <token>' \

Get job from name

GET /jobs/{jobName}

Retrieves a job from its name

Parameters

NameInRequiredTypeDescription
jobNamepathyesstringThe name of the job

Responses

StatusContent-TypeSchemaDescription
500Server failed to retrieve job
400Invalid request parameters
404Job not found
200application/jsonobjectSuccessfully retrieved job

cURL example

curl -X GET 'http://localhost:1789/jobs/<jobName>' \
-H 'Authorization: Bearer <token>' \

Map API

Endpoint for managing maps

Create a map

POST /maps

Creates a new map with an id and a unique name

Request Body

Content-Type: application/json

Responses

StatusContent-TypeSchemaDescription
409Map name already taken
500Server failed to create map
400Invalid request parameters
200application/jsonstringSuccessfully created map

cURL example

curl -X POST 'http://localhost:1789/maps' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '"string"'

Save a map

PUT /maps

Saves a whole map including step configurations

Request Body

Content-Type: application/json

Responses

StatusContent-TypeSchemaDescription
500Server failed to save map
200application/jsonstringSuccessfully saved maps
409New map name already taken
400Invalid request parameters
404Map not found from provided mapId or map versions weren't matching between provided and found map

cURL example

curl -X PUT 'http://localhost:1789/maps' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '"string"'

Delete maps by Ids

DELETE /maps/delete-by-ids

Deletes maps that match the list of specified map Ids

Parameters

NameInRequiredTypeDescription
mapIdsqueryyesarray[object]Map ids of the maps to delete

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectSuccessfully deleted maps
500Server failed to delete maps
400Invalid request parameters

cURL example

curl -X DELETE 'http://localhost:1789/maps/delete-by-ids' \
-H 'Authorization: Bearer <token>' \

Delete maps by pattern

DELETE /maps/delete-by-pattern

Deletes maps that match the specified name pattern. If no name pattern is provided, all maps will be selected

Parameters

NameInRequiredTypeDescription
namePatternquerynostringPattern to filter map names

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectSuccessfully deleted maps
500Server failed to delete maps
400Invalid request parameters

cURL example

curl -X DELETE 'http://localhost:1789/maps/delete-by-pattern' \
-H 'Authorization: Bearer <token>' \

Delete maps by version

DELETE /maps/delete-by-version

Deletes maps summary that match the specified map version Ids

Parameters

NameInRequiredTypeDescription
mapVersionSerieIdqueryyesobjectThe mapVersionSerieId attached to the map

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
frominteger(int32)no
sizeinteger(int32)no
orderBystringno
ascendingbooleanno

Body format:

{
"from": 0,
"size": 0,
"orderBy": "string",
"ascending": true
}

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectSuccessfully deleted maps
500Server failed to delete maps
400Invalid request parameters

cURL example

curl -X DELETE 'http://localhost:1789/maps/delete-by-version' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"from": 0,
"size": 0,
"orderBy": "string",
"ascending": true
}'

Download map

GET /maps/download/{mapId}

Downloads map file from provided map id

Parameters

NameInRequiredTypeDescription
mapIdpathyesobjectThe map Id of the map to download

Responses

StatusContent-TypeSchemaDescription
500Server failed to download maps
200application/jsonobjectSuccessfully downloaded maps
400Invalid request parameters

cURL example

curl -X GET 'http://localhost:1789/maps/download/<mapId>' \
-H 'Authorization: Bearer <token>' \

Assert map name availability

GET /maps/name-availability

Checks that provided map name is available

Parameters

NameInRequiredTypeDescription
mapNamequeryyesstringThe map name to check availability

Responses

StatusContent-TypeSchemaDescription
200application/jsonbooleanSuccessfully checked map name availability
500Server failed to check map name
400Invalid request parameters

cURL example

curl -X GET 'http://localhost:1789/maps/name-availability' \
-H 'Authorization: Bearer <token>' \

Get maps by Ids

GET /maps/search-by-ids

Retrieves maps that match the list of specified map Ids

Parameters

NameInRequiredTypeDescription
mapIdsqueryyesarray[object]Map ids of the maps to retrieve
paginateParamsqueryyesobjectPagination parameters

Responses

StatusContent-TypeSchemaDescription
400Invalid request parameters
200application/jsonstringSuccessfully retrieved maps
500Server failed to retrieve maps

cURL example

curl -X GET 'http://localhost:1789/maps/search-by-ids' \
-H 'Authorization: Bearer <token>' \

Get maps by pattern

GET /maps/search-by-pattern

Retrieves maps that match the specified name pattern. If no name pattern is provided, all maps will be selected

Parameters

NameInRequiredTypeDescription
namePatternquerynostringPattern to filter map names
paginateParamsqueryyesobjectPagination parameters

Responses

StatusContent-TypeSchemaDescription
200application/jsonstringSuccessfully retrieved maps
400Invalid request parameters
500Server failed to retrieve maps

cURL example

curl -X GET 'http://localhost:1789/maps/search-by-pattern' \
-H 'Authorization: Bearer <token>' \

Get maps by version Id

GET /maps/search-by-version

Retrieves maps summary that match the list of specified map Ids

Parameters

NameInRequiredTypeDescription
mapVersionSerieIdqueryyesobjectThe mapVersionSerieId attached to the map
paginateParamsqueryyesobjectPagination parameters

Responses

StatusContent-TypeSchemaDescription
400Invalid request parameters
200application/jsonstringSuccessfully retrieved maps
404Provided mapVersionSerieId not found
500Server failed to retrieve maps

cURL example

curl -X GET 'http://localhost:1789/maps/search-by-version' \
-H 'Authorization: Bearer <token>' \

Get maps summaries by Id

GET /maps/summary/search-by-ids

Retrieves maps summaries that match the list of specified map Ids

Parameters

NameInRequiredTypeDescription
mapIdsqueryyesarray[object]Map ids of the maps to retrieve
paginateParamsqueryyesobjectPagination parameters

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectSuccessfully retrieved maps
400Invalid request parameters
500Server failed to retrieve maps

cURL example

curl -X GET 'http://localhost:1789/maps/summary/search-by-ids' \
-H 'Authorization: Bearer <token>' \

Get maps summaries by pattern

GET /maps/summary/search-by-pattern

Retrieves maps summaries that match the specified name pattern. If no name pattern is provided, all maps will be selected

Parameters

NameInRequiredTypeDescription
namePatternquerynostringPattern to filter map names
paginateParamsqueryyesobjectPagination parameters

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectSuccessfully retrieved maps
400Invalid request parameters
500Server failed to retrieve maps

cURL example

curl -X GET 'http://localhost:1789/maps/summary/search-by-pattern' \
-H 'Authorization: Bearer <token>' \

Upload a map

POST /maps/upload/{mapName}

Created a new map from file and associates it with the given map name

Parameters

NameInRequiredTypeDescription
mapNamepathyesstringThe map name to associates

Request Body

Content-Type: multipart/form-data

FieldTypeRequiredDescription
filestring(binary)yesThe file to be uploaded

Body format:

{
"file": "string"
}

Responses

StatusContent-TypeSchemaDescription
409Map name already taken
400Invalid request parameters
200application/jsonstringSuccessfully uploaded map
500Server failed to upload maps

cURL example

curl -X POST 'http://localhost:1789/maps/upload/<mapName>' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: multipart/form-data' \
-d '{
"file": "string"
}'

Delete a map from its Id

DELETE /maps/{mapId}

Deletes one map from provided map Id

Parameters

NameInRequiredTypeDescription
mapIdpathyesobjectMap Id attached to the map to delete

Responses

StatusContent-TypeSchemaDescription
500Server failed to delete maps
400Invalid request parameters
404Map not found
200Successfully deleted maps

cURL example

curl -X DELETE 'http://localhost:1789/maps/<mapId>' \
-H 'Authorization: Bearer <token>' \

Get a map from its id

GET /maps/{mapId}

Retrieves one map from its map Id

Parameters

NameInRequiredTypeDescription
mapIdpathyesobjectThe map Id attached to the map

Responses

StatusContent-TypeSchemaDescription
404Map not found from provided mapId
400Invalid request parameters
500Server failed to retrieve map
200application/jsonstringSuccessfully retrieved map

cURL example

curl -X GET 'http://localhost:1789/maps/<mapId>' \
-H 'Authorization: Bearer <token>' \

Punnet API

Endpoint to retrieve punnets

Get index mapping campaign

GET /punnets/mapping

Retrieves all field mappings (structure of documents) for the OpenSearch index related to the specified campaign

Parameters

NameInRequiredTypeDescription
campaignqueryyesobjectCampaign name

Responses

StatusContent-TypeSchemaDescription
500Server failed to retrieve mapping
200application/jsonobjectSuccessfully retrieved fields mapping
400Invalid request parameters

cURL example

curl -X GET 'http://localhost:1789/punnets/mapping' \
-H 'Authorization: Bearer <token>' \

Get all punnet contexts

GET /punnets/punnet-contexts

Retrieves all punnet contexts from a campaign and a stepId. You can filter results by punnet metadata

Parameters

NameInRequiredTypeDescription
campaignqueryyesobjectCampaign name
stepIdqueryyesobjectThe step Id that processed the punnet
paginateParamsqueryyesobjectPagination parameters

Responses

StatusContent-TypeSchemaDescription
500Server failed to retrieve punnet contexts
200application/jsonobjectSuccessfully retrieve punnet contexts
400Invalid request parameters

cURL example

curl -X GET 'http://localhost:1789/punnets/punnet-contexts' \
-H 'Authorization: Bearer <token>' \

Get values of a metadata

GET /punnets/values

Retrieves all values of a given metadata

Parameters

NameInRequiredTypeDescription
campaignqueryyesobjectCampaign name
mapIdqueryyesobjectMap Id reference
stepIdqueryyesobjectThe step Id that processed the punnet
fieldqueryyesstringThe metadata key to retrieve values

Responses

StatusContent-TypeSchemaDescription
500Server failed to retrieve values
400Invalid request parameters
200application/jsonobjectSuccessfully retrieved values

cURL example

curl -X GET 'http://localhost:1789/punnets/values' \
-H 'Authorization: Bearer <token>' \

Get punnet context from its id

GET /punnets/{punnetContextId}

Retrieves PunnetContext information from its PunnetContextId

Parameters

NameInRequiredTypeDescription
punnetContextIdpathyesobjectPunnetContextId reference

Responses

StatusContent-TypeSchemaDescription
404PunnetContextId did not exist
200application/xmlobjectSuccessfully retrieve punnet
400Invalid request parameters
500Server failed to transform punnet as xml

cURL example

curl -X GET 'http://localhost:1789/punnets/<punnetContextId>' \
-H 'Authorization: Bearer <token>' \

Get punnet exception

GET /punnets/{punnetContextId}/exception

Retrieves exception of any punnet from its PunnetContextId

Parameters

NameInRequiredTypeDescription
punnetContextIdpathyesobjectPunnetContextId reference

Responses

StatusContent-TypeSchemaDescription
404PunnetContextId not found
200application/jsonobjectSuccessfully retrieved exception
400Invalid request parameters
500Server failed to retrieve exception

cURL example

curl -X GET 'http://localhost:1789/punnets/<punnetContextId>/exception' \
-H 'Authorization: Bearer <token>' \

Get next punnets

GET /punnets/{punnetContextId}/history/next

Retrieves next PunnetContext information from a PunnetContextId. Finding several punnets comes from a duplication of punnets in the map. Can be empty if punnet context does not have any next punnet context

Parameters

NameInRequiredTypeDescription
punnetContextIdpathyesobjectPunnetContextId reference

Responses

StatusContent-TypeSchemaDescription
500Server failed to retrieve punnet contexts
200application/jsonobjectSuccessfully retrieved punnet contexts
400Invalid request parameters

cURL example

curl -X GET 'http://localhost:1789/punnets/<punnetContextId>/history/next' \
-H 'Authorization: Bearer <token>' \

Get previous punnet

GET /punnets/{punnetContextId}/history/previous

Retrieves previous PunnetContext information from a PunnetContextId. Unlike the next route, it is only possible to find a single punnet context. Can be null if punnet context does not have any previous punnet context

Parameters

NameInRequiredTypeDescription
punnetContextIdpathyesobjectPunnetContextId reference

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectSuccessfully retrieved the punnet context
400Invalid request parameters
500Server failed to retrieve the punnet context

cURL example

curl -X GET 'http://localhost:1789/punnets/<punnetContextId>/history/previous' \
-H 'Authorization: Bearer <token>' \

Get punnet logs

GET /punnets/{punnetContextId}/logs

Retrieves logs of any punnet from its PunnetContextId

Parameters

NameInRequiredTypeDescription
punnetContextIdpathyesobjectPunnetContextId reference

Responses

StatusContent-TypeSchemaDescription
500Server failed to retrieve logs
400Invalid request parameters
200application/jsonobjectSuccessfully retrieved logs

cURL example

curl -X GET 'http://localhost:1789/punnets/<punnetContextId>/logs' \
-H 'Authorization: Bearer <token>' \

Get punnet as xml

GET /punnets/{punnetContextId}/xml

Retrieves a punnet from its PunnetContextId and prints it as an XML file

Parameters

NameInRequiredTypeDescription
punnetContextIdpathyesobjectPunnetContextId reference

Responses

StatusContent-TypeSchemaDescription
404PunnetContextId not found
400Invalid request parameters
200application/xmlobjectSuccessfully retrieve punnet
500Server failed to transform punnet as xml

cURL example

curl -X GET 'http://localhost:1789/punnets/<punnetContextId>/xml' \
-H 'Authorization: Bearer <token>' \

Queue API

Endpoint for managing queues

getQueues

GET /queues

Parameters

NameInRequiredTypeDescription
paginateParamsqueryyesobject

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X GET 'http://localhost:1789/queues' \
-H 'Authorization: Bearer <token>' \

createQueue

POST /queues

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
queueIdobjectno
numberOfSourceThreadsinteger(int32)no
numberOfTaskThreadsinteger(int32)no

Body format:

{
"queueId": {},
"numberOfSourceThreads": 0,
"numberOfTaskThreads": 0
}

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X POST 'http://localhost:1789/queues' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"queueId": {},
"numberOfSourceThreads": 0,
"numberOfTaskThreads": 0
}'

updateQueue

PUT /queues

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
queueIdobjectno
numberOfSourceThreadsinteger(int32)no
numberOfTaskThreadsinteger(int32)no

Body format:

{
"queueId": {},
"numberOfSourceThreads": 0,
"numberOfTaskThreads": 0
}

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X PUT 'http://localhost:1789/queues' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"queueId": {},
"numberOfSourceThreads": 0,
"numberOfTaskThreads": 0
}'

deleteQueues_byIds

DELETE /queues/delete-by-ids

Parameters

NameInRequiredTypeDescription
queueIdsqueryyesarray[object]

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X DELETE 'http://localhost:1789/queues/delete-by-ids' \
-H 'Authorization: Bearer <token>' \

deleteQueues_byPattern

DELETE /queues/delete-by-pattern

Parameters

NameInRequiredTypeDescription
namePatternquerynostring

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X DELETE 'http://localhost:1789/queues/delete-by-pattern' \
-H 'Authorization: Bearer <token>' \

deleteQueue

DELETE /queues/{queueId}

Parameters

NameInRequiredTypeDescription
queueIdpathyesobject

Responses

StatusContent-TypeSchemaDescription
200OK

cURL example

curl -X DELETE 'http://localhost:1789/queues/<queueId>' \
-H 'Authorization: Bearer <token>' \

getQueue

GET /queues/{queueId}

Parameters

NameInRequiredTypeDescription
queueIdpathyesobject

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X GET 'http://localhost:1789/queues/<queueId>' \
-H 'Authorization: Bearer <token>' \

Shared Objects API

Endpoint for managing shared objects

Delete shared objects by names

DELETE /shared-objects/delete-by-names

Deletes shared objects that match the list of specified shared objects names. Returns a multi-status response indicating the success or failure of deleting each shared objects

Parameters

NameInRequiredTypeDescription
sharedObjectNamesqueryyesarray[string]Shared object names to delete

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
frominteger(int32)no
sizeinteger(int32)no
orderBystringno
ascendingbooleanno

Body format:

{
"from": 0,
"size": 0,
"orderBy": "string",
"ascending": true
}

Responses

StatusContent-TypeSchemaDescription
400Invalid request parameters
207application/jsonobjectServer failed to delete shared objects
200application/jsonobjectSuccessfully deleted shared objects

cURL example

curl -X DELETE 'http://localhost:1789/shared-objects/delete-by-names' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"from": 0,
"size": 0,
"orderBy": "string",
"ascending": true
}'

Delete shared objects by pattern

DELETE /shared-objects/delete-by-pattern

Deletes shared objects that match the specified name pattern. If no name pattern is provided, all shared objects will be selected. Returns a multi-status response indicating the success or failure of deleting each shared object

Parameters

NameInRequiredTypeDescription
namePatternquerynostringPattern to filter shared objects

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
frominteger(int32)no
sizeinteger(int32)no
orderBystringno
ascendingbooleanno

Body format:

{
"from": 0,
"size": 0,
"orderBy": "string",
"ascending": true
}

Responses

StatusContent-TypeSchemaDescription
207application/jsonobjectServer failed to delete shared objects
200application/jsonobjectSuccessfully deleted shared objects
400Invalid request parameters

cURL example

curl -X DELETE 'http://localhost:1789/shared-objects/delete-by-pattern' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"from": 0,
"size": 0,
"orderBy": "string",
"ascending": true
}'

Get shared objects by names

GET /shared-objects/search-by-names

Retrieves shared objects that match the list of specified shared object names

Parameters

NameInRequiredTypeDescription
sharedObjectNamesqueryyesarray[string]Shared object names to retrieve
mapIdquerynoobjectIdentifier of the map from which to retrieve shared objects
paginateParamsqueryyesobjectPagination parameters

Responses

StatusContent-TypeSchemaDescription
500Server failed to retrieve shared object
400Invalid request parameters
200application/jsonobjectSuccessfully retrieved shared object

cURL example

curl -X GET 'http://localhost:1789/shared-objects/search-by-names' \
-H 'Authorization: Bearer <token>' \

Get shared objects by pattern

GET /shared-objects/search-by-pattern

Retrieves shared objects that match the specified name pattern. If no name pattern is provided, all shared objects will be selected

Parameters

NameInRequiredTypeDescription
namePatternquerynostringPattern to filter shared objects
mapIdquerynoobjectIdentifier of the map from which to retrieve shared objects
paginateParamsqueryyesobjectPagination parameters

Responses

StatusContent-TypeSchemaDescription
400Invalid request parameters
500Server failed to update shared object
200application/jsonobjectSuccessfully retrieved shared object

cURL example

curl -X GET 'http://localhost:1789/shared-objects/search-by-pattern' \
-H 'Authorization: Bearer <token>' \

Delete a shared object

DELETE /shared-objects/{sharedObjectName}

Deletes a shared object from its name

Parameters

NameInRequiredTypeDescription
sharedObjectNamepathyesstringShared object name

Responses

StatusContent-TypeSchemaDescription
400Invalid request parameters
500Server failed to delete the shared object
200Successfully deleted the shared object
404Shared object not found

cURL example

curl -X DELETE 'http://localhost:1789/shared-objects/<sharedObjectName>' \
-H 'Authorization: Bearer <token>' \

Get specific shared object

GET /shared-objects/{sharedObjectName}

Retrieve one shared object configuration from its name

Parameters

NameInRequiredTypeDescription
sharedObjectNamepathyesstringShared object name

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectSuccessfully retrieved shared object
500Server failed to retrieve shared object
400Invalid request parameters
404Shared object not found

cURL example

curl -X GET 'http://localhost:1789/shared-objects/<sharedObjectName>' \
-H 'Authorization: Bearer <token>' \

Create a shared object

POST /shared-objects/{sharedObjectName}

Creates a shared object from its object configuration and a provided name

Parameters

NameInRequiredTypeDescription
sharedObjectNamepathyesstringShared object name

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
fieldsobjectno
classNamestringno
scopestringno
fullyConfiguredbooleanno
singletonbooleanno
objectNamestringno
objectConfigurationIdstringno
constructorArgumentsarray[object]no
fieldConfigurationTypestringno

Body format:

{
"fields": {},
"className": "string",
"scope": "MAP",
"fullyConfigured": true,
"singleton": true,
"objectName": "string",
"objectConfigurationId": "string",
"constructorArguments": [
{
"fieldConfigurationType": "Primitive"
}
],
"fieldConfigurationType": "Primitive"
}

Responses

StatusContent-TypeSchemaDescription
500Server failed to create shared object
400Invalid request parameters
201application/jsonobjectSuccessfully created shared object

cURL example

curl -X POST 'http://localhost:1789/shared-objects/<sharedObjectName>' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"fields": {},
"className": "string",
"scope": "MAP",
"fullyConfigured": true,
"singleton": true,
"objectName": "string",
"objectConfigurationId": "string",
"constructorArguments": [
{
"fieldConfigurationType": "Primitive"
}
],
"fieldConfigurationType": "Primitive"
}'

Update a shared object

PUT /shared-objects/{sharedObjectName}

Updates the configuration or the name of a shared object

Parameters

NameInRequiredTypeDescription
sharedObjectNamepathyesstringShared object name

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
fieldsobjectno
classNamestringno
scopestringno
fullyConfiguredbooleanno
singletonbooleanno
objectNamestringno
objectConfigurationIdstringno
constructorArgumentsarray[object]no
fieldConfigurationTypestringno

Body format:

{
"fields": {},
"className": "string",
"scope": "MAP",
"fullyConfigured": true,
"singleton": true,
"objectName": "string",
"objectConfigurationId": "string",
"constructorArguments": [
{
"fieldConfigurationType": "Primitive"
}
],
"fieldConfigurationType": "Primitive"
}

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectSuccessfully updated shared object
400Invalid request parameters
500Server failed to update shared object

cURL example

curl -X PUT 'http://localhost:1789/shared-objects/<sharedObjectName>' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"fields": {},
"className": "string",
"scope": "MAP",
"fullyConfigured": true,
"singleton": true,
"objectName": "string",
"objectConfigurationId": "string",
"constructorArguments": [
{
"fieldConfigurationType": "Primitive"
}
],
"fieldConfigurationType": "Primitive"
}'

User API

Endpoint for managing users

Delete all users

DELETE /users

Deletes all users

Parameters

NameInRequiredTypeDescription
Authorizationheaderyesstring

Request Body

Content-Type: application/json

Responses

StatusContent-TypeSchemaDescription
200Successfully created user

cURL example

curl -X DELETE 'http://localhost:1789/users' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '[
"string"
]'

Get number of users per role

GET /users/count-by-role

Retrieves the number of users for each role

Responses

StatusContent-TypeSchemaDescription
200Successfully found number of users

cURL example

curl -X GET 'http://localhost:1789/users/count-by-role' \
-H 'Authorization: Bearer <token>' \

Check if user exists

GET /users/does-user-exist/{userEmail}

Checks if a user with the given email exists

Parameters

NameInRequiredTypeDescription
userEmailpathyesstring

Responses

StatusContent-TypeSchemaDescription
200/booleanOK

cURL example

curl -X GET 'http://localhost:1789/users/does-user-exist/<userEmail>' \
-H 'Authorization: Bearer <token>' \

Update current user

PATCH /users/me

Updates information of the currently authenticated user

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
firstnamestringno
lastnamestringno
rolestringno

Body format:

{
"firstname": "string",
"lastname": "string",
"role": "USER"
}

Responses

StatusContent-TypeSchemaDescription
200Successfully updated user

cURL example

curl -X PATCH 'http://localhost:1789/users/me' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"firstname": "string",
"lastname": "string",
"role": "USER"
}'

Create a user or an admin

POST /users/register

Creates a user from its password, firstname, lastname and email. You cannot create super admin with this endpoint

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
passwordstringno
firstnamestringno
lastnamestringno
emailstringno
rolestringno

Body format:

{
"password": "string",
"firstname": "string",
"lastname": "string",
"email": "string",
"role": "USER"
}

Responses

StatusContent-TypeSchemaDescription
200Successfully created user
403User creation is restricted to a single user in the configuration
500Server failed to create user
409An account with this email already exists

cURL example

curl -X POST 'http://localhost:1789/users/register' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"password": "string",
"firstname": "string",
"lastname": "string",
"email": "string",
"role": "USER"
}'

Create a super admin

POST /users/register-super-admin

Creates a user from its password, firstname, lastname and email

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
passwordstringno
firstnamestringno
lastnamestringno
emailstringno
rolestringno

Body format:

{
"password": "string",
"firstname": "string",
"lastname": "string",
"email": "string",
"role": "USER"
}

Responses

StatusContent-TypeSchemaDescription
200Successfully created user
403User creation is restricted to a single user in the configuration
500Server failed to create user
409An account with this email already exists

cURL example

curl -X POST 'http://localhost:1789/users/register-super-admin' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"password": "string",
"firstname": "string",
"lastname": "string",
"email": "string",
"role": "USER"
}'

Register a worker

POST /users/register-worker

Creates a worker as member to allow broker communication

Parameters

NameInRequiredTypeDescription
X-Register-Tokenheaderyesstring

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
passwordstringno
firstnamestringno
lastnamestringno
emailstringno
rolestringno

Body format:

{
"password": "string",
"firstname": "string",
"lastname": "string",
"email": "string",
"role": "USER"
}

Responses

StatusContent-TypeSchemaDescription
200Successfully created user
403User creation is restricted to a single user in the configuration
500Server failed to create user
409An account with this email already exists

cURL example

curl -X POST 'http://localhost:1789/users/register-worker' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"password": "string",
"firstname": "string",
"lastname": "string",
"email": "string",
"role": "USER"
}'

getUsersByPattern

GET /users/search-by-pattern

Parameters

NameInRequiredTypeDescription
namePatternquerynostring
paginateParamsqueryyesobject

Responses

StatusContent-TypeSchemaDescription
200/objectOK

cURL example

curl -X GET 'http://localhost:1789/users/search-by-pattern' \
-H 'Authorization: Bearer <token>' \

Check admin existence

GET /users/super-admin-exists

Checks if super admin is registered

Responses

StatusContent-TypeSchemaDescription
200Successfully found admin

cURL example

curl -X GET 'http://localhost:1789/users/super-admin-exists' \
-H 'Authorization: Bearer <token>' \

Delete a user

DELETE /users/{userEmail}

Deletes a user from its email

Parameters

NameInRequiredTypeDescription
userEmailpathyesstring

Responses

StatusContent-TypeSchemaDescription
200Successfully deleted user

cURL example

curl -X DELETE 'http://localhost:1789/users/<userEmail>' \
-H 'Authorization: Bearer <token>' \

Get a user

GET /users/{userEmail}

Retrieves user information from its email

Parameters

NameInRequiredTypeDescription
userEmailpathyesstring

Responses

StatusContent-TypeSchemaDescription
200Successfully retrieved user

cURL example

curl -X GET 'http://localhost:1789/users/<userEmail>' \
-H 'Authorization: Bearer <token>' \

Update another user

PATCH /users/{userEmail}

Admin updates any user's information

Parameters

NameInRequiredTypeDescription
userEmailpathyesstring

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
firstnamestringno
lastnamestringno
rolestringno

Body format:

{
"firstname": "string",
"lastname": "string",
"role": "USER"
}

Responses

StatusContent-TypeSchemaDescription
200Successfully updated user

cURL example

curl -X PATCH 'http://localhost:1789/users/<userEmail>' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"firstname": "string",
"lastname": "string",
"role": "USER"
}'

Worker API

API for managing workers

deleteWorkers

DELETE /workers

Parameters

NameInRequiredTypeDescription
workerIdsquerynoarray[object]

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X DELETE 'http://localhost:1789/workers' \
-H 'Authorization: Bearer <token>' \

getWorkers

GET /workers

Parameters

NameInRequiredTypeDescription
workerIdsquerynoarray[object]
paginateParamsqueryyesobject

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X GET 'http://localhost:1789/workers' \
-H 'Authorization: Bearer <token>' \

spawnWorker

POST /workers

Responses

StatusContent-TypeSchemaDescription
200OK

cURL example

curl -X POST 'http://localhost:1789/workers' \
-H 'Authorization: Bearer <token>' \

getLibraries

GET /workers/libraries

Parameters

NameInRequiredTypeDescription
paginateParamsqueryyesobject

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X GET 'http://localhost:1789/workers/libraries' \
-H 'Authorization: Bearer <token>' \

getLibraryVersions

GET /workers/library-versions/{libraryName}

Parameters

NameInRequiredTypeDescription
libraryNamepathyesstring

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X GET 'http://localhost:1789/workers/library-versions/<libraryName>' \
-H 'Authorization: Bearer <token>' \

restartWorkers

POST /workers/restart

Parameters

NameInRequiredTypeDescription
workerIdsquerynoarray[object]

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X POST 'http://localhost:1789/workers/restart' \
-H 'Authorization: Bearer <token>' \

restartWorkerById

POST /workers/restart/{workerId}

Parameters

NameInRequiredTypeDescription
workerIdpathyesobject

Responses

StatusContent-TypeSchemaDescription
200OK

cURL example

curl -X POST 'http://localhost:1789/workers/restart/<workerId>' \
-H 'Authorization: Bearer <token>' \

uploadLibrary

POST /workers/upload-library

Request Body

Content-Type: multipart/form-data

FieldTypeRequiredDescription
filestring(binary)yes

Body format:

{
"file": "string"
}

Responses

StatusContent-TypeSchemaDescription
200OK

cURL example

curl -X POST 'http://localhost:1789/workers/upload-library' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: multipart/form-data' \
-d '{
"file": "string"
}'

deleteWorkerById

DELETE /workers/{workerId}

Parameters

NameInRequiredTypeDescription
workerIdpathyesobject

Responses

StatusContent-TypeSchemaDescription
200OK

cURL example

curl -X DELETE 'http://localhost:1789/workers/<workerId>' \
-H 'Authorization: Bearer <token>' \

getWorkerById

GET /workers/{workerId}

Parameters

NameInRequiredTypeDescription
workerIdpathyesobject

Responses

StatusContent-TypeSchemaDescription
200application/jsonobjectOK

cURL example

curl -X GET 'http://localhost:1789/workers/<workerId>' \
-H 'Authorization: Bearer <token>' \

getWorkerLogs

GET /workers/{workerId}/logs

Parameters

NameInRequiredTypeDescription
workerIdpathyesobject
resultsquerynointeger(int32)

Responses

StatusContent-TypeSchemaDescription
200application/jsonarray[object]OK

cURL example

curl -X GET 'http://localhost:1789/workers/<workerId>/logs' \
-H 'Authorization: Bearer <token>' \