This OpenAPI spec documents the mittwald API. It follows the OpenAPI 3.0.0 specification.
You will need an API token to access the API. You can obtain one by logging into the mStudio and navigating to the "API Tokens" section in the user menu.
When making requests to the API, you can authenticate by passing your API token in the X-Access-Token
header or as a
bearer token.
Please note that usage of the API is rate-limited to prevent abuse. You can inspect the rate limiting for your current
user by observing the X-Ratelimit-*
headers included in each response.
A main consumer of the mittwald API is the management interface for our customers, the mStudio.
For support, please use the mStudio support area or drop us an email at support@mittwald.de.
For security issues, please report to security@mittwald.de.
The project API allows you to manage your projects, and also any kinds of user memberships concerning these projects.
Accept a ProjectInvite.
Authorizations:
path Parameters
inviteId required | string <uuid> ID of the ProjectInvite to be accepted. |
Request Body schema: application/json
invitationToken | string Token contained in the invite for authentication. |
Responses
Request samples
- Payload
{- "invitationToken": "string"
}
Response samples
- 400
- 403
- 412
- default
{- "type": "ValidationError",
- "message": "Validation failed",
- "validationErrors": [
- {
- "message": "should be string",
- "path": ".address.street",
- "type": "format",
- "context": {
- "format": "email"
}
}
]
}
Create a ProjectInvite.
Authorizations:
path Parameters
projectId required | string <uuid> ID of the Project to create a ProjectInvite for. |
Request Body schema: application/json
mailAddress required | string <email> Mail-address of the person to be invited. |
membershipExpiresAt | string <date-time> Time the resulting ProjectMembership should expire at. |
message | string Message contained in the ProjectInvite. |
role required | string (de.mittwald.v1.membership.ProjectRoles) Enum: "notset" "owner" "emailadmin" "external" |
Responses
Request samples
- Payload
{- "mailAddress": "user@example.com",
- "membershipExpiresAt": "2019-08-24T14:15:22Z",
- "message": "string",
- "role": "notset"
}
Response samples
- 201
- 400
- 409
- default
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "information": {
- "invitationToken": "string",
- "invitedBy": "9803bd85-1570-4d91-99f5-3a4d18ccfff0",
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b"
}, - "mailAddress": "user@example.com",
- "membershipExpiresAt": "2019-08-24T14:15:22Z",
- "message": "string",
- "projectDescription": "string",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "role": "notset"
}
Create a Project belonging to a Server.
Authorizations:
path Parameters
serverId required | string <uuid> ID of the Server to create the Project for. |
Request Body schema: application/json
description required | string Name of the Project as it is displayed in the mStudio. |
Responses
Request samples
- Payload
{- "description": "My first Project!"
}
Response samples
- 201
- 400
- 412
- default
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
Decline a ProjectInvite.
Authorizations:
path Parameters
inviteId required | string <uuid> ID of the ProjectInvite to be declined. |
Request Body schema: application/json
Responses
Request samples
- Payload
null
Response samples
- default
{- "message": "Something went wrong",
- "type": "InternalServerError"
}
Delete a Project's avatar.
Authorizations:
path Parameters
projectId required | string <uuid> ID of the Project the avatar should be deleted for. |
Responses
Response samples
- 400
- default
{- "type": "ValidationError",
- "message": "Validation failed",
- "validationErrors": [
- {
- "message": "should be string",
- "path": ".address.street",
- "type": "format",
- "context": {
- "format": "email"
}
}
]
}
Request a Project avatar upload.
Authorizations:
path Parameters
projectId required | string <uuid> ID of the Project you want to request an avatar upload for. |
Responses
Response samples
- 200
- 400
- default
{- "refId": "639293c5-5581-48d7-94b9-83aceaff93f8",
- "rules": {
- "maxSizeInKB": 3000,
- "mimeTypes": [
- "image/jpeg",
- "image/png"
], - "properties": {
- "imageDimensions": {
- "max": {
- "height": 0,
- "width": 0
}, - "min": {
- "height": 0,
- "width": 0
}
}
}
}
}
Get a ProjectInvite.
Authorizations:
path Parameters
inviteId required | string ID of the ProjectInvite to be retrieved. |
Responses
Response samples
- 200
- 404
- default
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "information": {
- "invitationToken": "string",
- "invitedBy": "9803bd85-1570-4d91-99f5-3a4d18ccfff0",
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b"
}, - "mailAddress": "user@example.com",
- "membershipExpiresAt": "2019-08-24T14:15:22Z",
- "message": "string",
- "projectDescription": "string",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "role": "notset"
}
Get a ProjectMembership
Authorizations:
path Parameters
membershipId required | string ID of the ProjectMembership to be retrieved. |
Responses
Response samples
- 200
- 404
- default
{- "expiresAt": "2019-08-24T14:15:22Z",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "inherited": true,
- "inviteId": "14ca54c2-5d85-4c93-81b5-495a2e7e0ca4",
- "memberSince": "2019-08-24T14:15:22Z",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "role": "notset",
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b"
}
Update a ProjectMembership.
Authorizations:
path Parameters
membershipId required | string <uuid> ID of the ProjectMembership to be updated. |
Request Body schema: application/json
expiresAt | string <date-time> Time the ProjectMembership should expire at. |
role required | string (de.mittwald.v1.membership.ProjectRoles) Enum: "notset" "owner" "emailadmin" "external" |
Responses
Request samples
- Payload
{- "expiresAt": "2019-08-24T14:15:22Z",
- "role": "notset"
}
Response samples
- default
{- "message": "Something went wrong",
- "type": "InternalServerError"
}
Delete a Server's avatar.
Authorizations:
path Parameters
serverId required | string <uuid> ID of the Server to delete the avatar for. |
Responses
Response samples
- 400
- default
{- "type": "ValidationError",
- "message": "Validation failed",
- "validationErrors": [
- {
- "message": "should be string",
- "path": ".address.street",
- "type": "format",
- "context": {
- "format": "email"
}
}
]
}
Request a Server avatar upload.
Authorizations:
path Parameters
serverId required | string <uuid> ID of the Server to request an avatar upload for. |
Responses
Response samples
- 200
- 400
- default
{- "refId": "639293c5-5581-48d7-94b9-83aceaff93f8",
- "rules": {
- "maxSizeInKB": 3000,
- "mimeTypes": [
- "image/jpeg",
- "image/png"
], - "properties": {
- "imageDimensions": {
- "max": {
- "height": 0,
- "width": 0
}, - "min": {
- "height": 0,
- "width": 0
}
}
}
}
}
Get a ProjectInvite by token.
Authorizations:
header Parameters
token required | string Token of the ProjectInvite to be retrieved. |
Responses
Response samples
- 200
- 404
- default
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "information": {
- "invitationToken": "string",
- "invitedBy": "9803bd85-1570-4d91-99f5-3a4d18ccfff0",
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b"
}, - "mailAddress": "user@example.com",
- "membershipExpiresAt": "2019-08-24T14:15:22Z",
- "message": "string",
- "projectDescription": "string",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "role": "notset"
}
Get a Project.
Authorizations:
path Parameters
id required | string <uuid> ID of the Project to be retrieved. |
Responses
Response samples
- 200
- 404
- default
{- "clusterDomain": "project.host",
- "clusterID": "espelkamp",
- "createdAt": "2019-08-24T14:15:22Z",
- "customerId": "f282f1a8-2b15-4b08-9850-6788e3b20136",
- "description": "My first Project!",
- "directories": {
- "Home": "/home/p-4e7tz3"
}, - "disableReason": "maliciousCode",
- "enabled": true,
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "imageRefId": "5d454fad-a07d-467d-829e-f074a16fea81",
- "isReady": true,
- "projectHostingId": "a25de6de-e6a3-424e-8829-dfb88b552281",
- "readiness": "creating",
- "serverId": "10d2345a-e43d-463d-830e-4f5b19b60d41",
- "serverShortId": "string",
- "shortId": "s-4e7tz3",
- "spec": {
- "storage": "string",
- "visitors": 0
}, - "statisticsBaseDomain": "pe-prod.staging.mcloud.services"
}
Get the executing user's membership in a Project.
Authorizations:
path Parameters
projectId required | string ID of the Project to get the membership for. |
Responses
Response samples
- 200
- 404
- default
{- "expiresAt": "2019-08-24T14:15:22Z",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "inherited": true,
- "inviteId": "14ca54c2-5d85-4c93-81b5-495a2e7e0ca4",
- "memberSince": "2019-08-24T14:15:22Z",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "role": "notset",
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b"
}
Get a Server.
Authorizations:
path Parameters
serverId required | string ID of the Server to be retrieved. |
Responses
Response samples
- 200
- 404
- default
{- "clusterName": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "customerId": "673c107f-75e1-451c-8eaa-5bf101bd2b2c",
- "description": "My first Server!",
- "disabledReason": "suspended",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "imageRefId": "5d454fad-a07d-467d-829e-f074a16fea81",
- "isReady": true,
- "machineType": {
- "cpu": "2",
- "memory": "4Gi",
- "name": "shared.large"
}, - "readiness": "creating",
- "shortId": "s-4e7tz3",
- "statisticsBaseDomain": "pe-prod.staging.mcloud.services",
- "storage": "50Gi"
}
Leave a Project.
Authorizations:
path Parameters
projectId required | string <uuid> ID of the Project to be left. |
Request Body schema: application/json
Responses
Request samples
- Payload
null
Response samples
- default
{- "message": "Something went wrong",
- "type": "InternalServerError"
}
List Invites belonging to a Project.
Authorizations:
path Parameters
projectId required | string ID of the Project to list invites for. |
query Parameters
limit | integer |
skip | integer |
Responses
Response samples
- 200
- 404
- default
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "information": {
- "invitationToken": "string",
- "invitedBy": "9803bd85-1570-4d91-99f5-3a4d18ccfff0",
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b"
}, - "mailAddress": "user@example.com",
- "membershipExpiresAt": "2019-08-24T14:15:22Z",
- "message": "string",
- "projectDescription": "string",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "role": "notset"
}
]
List Memberships belonging to a Project.
Authorizations:
path Parameters
projectId required | string ID of the Project to list memberships for. |
query Parameters
limit | integer |
skip | integer |
Responses
Response samples
- 200
- 404
- default
[- {
- "expiresAt": "2019-08-24T14:15:22Z",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "inherited": true,
- "inviteId": "14ca54c2-5d85-4c93-81b5-495a2e7e0ca4",
- "memberSince": "2019-08-24T14:15:22Z",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "role": "notset",
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b"
}
]
List ProjectInvites belonging to the executing user.
Authorizations:
query Parameters
limit | integer |
skip | integer |
Responses
Response samples
- 200
- 404
- default
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "information": {
- "invitationToken": "string",
- "invitedBy": "9803bd85-1570-4d91-99f5-3a4d18ccfff0",
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b"
}, - "mailAddress": "user@example.com",
- "membershipExpiresAt": "2019-08-24T14:15:22Z",
- "message": "string",
- "projectDescription": "string",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "role": "notset"
}
]
List ProjectMemberships belonging to the executing user.
Authorizations:
query Parameters
limit | integer |
skip | integer |
Responses
Response samples
- 200
- 404
- default
[- {
- "expiresAt": "2019-08-24T14:15:22Z",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "inherited": true,
- "inviteId": "14ca54c2-5d85-4c93-81b5-495a2e7e0ca4",
- "memberSince": "2019-08-24T14:15:22Z",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "role": "notset",
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b"
}
]
List Projects belonging to the executing user.
Authorizations:
query Parameters
customerId | string Example: customerId=15b8a787-8d46-43b0-907e-01af35032c0a ID of the Organization to list Projects for. |
serverId | string <uuid> ID of the Server to list Projects for. |
Responses
Response samples
- 200
- 400
- default
[- {
- "createdAt": "2019-08-24T14:15:22Z",
- "customerId": "string",
- "customerMeta": {
- "id": "string"
}, - "description": "string",
- "disableReason": "maliciousCode",
- "enabled": true,
- "id": "string",
- "imageRefId": "string",
- "isReady": true,
- "projectHostingId": "a25de6de-e6a3-424e-8829-dfb88b552281",
- "readiness": "creating",
- "serverId": "string",
- "shortId": "string"
}
]
List Servers belonging to the executing user.
Authorizations:
query Parameters
customerId | string ID of the Organization to list PlacementGroups for. If no ID is provided, the ID of the executing User is used instead. |
limit | integer >= 0 |
page | integer >= 0 |
skip | integer >= 0 |
Responses
Response samples
- 200
- 403
- default
[- {
- "clusterName": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "customerId": "673c107f-75e1-451c-8eaa-5bf101bd2b2c",
- "description": "My first Server!",
- "disabledReason": "suspended",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "imageRefId": "5d454fad-a07d-467d-829e-f074a16fea81",
- "isReady": true,
- "machineType": {
- "cpu": "2",
- "memory": "4Gi",
- "name": "shared.large"
}, - "readiness": "creating",
- "shortId": "s-4e7tz3",
- "statisticsBaseDomain": "pe-prod.staging.mcloud.services",
- "storage": "50Gi"
}
]
Resend the mail for a ProjectInvite.
Authorizations:
path Parameters
inviteId required | string <uuid> ID of the ProjectInvite to resend the mail for. |
Request Body schema: application/json
Responses
Request samples
- Payload
null
Response samples
- 403
- default
{- "message": "Something went wrong",
- "type": "InternalServerError"
}
Update a Project's description.
Authorizations:
path Parameters
id required | string <uuid> ID of the Project to update the description for. |
Request Body schema: application/json
description required | string |
Responses
Request samples
- Payload
{- "description": "My new description!"
}
Response samples
- 400
- 404
- default
{- "type": "ValidationError",
- "message": "Validation failed",
- "validationErrors": [
- {
- "message": "should be string",
- "path": ".address.street",
- "type": "format",
- "context": {
- "format": "email"
}
}
]
}
Update a Servers's description.
Authorizations:
path Parameters
serverId required | string <uuid> ID of the Server to update the description of. |
Request Body schema: application/json
description required | string |
Responses
Request samples
- Payload
{- "description": "My first Server!"
}
Response samples
- 400
{- "type": "ValidationError",
- "message": "Validation failed",
- "validationErrors": [
- {
- "message": "should be string",
- "path": ".address.street",
- "type": "format",
- "context": {
- "format": "email"
}
}
]
}
Export a ProjectBackup for download.
Authorizations:
path Parameters
projectBackupId required | string <uuid> ID of the ProjectBackup to export. |
Request Body schema: application/json
format required | string Enum: "tar" "zip" The desired format to export the ProjectBackup in. |
password | string Password to use to protect the archive. |
Responses
Request samples
- Payload
{- "format": "tar",
- "password": "password"
}
Response samples
- 400
- 403
- 404
- default
{- "type": "ValidationError",
- "message": "Validation failed",
- "validationErrors": [
- {
- "message": "should be string",
- "path": ".address.street",
- "type": "format",
- "context": {
- "format": "email"
}
}
]
}
Delete a ProjectBackupExport.
Authorizations:
path Parameters
projectBackupId required | string <uuid> ID if the ProjectBackup to delete the export of. |
Responses
Response samples
- 403
- 404
- default
{- "message": "Something went wrong",
- "type": "InternalServerError"
}
Create a BackupSchedule for a Project.
Authorizations:
path Parameters
projectId required | string <uuid> ID of the Project to create a BackupSchedule for. |
Request Body schema: application/json
description | string Description of the BackupSchedule. |
schedule required | string Execution schedule in crontab notation. |
ttl required | string TTL of the BackupSchedule as time string. |
Responses
Request samples
- Payload
{- "description": "string",
- "schedule": "5 4 * * *",
- "ttl": "7d"
}
Response samples
- 201
- 400
- 404
- default
{- "createdAt": "2019-08-24T14:15:22Z",
- "description": "I'm a ProjectBackupSchedule",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "isSystemBackup": true,
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "schedule": "5 4 * * *",
- "ttl": "7d",
- "updatedAt": "2019-08-24T14:15:22Z"
}
List BackupSchedules belonging to a Project.
Authorizations:
path Parameters
projectId required | string <uuid> ID of the Project to list BackupSchedules for. |
Responses
Response samples
- 200
- default
[- {
- "createdAt": "2019-08-24T14:15:22Z",
- "description": "I'm a ProjectBackupSchedule",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "isSystemBackup": true,
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "schedule": "5 4 * * *",
- "ttl": "7d",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
Create a Backup of a Project.
Authorizations:
path Parameters
projectId required | string <uuid> ID of the project to create a Backup for. |
Request Body schema: application/json
description | string Description of the Backup. |
expirationTime required | string <date-time> Time when to expire the Backup. |
Responses
Request samples
- Payload
{- "description": "I'm a ProjectBackup",
- "expirationTime": "2019-08-24T14:15:22Z"
}
Response samples
- 201
- 400
- 404
- default
{- "createdAt": "2019-08-24T14:15:22Z",
- "deletable": true,
- "description": "I'm a ProjectBackup",
- "expiresAt": "2019-08-24T14:15:22Z",
- "export": {
- "downloadURL": "string",
- "expiresAt": "2019-08-24T14:15:22Z",
- "format": "tar",
- "phase": "Completed",
- "withPassword": true
}, - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "parentId": "70850378-7d3c-4f45-91b7-942d4dfbbd43",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "status": "Completed"
}
List Backups belonging to a Project.
Authorizations:
path Parameters
projectId required | string <uuid> ID of the Project to get Backups for. |
Responses
Response samples
- 200
- default
[- {
- "createdAt": "2019-08-24T14:15:22Z",
- "deletable": true,
- "description": "I'm a ProjectBackup",
- "expiresAt": "2019-08-24T14:15:22Z",
- "export": {
- "downloadURL": "string",
- "expiresAt": "2019-08-24T14:15:22Z",
- "format": "tar",
- "phase": "Completed",
- "withPassword": true
}, - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "parentId": "70850378-7d3c-4f45-91b7-942d4dfbbd43",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "status": "Completed"
}
]
Delete a ProjectBackupSchedule.
Authorizations:
path Parameters
projectBackupScheduleId required | string <uuid> ID of the ProjectBackupSchedule to delete. |
Responses
Response samples
- 403
- 404
- default
{- "message": "Something went wrong",
- "type": "InternalServerError"
}
Get a ProjectBackupSchedule.
Authorizations:
path Parameters
projectBackupScheduleId required | string <uuid> ID of the ProjectBackupSchedule to retrieve. |
Responses
Response samples
- 200
- 403
- 404
- default
{- "createdAt": "2019-08-24T14:15:22Z",
- "description": "I'm a ProjectBackupSchedule",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "isSystemBackup": true,
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "schedule": "5 4 * * *",
- "ttl": "7d",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Update a ProjectBackupSchedule.
Authorizations:
path Parameters
projectBackupScheduleId required | string <uuid> ID of the ProjectBackupSchedule to be updated. |
Request Body schema: application/json
description | string Description of the ProjectBackupSchedule. Note that the description of isSystemBackup true items cannot be changed. |
schedule | string Execution schedule in crontab notation. Note that the schedule of isSystemBackup true items must be daily once. |
ttl | string TTL of the ProjectBackupSchedule as time string. |
Responses
Request samples
- Payload
{- "description": "I'm a ProjectBackupSchedule",
- "schedule": "5 4 * * *",
- "ttl": "7d"
}
Response samples
- 400
- 404
- 412
- default
{- "type": "ValidationError",
- "message": "Validation failed",
- "validationErrors": [
- {
- "message": "should be string",
- "path": ".address.street",
- "type": "format",
- "context": {
- "format": "email"
}
}
]
}
Get a ProjectBackup.
Authorizations:
path Parameters
projectBackupId required | string <uuid> ID of the ProjectBackup to retrieve. |
Responses
Response samples
- 200
- 403
- 404
- default
{- "createdAt": "2019-08-24T14:15:22Z",
- "deletable": true,
- "description": "I'm a ProjectBackup",
- "expiresAt": "2019-08-24T14:15:22Z",
- "export": {
- "downloadURL": "string",
- "expiresAt": "2019-08-24T14:15:22Z",
- "format": "tar",
- "phase": "Completed",
- "withPassword": true
}, - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "parentId": "70850378-7d3c-4f45-91b7-942d4dfbbd43",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "status": "Completed"
}
Change the description of a ProjectBackup.
Authorizations:
path Parameters
projectBackupId required | string <uuid> ID of the ProjectBackup to change the description of. |
Request Body schema: application/json
description | string Description of the ProjectBackup. |
Responses
Request samples
- Payload
{- "description": "I'm a ProjectBackup"
}
Response samples
- 400
- 403
- 404
- default
{- "type": "ValidationError",
- "message": "Validation failed",
- "validationErrors": [
- {
- "message": "should be string",
- "path": ".address.street",
- "type": "format",
- "context": {
- "format": "email"
}
}
]
}
Create an SFTPUser for a Project.
Authorizations:
path Parameters
projectId required | string ID of the Project to create an SFTPUser for. |
Request Body schema: application/json
accessLevel | string Enum: "read" "full" |
required | object or object (de.mittwald.v1.sshuser.Authentication) Method of authentication for an SFTPUser or SSHUser. Can be password or public-keys. |
description required | string |
directories required | Array of strings non-empty |
expiresAt | string <date-time> |
Responses
Request samples
- Payload
{- "accessLevel": "read",
- "authentication": {
- "password": "string"
}, - "description": "string",
- "directories": [
- "string"
], - "expiresAt": "2019-08-24T14:15:22Z"
}
Response samples
- 201
- 400
- default
{- "accessLevel": "full",
- "active": true,
- "authUpdatedAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "description": "string",
- "directories": [
- "string"
], - "expiresAt": "2019-08-24T14:15:22Z",
- "hasPassword": true,
- "id": "string",
- "projectId": "string",
- "publicKeys": [
- {
- "comment": "string",
- "key": "string"
}
], - "updatedAt": "2019-08-24T14:15:22Z",
- "userName": "string"
}
Get all SFTPUsers for a Project.
Authorizations:
path Parameters
projectId required | string ID of the Project to request SFTPUsers for. |
query Parameters
limit | integer |
skip | integer |
Responses
Response samples
- 200
- 404
- default
[- {
- "accessLevel": "full",
- "active": true,
- "authUpdatedAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "description": "string",
- "directories": [
- "string"
], - "expiresAt": "2019-08-24T14:15:22Z",
- "hasPassword": true,
- "id": "string",
- "projectId": "string",
- "publicKeys": [
- {
- "comment": "string",
- "key": "string"
}
], - "updatedAt": "2019-08-24T14:15:22Z",
- "userName": "string"
}
]
Get an SFTPUser.
Authorizations:
path Parameters
sftpUserId required | string ID of the SFTPUser to get. |
Responses
Response samples
- 200
- 404
- default
{- "accessLevel": "full",
- "active": true,
- "authUpdatedAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "description": "string",
- "directories": [
- "string"
], - "expiresAt": "2019-08-24T14:15:22Z",
- "hasPassword": true,
- "id": "string",
- "projectId": "string",
- "publicKeys": [
- {
- "comment": "string",
- "key": "string"
}
], - "updatedAt": "2019-08-24T14:15:22Z",
- "userName": "string"
}
Update an SFTPUser.
Authorizations:
path Parameters
sftpUserId required | string ID of the SFTPUser to be updated. |
Request Body schema: application/json
accessLevel | string Enum: "read" "full" |
active | boolean |
description | string |
directories | Array of strings non-empty |
expiresAt | string <date-time> |
password | string |
Array of objects (de.mittwald.v1.sshuser.PublicKey) |
Responses
Request samples
- Payload
{- "accessLevel": "read",
- "active": true,
- "description": "string",
- "directories": [
- "string"
], - "expiresAt": "2019-08-24T14:15:22Z",
- "password": "string",
- "publicKeys": [
- {
- "comment": "string",
- "key": "string"
}
]
}
Response samples
- 400
- default
{- "type": "ValidationError",
- "message": "Validation failed",
- "validationErrors": [
- {
- "message": "should be string",
- "path": ".address.street",
- "type": "format",
- "context": {
- "format": "email"
}
}
]
}
Create an SSHUser for a Project.
Authorizations:
path Parameters
projectId required | string ID of the Project to create an SSHUser for. |
Request Body schema: application/json
required | object or object (de.mittwald.v1.sshuser.Authentication) Method of authentication for an SFTPUser or SSHUser. Can be password or public-keys. |
description required | string |
expiresAt | string <date-time> |
Responses
Request samples
- Payload
{- "authentication": {
- "password": "string"
}, - "description": "string",
- "expiresAt": "2019-08-24T14:15:22Z"
}
Response samples
- 201
- 400
- default
{- "active": true,
- "authUpdatedAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "description": "string",
- "expiresAt": "2019-08-24T14:15:22Z",
- "hasPassword": true,
- "id": "string",
- "projectId": "string",
- "publicKeys": [
- {
- "comment": "string",
- "key": "string"
}
], - "updatedAt": "2019-08-24T14:15:22Z",
- "userName": "string"
}
Get all SSHUsers for a Project.
Authorizations:
path Parameters
projectId required | string ID of the Project to retrieve SSHUsers for. |
query Parameters
limit | integer |
skip | integer |
Responses
Response samples
- 200
- 404
- default
[- {
- "active": true,
- "authUpdatedAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "description": "string",
- "expiresAt": "2019-08-24T14:15:22Z",
- "hasPassword": true,
- "id": "string",
- "projectId": "string",
- "publicKeys": [
- {
- "comment": "string",
- "key": "string"
}
], - "updatedAt": "2019-08-24T14:15:22Z",
- "userName": "string"
}
]
Get an SSHUser.
Authorizations:
path Parameters
sshUserId required | string ID of the SSHUser to be retrieved. |
Responses
Response samples
- 200
- 404
- default
{- "active": true,
- "authUpdatedAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "description": "string",
- "expiresAt": "2019-08-24T14:15:22Z",
- "hasPassword": true,
- "id": "string",
- "projectId": "string",
- "publicKeys": [
- {
- "comment": "string",
- "key": "string"
}
], - "updatedAt": "2019-08-24T14:15:22Z",
- "userName": "string"
}
Update an SSHUser.
Authorizations:
path Parameters
sshUserId required | string ID of the SSHUser to be updated. |
Request Body schema: application/json
active | boolean |
description | string |
expiresAt | string <date-time> |
password | string |
Array of objects (de.mittwald.v1.sshuser.PublicKey) |
Responses
Request samples
- Payload
{- "active": true,
- "description": "string",
- "expiresAt": "2019-08-24T14:15:22Z",
- "password": "string",
- "publicKeys": [
- {
- "comment": "string",
- "key": "string"
}
]
}
Response samples
- 400
- default
{- "type": "ValidationError",
- "message": "Validation failed",
- "validationErrors": [
- {
- "message": "should be string",
- "path": ".address.street",
- "type": "format",
- "context": {
- "format": "email"
}
}
]
}
Abort a CronjobExecution.
Authorizations:
path Parameters
cronjobId required | string <uuid> ID of the CronjobExecution to be aborted. |
executionId required | string Example: cron-bd26li-28027320 |
Request Body schema: application/json
Responses
Request samples
- Payload
null
Response samples
- 200
- 404
- default
{ }
Create a Cronjob.
Authorizations:
path Parameters
projectId required | string <uuid> ID of the Project you want to create a Cronjob for. |
Request Body schema: application/json
cronjob
active required | boolean |
appId required | string <uuid> |
description required | string |
required | de.mittwald.v1.cronjob.CronjobUrl (object) or de.mittwald.v1.cronjob.CronjobCommand (object) |
string <email> | |
interval required | string |
Responses
Request samples
- Payload
{- "active": true,
- "appId": "28c365d5-df94-4a54-8217-3ce51d068868",
- "description": "i am a cronjob",
- "email": "user@example.com",
- "interval": "*/5 * * * *"
}
Response samples
- 201
- 400
- 412
- default
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
List Cronjobs belonging to a Project.
Authorizations:
path Parameters
projectId required | string <uuid> ID of the Project for which to list Cronjobs for. |
query Parameters
limit | integer >= 0 |
skip | integer >= 0 |
page | integer >= 0 |
Responses
Response samples
- 200
- default
[- {
- "active": true,
- "appId": "28c365d5-df94-4a54-8217-3ce51d068868",
- "createdAt": "2019-08-24T14:15:22Z",
- "description": "i am a cronjob",
- "email": "user@example.com",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "interval": "*/5 * * * *",
- "latestExecution": {
- "abortedBy": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}, - "durationInMilliseconds": 12374,
- "end": "2019-08-24T14:15:22Z",
- "executionEnd": "2019-08-24T14:15:22Z",
- "executionStart": "2019-08-24T14:15:22Z",
- "id": "cron-bd26li-28027320",
- "logPath": "/var/log/cronjobs/cron-bd26li-28027320.log",
- "start": "2019-08-24T14:15:22Z",
- "status": "Complete",
- "successful": true,
- "triggeredBy": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
}, - "nextExecutionTime": "2019-08-24T14:15:22Z",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "shortId": "cron-bd26li",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
Trigger a Cronjob.
Authorizations:
path Parameters
cronjobId required | string <uuid> ID of the Cronjob to trigger. |
Request Body schema: application/json
Responses
Request samples
- Payload
null
Response samples
- 201
- 404
- 412
- default
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
List CronjobExecutions belonging to a Cronjob.
Authorizations:
path Parameters
cronjobId required | string <uuid> ID of the Cronjob for which to list CronjobExecutions for. |
query Parameters
limit | integer >= 0 |
skip | integer >= 0 |
page | integer >= 0 |
since | string <date-time> |
until | string <date-time> |
status | string Example: status=Complete |
Responses
Response samples
- 200
- default
[- {
- "abortedBy": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}, - "durationInMilliseconds": 12374,
- "end": "2019-08-24T14:15:22Z",
- "executionEnd": "2019-08-24T14:15:22Z",
- "executionStart": "2019-08-24T14:15:22Z",
- "id": "cron-bd26li-28027320",
- "logPath": "/var/log/cronjobs/cron-bd26li-28027320.log",
- "start": "2019-08-24T14:15:22Z",
- "status": "Complete",
- "successful": true,
- "triggeredBy": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
}
]
Delete a Cronjob.
Authorizations:
path Parameters
cronjobId required | string <uuid> ID of the Cronjob to delete. |
Responses
Response samples
- 400
- 412
- default
{- "type": "ValidationError",
- "message": "Validation failed",
- "validationErrors": [
- {
- "message": "should be string",
- "path": ".address.street",
- "type": "format",
- "context": {
- "format": "email"
}
}
]
}
Get a Cronjob.
Authorizations:
path Parameters
cronjobId required | string <uuid> ID of the Cronjob to be retrieved. |
Responses
Response samples
- 200
- 404
- default
{- "active": true,
- "appId": "28c365d5-df94-4a54-8217-3ce51d068868",
- "createdAt": "2019-08-24T14:15:22Z",
- "description": "i am a cronjob",
- "email": "user@example.com",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "interval": "*/5 * * * *",
- "latestExecution": {
- "abortedBy": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}, - "durationInMilliseconds": 12374,
- "end": "2019-08-24T14:15:22Z",
- "executionEnd": "2019-08-24T14:15:22Z",
- "executionStart": "2019-08-24T14:15:22Z",
- "id": "cron-bd26li-28027320",
- "logPath": "/var/log/cronjobs/cron-bd26li-28027320.log",
- "start": "2019-08-24T14:15:22Z",
- "status": "Complete",
- "successful": true,
- "triggeredBy": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
}, - "nextExecutionTime": "2019-08-24T14:15:22Z",
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "shortId": "cron-bd26li",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Update a Cronjob.
Authorizations:
path Parameters
cronjobId required | string <uuid> ID of the Cronjob to be updated. |
Request Body schema: application/json
active | boolean |
description | string |
de.mittwald.v1.cronjob.CronjobUrl (object) or de.mittwald.v1.cronjob.CronjobCommand (object) | |
string <email> | |
interval | string |
Responses
Request samples
- Payload
{- "active": true,
- "description": "i am a cronjob",
- "email": "user@example.com",
- "interval": "*/5 * * * *"
}
Response samples
- 200
- 400
- 404
- 412
- default
{ }
Get a CronjobExecution.
Authorizations:
path Parameters
executionId required | string Example: cron-bd26li-28027320 ID of the CronjobExecution to be retrieved. |
cronjobId required | string <uuid> |
Responses
Response samples
- 200
- 404
- default
{- "abortedBy": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}, - "durationInMilliseconds": 12374,
- "end": "2019-08-24T14:15:22Z",
- "executionEnd": "2019-08-24T14:15:22Z",
- "executionStart": "2019-08-24T14:15:22Z",
- "id": "cron-bd26li-28027320",
- "logPath": "/var/log/cronjobs/cron-bd26li-28027320.log",
- "start": "2019-08-24T14:15:22Z",
- "status": "Complete",
- "successful": true,
- "triggeredBy": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
}
Update a Cronjob's app id.
Authorizations:
path Parameters
cronjobId required | string <uuid> ID of the Cronjob to update. |
Request Body schema: application/json
ID of the app to set.
appId required | string <uuid> |
Responses
Request samples
- Payload
{- "appId": "28c365d5-df94-4a54-8217-3ce51d068868"
}
Response samples
- 201
- 400
- 412
- default
{ }
The App API allows you to manage your apps within a project, and all the system softwares that are installed as dependencies.
execute a runtime concerning action on a specific `AppInstallation`
Authorizations:
path Parameters
appInstallationId required | string |
action required | string (de.mittwald.v1.app.Action) Enum: "start" "stop" "restart" An |
Request Body schema: application/json
Responses
Request samples
- Payload
{ }
Response samples
- 404
- default
{- "message": "Something went wrong",
- "type": "InternalServerError"
}
get a specific `AppInstallation`
Authorizations:
path Parameters
appInstallationId required | string <uuid> |
Responses
Response samples
- 200
- 404
- default
{- "appId": "28c365d5-df94-4a54-8217-3ce51d068868",
- "appVersion": {
- "current": "string",
- "desired": "string"
}, - "customDocumentRoot": "string",
- "description": "string",
- "disabled": false,
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "installationPath": "string",
- "linkedDatabases": [
- {
- "databaseId": "d0f4f849-8ecf-4909-96bf-7953790e45f9",
- "databaseUserIds": {
- "property1": "string",
- "property2": "string"
}, - "kind": "mysql",
- "purpose": "primary"
}
], - "processes": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "screenshotId": "0e72f9bc-74b1-4f8d-8cd1-3ecd9226451e",
- "screenshotRef": "string",
- "systemSoftware": [
- {
- "systemSoftwareId": "f5b4ab49-b9c6-4251-85b9-e8267adaa09d",
- "systemSoftwareVersion": {
- "current": "string",
- "desired": "string"
}, - "updatePolicy": "none"
}
], - "updatePolicy": "none",
- "userInputs": [
- {
- "name": "string",
- "value": "string"
}
]
}
patch desired properties of a specific `AppInstallation`
Authorizations:
path Parameters
appInstallationId required | string <uuid> |
Request Body schema: application/json
properties to update for the specified app installation
appVersionId | string <uuid> |
customDocumentRoot | string |
description | string |
object | |
updatePolicy | string (de.mittwald.v1.app.AppUpdatePolicy) Enum: "none" "patchLevel" "all"
|
Array of objects (de.mittwald.v1.app.SavedUserInput) |
Responses
Request samples
- Payload
{- "appVersionId": "043bcc03-0ebb-4d3f-a077-563dc63dbd08",
- "customDocumentRoot": "string",
- "description": "string",
- "systemSoftware": {
- "property1": {
- "systemSoftwareVersion": "string",
- "updatePolicy": "none"
}, - "property2": {
- "systemSoftwareVersion": "string",
- "updatePolicy": "none"
}
}, - "updatePolicy": "none",
- "userInputs": [
- {
- "name": "string",
- "value": "string"
}
]
}
Response samples
- 404
- default
{- "message": "Something went wrong",
- "type": "InternalServerError"
}
get a specific `AppVersion`
Authorizations:
path Parameters
appId required | string <uuid> |
appVersionId required | string <uuid> |
Responses
Response samples
- 200
- 404
- default
{- "databases": [
- {
- "description": "string",
- "kind": "mysql",
- "parameters": {
- "property1": "string",
- "property2": "string"
}, - "version": "8b898373-21c7-4028-b85f-cc5068e68df9"
}
], - "docRoot": "string",
- "docRootUserEditable": true,
- "externalVersion": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "internalVersion": "string",
- "recommended": true,
- "requestHandler": {
- "exampleValues": [
- {
- "name": "string",
- "value": "string"
}
], - "name": "string",
- "namespace": "string",
- "parametersTemplate": "string"
}, - "systemSoftwareDependencies": [
- {
- "systemSoftwareId": "f5b4ab49-b9c6-4251-85b9-e8267adaa09d",
- "versionRange": "string"
}
], - "userInputs": [
- {
- "dataSource": "string",
- "dataType": "text",
- "defaultValue": "string",
- "format": "email",
- "lifecycleConstraint": "installation",
- "name": "string",
- "positionMeta": {
- "index": 0,
- "section": "string",
- "step": "string"
}, - "required": true,
- "validationSchema": "string"
}
]
}
get the missing requirements of an appInstallation for a specific target AppVersion
Authorizations:
path Parameters
appInstallationId required | string <uuid> |
query Parameters
targetAppVersionID required | string <uuid> |
Responses
Response samples
- 200
- 404
- default
{- "missingSystemSoftwareDependencies": [
- {
- "systemSoftwareId": "f5b4ab49-b9c6-4251-85b9-e8267adaa09d",
- "versionRange": "string"
}
], - "missingUserInputs": [
- {
- "dataSource": "string",
- "dataType": "text",
- "defaultValue": "string",
- "format": "email",
- "lifecycleConstraint": "installation",
- "name": "string",
- "positionMeta": {
- "index": 0,
- "section": "string",
- "step": "string"
}, - "required": true,
- "validationSchema": "string"
}
]
}
get a specific `SystemSoftwareVersion`
Authorizations:
path Parameters
systemSoftwareId required | string <uuid> |
systemSoftwareVersionId required | string <uuid> |
Responses
Response samples
- 200
- 404
- default
{- "externalVersion": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "internalVersion": "string",
- "recommended": true,
- "systemSoftwareDependencies": [
- {
- "systemSoftwareId": "f5b4ab49-b9c6-4251-85b9-e8267adaa09d",
- "versionRange": "string"
}
], - "userInputs": [
- {
- "dataSource": "string",
- "dataType": "text",
- "defaultValue": "string",
- "format": "email",
- "lifecycleConstraint": "installation",
- "name": "string",
- "positionMeta": {
- "index": 0,
- "section": "string",
- "step": "string"
}, - "required": true,
- "validationSchema": "string"
}
]
}
create linkage between an `AppInstallation` and a `Database`
Authorizations:
path Parameters
appInstallationId required | string <uuid> |
Request Body schema: application/json
properties to update for the specified system software
databaseId required | string <uuid> |
object | |
purpose required | string Enum: "primary" "cache" "custom" |
Responses
Request samples
- Payload
{- "databaseId": "d0f4f849-8ecf-4909-96bf-7953790e45f9",
- "databaseUserIds": {
- "property1": "string",
- "property2": "string"
}, - "purpose": "primary"
}
Response samples
- 404
- default
{- "message": "Something went wrong",
- "type": "InternalServerError"
}
get all `AppInstallations` inside a specific `Project`
Authorizations:
path Parameters
projectId required | string <uuid> |
query Parameters
limit | integer >= 0 |
page | integer >= 0 |
skip | integer >= 0 |
Responses
Response samples
- 200
- default
[- {
- "appId": "28c365d5-df94-4a54-8217-3ce51d068868",
- "appVersion": {
- "current": "string",
- "desired": "string"
}, - "customDocumentRoot": "string",
- "description": "string",
- "disabled": false,
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "installationPath": "string",
- "linkedDatabases": [
- {
- "databaseId": "d0f4f849-8ecf-4909-96bf-7953790e45f9",
- "databaseUserIds": {
- "property1": "string",
- "property2": "string"
}, - "kind": "mysql",
- "purpose": "primary"
}
], - "processes": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "screenshotId": "0e72f9bc-74b1-4f8d-8cd1-3ecd9226451e",
- "screenshotRef": "string",
- "systemSoftware": [
- {
- "systemSoftwareId": "f5b4ab49-b9c6-4251-85b9-e8267adaa09d",
- "systemSoftwareVersion": {
- "current": "string",
- "desired": "string"
}, - "updatePolicy": "none"
}
], - "updatePolicy": "none",
- "userInputs": [
- {
- "name": "string",
- "value": "string"
}
]
}
]
request a new `AppInstallation`
Authorizations:
path Parameters
projectId required | string <uuid> |
Request Body schema: application/json
properties to request an app installation
appVersionId required | string <uuid> |
description required | string |
updatePolicy required | string (de.mittwald.v1.app.AppUpdatePolicy) Enum: "none" "patchLevel" "all"
|
required | Array of objects (de.mittwald.v1.app.SavedUserInput) |
Responses
Request samples
- Payload
{- "appVersionId": "043bcc03-0ebb-4d3f-a077-563dc63dbd08",
- "description": "string",
- "updatePolicy": "none",
- "userInputs": [
- {
- "name": "string",
- "value": "string"
}
]
}
Response samples
- 201
- 404
- default
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "processId": "9e0ad09b-5150-48c0-aded-707587048fd9"
}
get all `AppVersions` of a specific `App`
Authorizations:
path Parameters
appId required | string <uuid> |
Responses
Response samples
- 200
- default
[- {
- "databases": [
- {
- "description": "string",
- "kind": "mysql",
- "parameters": {
- "property1": "string",
- "property2": "string"
}, - "version": "8b898373-21c7-4028-b85f-cc5068e68df9"
}
], - "docRoot": "string",
- "docRootUserEditable": true,
- "externalVersion": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "internalVersion": "string",
- "recommended": true,
- "requestHandler": {
- "exampleValues": [
- {
- "name": "string",
- "value": "string"
}
], - "name": "string",
- "namespace": "string",
- "parametersTemplate": "string"
}, - "systemSoftwareDependencies": [
- {
- "systemSoftwareId": "f5b4ab49-b9c6-4251-85b9-e8267adaa09d",
- "versionRange": "string"
}
], - "userInputs": [
- {
- "dataSource": "string",
- "dataType": "text",
- "defaultValue": "string",
- "format": "email",
- "lifecycleConstraint": "installation",
- "name": "string",
- "positionMeta": {
- "index": 0,
- "section": "string",
- "step": "string"
}, - "required": true,
- "validationSchema": "string"
}
]
}
]
get all available `SystemSoftwareVersions` of a specific `SystemSoftware`
Authorizations:
path Parameters
systemSoftwareId required | string <uuid> |
query Parameters
versionRange | string |
Responses
Response samples
- 200
- default
[- {
- "externalVersion": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "internalVersion": "string",
- "recommended": true,
- "systemSoftwareDependencies": [
- {
- "systemSoftwareId": "f5b4ab49-b9c6-4251-85b9-e8267adaa09d",
- "versionRange": "string"
}
], - "userInputs": [
- {
- "dataSource": "string",
- "dataType": "text",
- "defaultValue": "string",
- "format": "email",
- "lifecycleConstraint": "installation",
- "name": "string",
- "positionMeta": {
- "index": 0,
- "section": "string",
- "step": "string"
}, - "required": true,
- "validationSchema": "string"
}
]
}
]
get all update candidates for a specific `AppVersion`
Authorizations:
path Parameters
appId required | string <uuid> |
baseAppVersionId required | string <uuid> |
Responses
Response samples
- 200
- default
[- {
- "databases": [
- {
- "description": "string",
- "kind": "mysql",
- "parameters": {
- "property1": "string",
- "property2": "string"
}, - "version": "8b898373-21c7-4028-b85f-cc5068e68df9"
}
], - "docRoot": "string",
- "docRootUserEditable": true,
- "externalVersion": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "internalVersion": "string",
- "recommended": true,
- "requestHandler": {
- "exampleValues": [
- {
- "name": "string",
- "value": "string"
}
], - "name": "string",
- "namespace": "string",
- "parametersTemplate": "string"
}, - "systemSoftwareDependencies": [
- {
- "systemSoftwareId": "f5b4ab49-b9c6-4251-85b9-e8267adaa09d",
- "versionRange": "string"
}
], - "userInputs": [
- {
- "dataSource": "string",
- "dataType": "text",
- "defaultValue": "string",
- "format": "email",
- "lifecycleConstraint": "installation",
- "name": "string",
- "positionMeta": {
- "index": 0,
- "section": "string",
- "step": "string"
}, - "required": true,
- "validationSchema": "string"
}
]
}
]
reconcile detected apps to appInstallations of a project
Authorizations:
path Parameters
projectShortId required | string |
Request Body schema: application/json
detected apps for a project
appName required | string |
appVersionClusterVersion required | string |
databaseHost | string |
databaseUserName | string |
installationDirectory required | string |
Responses
Request samples
- Payload
[- {
- "appName": "string",
- "appVersionClusterVersion": "string",
- "databaseHost": "string",
- "databaseUserName": "string",
- "installationDirectory": "string"
}
]
Response samples
- 404
- default
{- "message": "Something went wrong",
- "type": "InternalServerError"
}
request a copy of an `AppInstallation`
Authorizations:
path Parameters
id required | string <uuid> |
Request Body schema: application/json
properties to copy an app installation
description required | string |
Responses
Request samples
- Payload
{- "description": "string"
}
Response samples
- 201
- 404
- default
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
get runtime status of a specific `AppInstallation`
Authorizations:
path Parameters
appInstallationId required | string |
Responses
Response samples
- 200
- 404
- default
{- "lastExitCode": 0,
- "logFileLocation": "string",
- "state": "running",
- "uptimeSeconds": 0
}
create linkage between an `AppInstallation` and `DatabaseUsers`
Authorizations:
path Parameters
appInstallationId required | string <uuid> |
databaseId required | string <uuid> |
Request Body schema: application/json
properties to update for the specified system software
required | object | ||
|
Responses
Request samples
- Payload
{- "databaseUserIds": {
- "property1": "string",
- "property2": "string"
}
}
Response samples
- 404
- default
{- "message": "Something went wrong",
- "type": "InternalServerError"
}
remove linkage between an `AppInstallation` and a `Database`
Authorizations:
path Parameters
appInstallationId required | string <uuid> |
databaseId required | string <uuid> |
Responses
Response samples
- 404
- default
{- "message": "Something went wrong",
- "type": "InternalServerError"
}
List directories belonging to a Project.
Authorizations:
path Parameters
projectId required | string ID of the Project to list the directories for. |
query Parameters
directory | string The directory to start listing subdirectories from. |
name | string Search for specific filenames, only. The name may be a glob expression. |
max_depth | integer The nesting depth for recursively listing directory contents. |
type | Array of strings One of file or directory (may be specified multiple times), to restrict results to directory items of this specific type. |
executable | boolean Set to true to constrain search results to executable files. |
hidden | boolean Set to true to include hidden files. (with . prefix in the search results). |
Responses
Response samples
- 200
- 403
- 404
- 503
- default
{- "absolutePath": "string",
- "isDirectory": true,
- "isExecutable": true,
- "isFile": true,
- "isSymlink": true,
- "items": [
- { }
], - "name": "string",
- "size": 0,
- "target": "string"
}
Get a Project directory filesystem usage.
Authorizations:
path Parameters
projectId required | string <uuid> ID of the Project. |
query Parameters
directory | string Example: directory=/home/example.log Starting directory for the disk usage calculation. |
Responses
Response samples
- 200
- 403
- 404
- 503
- default
{- "path": "string",
- "totalBytes": 0,
- "usedBytes": 0
}
Get a Project file's content.
Authorizations:
path Parameters
projectId required | string <uuid> ID of the Project. |
query Parameters
file | string Example: file=/home/example.log Name of the file. |
inline | boolean Set to true to serve the file with Content-Disposition: inline. Otherwise, it will be served with Content-Disposition: attachment. filename=... |
Responses
Response samples
- 403
- 404
- 503
- default
{- "message": "Something went wrong",
- "type": "InternalServerError"
}
Get a Project's file/filesystem authorization token.
Authorizations:
path Parameters
projectId required | string ID of the Project to retrieve an authorization token for. |
Responses
Response samples
- 200
- 403
- 404
- 503
{- "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFkYSBMb3ZlbGFjZSIsImlhdCI6MTUxNjIzOTAyMn0.sMjBP_p34T5mbJTVdEWQ8i2hQPVxsmlt8L6-rKpCczo"
}