Skip to main content

Mittwald API (2.0)

Download OpenAPI specification:Download

Introduction

This OpenAPI spec documents the mittwald API. It follows the OpenAPI 3.0.0 specification.

Authentication

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.

Rate Limiting

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.

mStudio

A main consumer of the mittwald API is the management interface for our customers, the mStudio.

Contact and support

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.

Project

The project API allows you to manage your projects, and also any kinds of user memberships concerning these projects.

Accept a ProjectInvite.

Authorizations:
de.mittwald.v1.commons.AccessToken
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

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

Response samples

Content type
application/json
{
  • "type": "ValidationError",
  • "message": "Validation failed",
  • "validationErrors": [
    ]
}

Create a ProjectInvite.

Authorizations:
de.mittwald.v1.commons.AccessToken
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

Content type
application/json
{
  • "mailAddress": "user@example.com",
  • "membershipExpiresAt": "2019-08-24T14:15:22Z",
  • "message": "string",
  • "role": "notset"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "information": {
    },
  • "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:
de.mittwald.v1.commons.AccessToken
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

Content type
application/json
{
  • "description": "My first Project!"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

Decline a ProjectInvite.

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
inviteId
required
string <uuid>

ID of the ProjectInvite to be declined.

Request Body schema: application/json
any

Responses

Request samples

Content type
application/json
null

Response samples

Content type
application/json
{
  • "message": "Something went wrong",
  • "type": "InternalServerError"
}

Delete a Project's avatar.

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
projectId
required
string <uuid>

ID of the Project the avatar should be deleted for.

Responses

Response samples

Content type
application/json
{
  • "type": "ValidationError",
  • "message": "Validation failed",
  • "validationErrors": [
    ]
}

Request a Project avatar upload.

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
projectId
required
string <uuid>

ID of the Project you want to request an avatar upload for.

Responses

Response samples

Content type
application/json
{
  • "refId": "639293c5-5581-48d7-94b9-83aceaff93f8",
  • "rules": {
    }
}

Delete a ProjectInvite.

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
inviteId
required
string <uuid>

ID of the ProjectInvite to be deleted.

Responses

Response samples

Content type
application/json
{
  • "message": "Something went wrong",
  • "type": "InternalServerError"
}

Get a ProjectInvite.

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
inviteId
required
string

ID of the ProjectInvite to be retrieved.

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "information": {
    },
  • "mailAddress": "user@example.com",
  • "membershipExpiresAt": "2019-08-24T14:15:22Z",
  • "message": "string",
  • "projectDescription": "string",
  • "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
  • "role": "notset"
}

Delete a ProjectMembership.

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
membershipId
required
string <uuid>

ID of the ProjectMembership to be deleted.

Responses

Response samples

Content type
application/json
{
  • "message": "Something went wrong",
  • "type": "InternalServerError"
}

Get a ProjectMembership

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
membershipId
required
string

ID of the ProjectMembership to be retrieved.

Responses

Response samples

Content type
application/json
{
  • "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:
de.mittwald.v1.commons.AccessToken
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

Content type
application/json
{
  • "expiresAt": "2019-08-24T14:15:22Z",
  • "role": "notset"
}

Response samples

Content type
application/json
{
  • "message": "Something went wrong",
  • "type": "InternalServerError"
}

Delete a Project.

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
projectId
required
string

The ID of the Project.

Responses

Response samples

Content type
application/json
{ }

Delete a Server's avatar.

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
serverId
required
string <uuid>

ID of the Server to delete the avatar for.

Responses

Response samples

Content type
application/json
{
  • "type": "ValidationError",
  • "message": "Validation failed",
  • "validationErrors": [
    ]
}

Request a Server avatar upload.

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
serverId
required
string <uuid>

ID of the Server to request an avatar upload for.

Responses

Response samples

Content type
application/json
{
  • "refId": "639293c5-5581-48d7-94b9-83aceaff93f8",
  • "rules": {
    }
}

Get a ProjectInvite by token.

Authorizations:
de.mittwald.v1.commons.AccessToken
header Parameters
token
required
string

Token of the ProjectInvite to be retrieved.

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "information": {
    },
  • "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:
de.mittwald.v1.commons.AccessToken
path Parameters
id
required
string <uuid>

ID of the Project to be retrieved.

Responses

Response samples

Content type
application/json
{
  • "clusterDomain": "project.host",
  • "clusterID": "espelkamp",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "customerId": "f282f1a8-2b15-4b08-9850-6788e3b20136",
  • "description": "My first Project!",
  • "directories": {
    },
  • "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": {
    },
  • "statisticsBaseDomain": "pe-prod.staging.mcloud.services"
}

Get the executing user's membership in a Project.

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
projectId
required
string

ID of the Project to get the membership for.

Responses

Response samples

Content type
application/json
{
  • "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:
de.mittwald.v1.commons.AccessToken
path Parameters
serverId
required
string

ID of the Server to be retrieved.

Responses

Response samples

Content type
application/json
{
  • "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": {
    },
  • "readiness": "creating",
  • "shortId": "s-4e7tz3",
  • "statisticsBaseDomain": "pe-prod.staging.mcloud.services",
  • "storage": "50Gi"
}

Leave a Project.

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
projectId
required
string <uuid>

ID of the Project to be left.

Request Body schema: application/json
any

Responses

Request samples

Content type
application/json
null

Response samples

Content type
application/json
{
  • "message": "Something went wrong",
  • "type": "InternalServerError"
}

List Invites belonging to a Project.

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
projectId
required
string

ID of the Project to list invites for.

query Parameters
limit
integer
skip
integer

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List Memberships belonging to a Project.

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
projectId
required
string

ID of the Project to list memberships for.

query Parameters
limit
integer
skip
integer

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List ProjectInvites belonging to the executing user.

Authorizations:
de.mittwald.v1.commons.AccessToken
query Parameters
limit
integer
skip
integer

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List ProjectMemberships belonging to the executing user.

Authorizations:
de.mittwald.v1.commons.AccessToken
query Parameters
limit
integer
skip
integer

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List Projects belonging to the executing user.

Authorizations:
de.mittwald.v1.commons.AccessToken
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

Content type
application/json
[
  • {
    }
]

List Servers belonging to the executing user.

Authorizations:
de.mittwald.v1.commons.AccessToken
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

Content type
application/json
[
  • {
    }
]

Resend the mail for a ProjectInvite.

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
inviteId
required
string <uuid>

ID of the ProjectInvite to resend the mail for.

Request Body schema: application/json
any

Responses

Request samples

Content type
application/json
null

Response samples

Content type
application/json
{
  • "message": "Something went wrong",
  • "type": "InternalServerError"
}

Update a Project's description.

Authorizations:
de.mittwald.v1.commons.AccessToken
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

Content type
application/json
{
  • "description": "My new description!"
}

Response samples

Content type
application/json
{
  • "type": "ValidationError",
  • "message": "Validation failed",
  • "validationErrors": [
    ]
}

Update a Servers's description.

Authorizations:
de.mittwald.v1.commons.AccessToken
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

Content type
application/json
{
  • "description": "My first Server!"
}

Response samples

Content type
application/json
{
  • "type": "ValidationError",
  • "message": "Validation failed",
  • "validationErrors": [
    ]
}

Backup

The backup API allows you to manage your project backups.

Export a ProjectBackup for download.

Authorizations:
de.mittwald.v1.commons.AccessToken
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

Content type
application/json
{
  • "format": "tar",
  • "password": "password"
}

Response samples

Content type
application/json
{
  • "type": "ValidationError",
  • "message": "Validation failed",
  • "validationErrors": [
    ]
}

Delete a ProjectBackupExport.

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
projectBackupId
required
string <uuid>

ID if the ProjectBackup to delete the export of.

Responses

Response samples

Content type
application/json
{
  • "message": "Something went wrong",
  • "type": "InternalServerError"
}

Create a BackupSchedule for a Project.

Authorizations:
de.mittwald.v1.commons.AccessToken
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

Content type
application/json
{
  • "description": "string",
  • "schedule": "5 4 * * *",
  • "ttl": "7d"
}

Response samples

Content type
application/json
{
  • "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:
de.mittwald.v1.commons.AccessToken
path Parameters
projectId
required
string <uuid>

ID of the Project to list BackupSchedules for.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a Backup of a Project.

Authorizations:
de.mittwald.v1.commons.AccessToken
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

Content type
application/json
{
  • "description": "I'm a ProjectBackup",
  • "expirationTime": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "createdAt": "2019-08-24T14:15:22Z",
  • "deletable": true,
  • "description": "I'm a ProjectBackup",
  • "expiresAt": "2019-08-24T14:15:22Z",
  • "export": {
    },
  • "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:
de.mittwald.v1.commons.AccessToken
path Parameters
projectId
required
string <uuid>

ID of the Project to get Backups for.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Delete a ProjectBackupSchedule.

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
projectBackupScheduleId
required
string <uuid>

ID of the ProjectBackupSchedule to delete.

Responses

Response samples

Content type
application/json
{
  • "message": "Something went wrong",
  • "type": "InternalServerError"
}

Get a ProjectBackupSchedule.

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
projectBackupScheduleId
required
string <uuid>

ID of the ProjectBackupSchedule to retrieve.

Responses

Response samples

Content type
application/json
{
  • "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:
de.mittwald.v1.commons.AccessToken
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

Content type
application/json
{
  • "description": "I'm a ProjectBackupSchedule",
  • "schedule": "5 4 * * *",
  • "ttl": "7d"
}

Response samples

Content type
application/json
{
  • "type": "ValidationError",
  • "message": "Validation failed",
  • "validationErrors": [
    ]
}

Delete a ProjectBackup.

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
projectBackupId
required
string <uuid>

ID of the ProjectBackup to be deleted.

Responses

Response samples

Content type
application/json
{
  • "message": "Something went wrong",
  • "type": "InternalServerError"
}

Get a ProjectBackup.

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
projectBackupId
required
string <uuid>

ID of the ProjectBackup to retrieve.

Responses

Response samples

Content type
application/json
{
  • "createdAt": "2019-08-24T14:15:22Z",
  • "deletable": true,
  • "description": "I'm a ProjectBackup",
  • "expiresAt": "2019-08-24T14:15:22Z",
  • "export": {
    },
  • "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:
de.mittwald.v1.commons.AccessToken
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

Content type
application/json
{
  • "description": "I'm a ProjectBackup"
}

Response samples

Content type
application/json
{
  • "type": "ValidationError",
  • "message": "Validation failed",
  • "validationErrors": [
    ]
}

SSH/SFTP User

The SSH/SFTP User API allows you to manage your SSH/SFTP users within a project.

Create an SFTPUser for a Project.

Authorizations:
de.mittwald.v1.commons.AccessToken
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

Content type
application/json
{
  • "accessLevel": "read",
  • "authentication": {
    },
  • "description": "string",
  • "directories": [
    ],
  • "expiresAt": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "accessLevel": "full",
  • "active": true,
  • "authUpdatedAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "directories": [
    ],
  • "expiresAt": "2019-08-24T14:15:22Z",
  • "hasPassword": true,
  • "id": "string",
  • "projectId": "string",
  • "publicKeys": [
    ],
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "userName": "string"
}

Get all SFTPUsers for a Project.

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
projectId
required
string

ID of the Project to request SFTPUsers for.

query Parameters
limit
integer
skip
integer

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Delete an SFTPUser.

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
sftpUserId
required
string

ID of the SFTPUser to be deleted.

Responses

Response samples

Content type
application/json
{
  • "message": "Something went wrong",
  • "type": "InternalServerError"
}

Get an SFTPUser.

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
sftpUserId
required
string

ID of the SFTPUser to get.

Responses

Response samples

Content type
application/json
{
  • "accessLevel": "full",
  • "active": true,
  • "authUpdatedAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "directories": [
    ],
  • "expiresAt": "2019-08-24T14:15:22Z",
  • "hasPassword": true,
  • "id": "string",
  • "projectId": "string",
  • "publicKeys": [
    ],
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "userName": "string"
}

Update an SFTPUser.

Authorizations:
de.mittwald.v1.commons.AccessToken
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

Content type
application/json
{
  • "accessLevel": "read",
  • "active": true,
  • "description": "string",
  • "directories": [
    ],
  • "expiresAt": "2019-08-24T14:15:22Z",
  • "password": "string",
  • "publicKeys": [
    ]
}

Response samples

Content type
application/json
{
  • "type": "ValidationError",
  • "message": "Validation failed",
  • "validationErrors": [
    ]
}

Create an SSHUser for a Project.

Authorizations:
de.mittwald.v1.commons.AccessToken
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

Content type
application/json
{
  • "authentication": {
    },
  • "description": "string",
  • "expiresAt": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "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": [
    ],
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "userName": "string"
}

Get all SSHUsers for a Project.

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
projectId
required
string

ID of the Project to retrieve SSHUsers for.

query Parameters
limit
integer
skip
integer

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Delete an SSHUser.

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
sshUserId
required
string

ID of the SSHUser to be deleted.

Responses

Response samples

Content type
application/json
{
  • "message": "Something went wrong",
  • "type": "InternalServerError"
}

Get an SSHUser.

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
sshUserId
required
string

ID of the SSHUser to be retrieved.

Responses

Response samples

Content type
application/json
{
  • "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": [
    ],
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "userName": "string"
}

Update an SSHUser.

Authorizations:
de.mittwald.v1.commons.AccessToken
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

Content type
application/json
{
  • "active": true,
  • "description": "string",
  • "expiresAt": "2019-08-24T14:15:22Z",
  • "password": "string",
  • "publicKeys": [
    ]
}

Response samples

Content type
application/json
{
  • "type": "ValidationError",
  • "message": "Validation failed",
  • "validationErrors": [
    ]
}

Cronjob

The cronjob API allows you to manage cronjobs within a project.

Abort a CronjobExecution.

Authorizations:
de.mittwald.v1.commons.AccessToken
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
any

Responses

Request samples

Content type
application/json
null

Response samples

Content type
application/json
{ }

Create a Cronjob.

Authorizations:
de.mittwald.v1.commons.AccessToken
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)
email
string <email>
interval
required
string

Responses

Request samples

Content type
application/json
{
  • "active": true,
  • "appId": "28c365d5-df94-4a54-8217-3ce51d068868",
  • "description": "i am a cronjob",
  • "destination": {},
  • "email": "user@example.com",
  • "interval": "*/5 * * * *"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

List Cronjobs belonging to a Project.

Authorizations:
de.mittwald.v1.commons.AccessToken
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

Content type
application/json
[
  • {
    }
]

Trigger a Cronjob.

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
cronjobId
required
string <uuid>

ID of the Cronjob to trigger.

Request Body schema: application/json
any

Responses

Request samples

Content type
application/json
null

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

List CronjobExecutions belonging to a Cronjob.

Authorizations:
de.mittwald.v1.commons.AccessToken
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

Content type
application/json
[
  • {
    }
]

Delete a Cronjob.

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
cronjobId
required
string <uuid>

ID of the Cronjob to delete.

Responses

Response samples

Content type
application/json
{
  • "type": "ValidationError",
  • "message": "Validation failed",
  • "validationErrors": [
    ]
}

Get a Cronjob.

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
cronjobId
required
string <uuid>

ID of the Cronjob to be retrieved.

Responses

Response samples

Content type
application/json
{
  • "active": true,
  • "appId": "28c365d5-df94-4a54-8217-3ce51d068868",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "description": "i am a cronjob",
  • "destination": {},
  • "email": "user@example.com",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "interval": "*/5 * * * *",
  • "latestExecution": {
    },
  • "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:
de.mittwald.v1.commons.AccessToken
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)
email
string <email>
interval
string

Responses

Request samples

Content type
application/json
{
  • "active": true,
  • "description": "i am a cronjob",
  • "destination": {},
  • "email": "user@example.com",
  • "interval": "*/5 * * * *"
}

Response samples

Content type
application/json
{ }

Get a CronjobExecution.

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
executionId
required
string
Example: cron-bd26li-28027320

ID of the CronjobExecution to be retrieved.

cronjobId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "abortedBy": {
    },
  • "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": {
    }
}

Update a Cronjob's app id.

Authorizations:
de.mittwald.v1.commons.AccessToken
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

Content type
application/json
{
  • "appId": "28c365d5-df94-4a54-8217-3ce51d068868"
}

Response samples

Content type
application/json
{ }

App

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:
de.mittwald.v1.commons.AccessToken
path Parameters
appInstallationId
required
string
action
required
string (de.mittwald.v1.app.Action)
Enum: "start" "stop" "restart"

An Action is a string that describes a runtime concerning action which can be executed on an AppInstallation or an App can be capable of

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "message": "Something went wrong",
  • "type": "InternalServerError"
}

get a specific `App`

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
appId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "actionCapabilities": [
    ],
  • "id": "string",
  • "name": "string",
  • "tags": [
    ]
}

get a specific `AppInstallation`

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
appInstallationId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "appId": "28c365d5-df94-4a54-8217-3ce51d068868",
  • "appVersion": {
    },
  • "customDocumentRoot": "string",
  • "description": "string",
  • "disabled": false,
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "installationPath": "string",
  • "linkedDatabases": [
    ],
  • "processes": [
    ],
  • "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
  • "screenshotId": "0e72f9bc-74b1-4f8d-8cd1-3ecd9226451e",
  • "screenshotRef": "string",
  • "systemSoftware": [
    ],
  • "updatePolicy": "none",
  • "userInputs": [
    ]
}

patch desired properties of a specific `AppInstallation`

Authorizations:
de.mittwald.v1.commons.AccessToken
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"

AppUpdatePolicy describes which updates should be applied automatically by our systems

Array of objects (de.mittwald.v1.app.SavedUserInput)

Responses

Request samples

Content type
application/json
{
  • "appVersionId": "043bcc03-0ebb-4d3f-a077-563dc63dbd08",
  • "customDocumentRoot": "string",
  • "description": "string",
  • "systemSoftware": {
    },
  • "updatePolicy": "none",
  • "userInputs": [
    ]
}

Response samples

Content type
application/json
{
  • "message": "Something went wrong",
  • "type": "InternalServerError"
}

start uninstallation process for a specific `AppInstallation`

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
appInstallationId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "message": "Something went wrong",
  • "type": "InternalServerError"
}

get a specific `AppVersion`

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
appId
required
string <uuid>
appVersionId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "breakingNote": {},
  • "databases": [
    ],
  • "docRoot": "string",
  • "docRootUserEditable": true,
  • "externalVersion": "string",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "internalVersion": "string",
  • "recommended": true,
  • "requestHandler": {
    },
  • "systemSoftwareDependencies": [
    ],
  • "userInputs": [
    ]
}

get the missing requirements of an appInstallation for a specific target AppVersion

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
appInstallationId
required
string <uuid>
query Parameters
targetAppVersionID
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "missingSystemSoftwareDependencies": [
    ],
  • "missingUserInputs": [
    ]
}

get a specific `SystemSoftware`

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
systemSoftwareId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "tags": [
    ]
}

get a specific `SystemSoftwareVersion`

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
systemSoftwareId
required
string <uuid>
systemSoftwareVersionId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "externalVersion": "string",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "internalVersion": "string",
  • "recommended": true,
  • "systemSoftwareDependencies": [
    ],
  • "userInputs": [
    ]
}

get all `AppInstallations` inside a specific `Project`

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
projectId
required
string <uuid>
query Parameters
limit
integer >= 0
page
integer >= 0
skip
integer >= 0

Responses

Response samples

Content type
application/json
[
  • {
    }
]

request a new `AppInstallation`

Authorizations:
de.mittwald.v1.commons.AccessToken
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"

AppUpdatePolicy describes which updates should be applied automatically by our systems

required
Array of objects (de.mittwald.v1.app.SavedUserInput)

Responses

Request samples

Content type
application/json
{
  • "appVersionId": "043bcc03-0ebb-4d3f-a077-563dc63dbd08",
  • "description": "string",
  • "updatePolicy": "none",
  • "userInputs": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "processId": "9e0ad09b-5150-48c0-aded-707587048fd9"
}

get all available `Apps`

Authorizations:
de.mittwald.v1.commons.AccessToken
query Parameters
limit
integer >= 0
page
integer >= 0
skip
integer >= 0

Responses

Response samples

Content type
application/json
[
  • {
    }
]

get all `AppVersions` of a specific `App`

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
appId
required
string <uuid>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

get all available `SystemSoftware`

Authorizations:
de.mittwald.v1.commons.AccessToken
query Parameters
limit
integer >= 0
page
integer >= 0
skip
integer >= 0

Responses

Response samples

Content type
application/json
[
  • {
    }
]

get all available `SystemSoftwareVersions` of a specific `SystemSoftware`

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
systemSoftwareId
required
string <uuid>
query Parameters
versionRange
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

get all update candidates for a specific `AppVersion`

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
appId
required
string <uuid>
baseAppVersionId
required
string <uuid>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

reconcile detected apps to appInstallations of a project

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
projectShortId
required
string
Request Body schema: application/json

detected apps for a project

Array
appName
required
string
appVersionClusterVersion
required
string
databaseHost
string
databaseUserName
string
installationDirectory
required
string

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "message": "Something went wrong",
  • "type": "InternalServerError"
}

request a copy of an `AppInstallation`

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
id
required
string <uuid>
Request Body schema: application/json

properties to copy an app installation

description
required
string

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

get runtime status of a specific `AppInstallation`

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
appInstallationId
required
string

Responses

Response samples

Content type
application/json
{
  • "lastExitCode": 0,
  • "logFileLocation": "string",
  • "state": "running",
  • "uptimeSeconds": 0
}

create linkage between an `AppInstallation` and `DatabaseUsers`

Authorizations:
de.mittwald.v1.commons.AccessToken
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
property name*
additional property
string

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "message": "Something went wrong",
  • "type": "InternalServerError"
}

Project File System

The filesystem API allows you to directly access the filesystem of your project.

List directories belonging to a Project.

Authorizations:
de.mittwald.v1.commons.AccessToken
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

Content type
application/json
{
  • "absolutePath": "string",
  • "isDirectory": true,
  • "isExecutable": true,
  • "isFile": true,
  • "isSymlink": true,
  • "items": [
    ],
  • "name": "string",
  • "size": 0,
  • "target": "string"
}

Get a Project directory filesystem usage.

Authorizations:
de.mittwald.v1.commons.AccessToken
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

Content type
application/json
{
  • "path": "string",
  • "totalBytes": 0,
  • "usedBytes": 0
}

Get a Project file's content.

Authorizations:
de.mittwald.v1.commons.AccessToken
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

Content type
application/json
{
  • "message": "Something went wrong",
  • "type": "InternalServerError"
}

Get a Project's file/filesystem authorization token.

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
projectId
required
string

ID of the Project to retrieve an authorization token for.

Responses

Response samples

Content type
application/json
{
  • "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFkYSBMb3ZlbGFjZSIsImlhdCI6MTUxNjIzOTAyMn0.sMjBP_p34T5mbJTVdEWQ8i2hQPVxsmlt8L6-rKpCczo"
}

Get a Project file's information.

Authorizations: