Zum Hauptinhalt springen

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
projectInviteId
required
string <uuid>

ID of the ProjectInvite to be accepted.

Request Body schema: application/json
required
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
required
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"
}

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
[
  • {
    }
]

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
projectInviteId
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
projectInviteId
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
projectInviteId
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
projectMembershipId
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
projectMembershipId
required
string

ID of the ProjectMembership to be retrieved.

Responses

Response samples

Content type
application/json
{
  • "email": "user@example.com",
  • "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",
  • "mfa": true,
  • "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
projectMembershipId
required
string <uuid>

ID of the ProjectMembership to be updated.

Request Body schema: application/json
required
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
{
  • "type": "ValidationError",
  • "message": "Validation failed",
  • "validationErrors": [
    ]
}

Get a Project.

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
projectId
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",
  • "disabledAt": "2019-08-24T14:15:22Z",
  • "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",
  • "status": "pending",
  • "statusSetAt": "2019-08-24T14:15:22Z"
}

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 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
{
  • "email": "user@example.com",
  • "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",
  • "mfa": true,
  • "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",
  • "status": "pending",
  • "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 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
projectInviteId
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
projectId
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
required
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
required
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
required
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
required
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
required
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
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
{
  • "message": "Something went wrong",
  • "type": "InternalServerError"
}

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
timeout
required
number [ 1 .. 86400 ]

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 * * * *",
  • "timeout": 1
}

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": "string"
}

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",
  • "timeout": 1,
  • "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
timeout
number [ 1 .. 86400 ]

Responses

Request samples

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

Response samples

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

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
{
  • "type": "ValidationError",
  • "message": "Validation failed",
  • "validationErrors": [
    ]
}

App

The App API allows you to manage your apps within a project, and all the system softwares that are installed as dependencies.

Trigger a runtime action belonging to an 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
optional
object

Responses

Request samples

Content type
application/json
{ }

Response samples

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

Get an 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 an 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",
  • "shortId": "a-XXXXXX",
  • "systemSoftware": [
    ],
  • "updatePolicy": "none",
  • "userInputs": [
    ]
}

Update properties belonging to an AppInstallation.

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

Properties to update for an AppInstallation.

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"
}

Trigger an uninstallation process for an 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 an AppVersion.

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

Responses

Response samples

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

Get the installed `SystemSoftware' for a specific `AppInstallation`.

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

Responses

Response samples

Content type
application/json
[
  • {
    }
]

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 SystemSoftware.

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

Responses

Response samples

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

Get a SystemSoftwareVersion.

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

Responses

Response samples

Content type
application/json
{
  • "expiryDate": "2019-08-24T14:15:22Z",
  • "externalVersion": "string",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "internalVersion": "string",
  • "recommended": true,
  • "systemSoftwareDependencies": [
    ],
  • "userInputs": [
    ]
}

List AppInstallations belonging to a 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 an AppInstallation.

Authorizations:
de.mittwald.v1.commons.AccessToken
path Parameters
projectId
required
string <uuid>
Request Body schema: application/json
required
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"
}

List 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
[
  • {
    }
]

List AppVersions belonging to an App.

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

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List SystemSoftwares.

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

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List SystemSoftwareVersions belonging to a SystemSoftware.

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

Responses

Response samples

Content type
application/json
[
  • {
    }
]