diff --git a/packages/mittwald/spec/openapi.json b/packages/mittwald/spec/openapi.json
index 1f3959a2..69a060cf 100644
--- a/packages/mittwald/spec/openapi.json
+++ b/packages/mittwald/spec/openapi.json
@@ -1 +1 @@
-{"openapi":"3.0.0","info":{"title":"Mittwald API","description":"## Introduction\n\nThis OpenAPI spec documents the mittwald API. It follows the\n[OpenAPI 3.0.0 specification](https://spec.openapis.org/oas/v3.0.0.html).\n\n## Authentication\n\nYou will need an API token to access the API. You can obtain one by logging into the\n[mStudio](https://studio.mittwald.de) and navigating to the\n[\"API Tokens\" section in the user menu](https://studio.mittwald.de/app/profile/api-tokens).\n\nWhen making requests to the API, you can authenticate by passing your API token in the `X-Access-Token` header or as a\nbearer token.\n\n## Rate Limiting\n\nPlease note that usage of the API is rate-limited to prevent abuse. You can inspect the rate limiting for your current\nuser by observing the `X-Ratelimit-*` headers included in each response.\n\n## mStudio\n\nA main consumer of the mittwald API is the management interface for our customers, the\n[mStudio](https://studio.mittwald.de).\n\n## Contact and support\n\nFor support, please use the [mStudio support area](https://studio.mittwald.de/app/support/conversations) or drop us an\nemail at [support@mittwald.de](mailto:support@mittwald.de).\n\nFor security issues, please report to [security@mittwald.de](mailto:security@mittwald.de).\n","contact":{"name":"Mittwald CM Service GmbH & Co. KG"},"version":"2.0"},"tags":[{"name":"Project","description":"The project API allows you to manage your projects, and also any kinds of user memberships concerning these projects."},{"name":"Backup","description":"The backup API allows you to manage your project backups."},{"name":"SSH/SFTP User","description":"The SSH/SFTP User API allows you to manage your SSH/SFTP users within a project."},{"name":"Cronjob","description":"The cronjob API allows you to manage cronjobs within a project."},{"name":"App","description":"The App API allows you to manage your apps within a project, and all the system softwares that are installed as dependencies."},{"name":"Project File System","description":"The filesystem API allows you to directly access the filesystem of your project."},{"name":"Contract","description":"The contract API allows you to manage your contracts and orders"},{"name":"Database","description":"The database API allows you to manage your databases, like MySQL and Redis databases."},{"name":"Domain","description":"The domain API allows you to manage your domains, DNS records and ingress resources."},{"name":"Conversation","description":"The conversation API allows you to manage your support conversations."},{"name":"Customer","description":"The customer API allows you to manage your own organizations and users."},{"name":"User","description":"The user API allows you to manage your own user and access information of other users that might be visible to you."},{"name":"Notification","description":"The notification API allows you to manage your notifications."},{"name":"File","description":"The file API allows you to manage your files, for example for conversations attachments and avatar uploads."},{"name":"Mail","description":"The mail API allows you to manage your mail accounts."},{"name":"Article","description":"The article API allows you to read article information."},{"name":"Container","description":"The container API allows you to manage your stacks, containers, volumes and registries."},{"name":"Page Insights","description":"The page insights API allows you to get page insights information."},{"name":"Relocation","description":"The relocation API allows you to manage your relocations."},{"name":"Marketplace","description":"The marketplace API allows you to manage extensions and more information regaring the marketplace."}],"components":{"callbacks":{},"examples":{},"headers":{},"links":{},"parameters":{},"requestBodies":{},"responses":{"de.mittwald.v1.app.GenericResponse":{"content":{"application/json":{"schema":{"type":"object"}}},"description":""},"de.mittwald.v1.customer.GenericResponse":{"content":{"application/json":{"schema":{"type":"object"}}},"description":""},"de.mittwald.v1.customer.FailedPreconditionError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Error"}}},"description":"Failed Precondition"},"de.mittwald.v1.dns.GenericResponse":{"content":{"application/json":{"schema":{"type":"object"}}},"description":""},"de.mittwald.v1.domain.SuccessResponse":{"content":{"application/json":{"schema":{"properties":{"isAsync":{"type":"boolean"},"transactionId":{"type":"string"}},"type":"object"}}},"description":"OK"},"de.mittwald.v1.domain.TransferabilityResponse":{"content":{"application/json":{"schema":{"properties":{"reasons":{"properties":{"domainAgeTooSmall":{"type":"boolean"},"domainDoesNotExist":{"type":"boolean"},"transferLock":{"type":"boolean"},"wrongAuthCode":{"type":"boolean"}},"required":["domainDoesNotExist","wrongAuthCode","transferLock","domainAgeTooSmall"],"type":"object"},"transferable":{"type":"boolean"}},"required":["transferable","reasons"],"type":"object"}}},"description":"OK"},"de.mittwald.v1.invoice.EmptyResponse":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Empty response"},"de.mittwald.v1.mail.EmptyResponse":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Empty response"},"de.mittwald.v1.order.GenericResponse":{"content":{"application/json":{"schema":{"type":"object"}}},"description":""},"de.mittwald.v1.order.NotFoundError":{"content":{"application/json":{"schema":{"type":"object"}}},"description":""},"de.mittwald.v1.signup.InternalServerError":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/de.mittwald.v1.signup.DomainError"},{"properties":{"name":{"enum":["InternalServerError"],"type":"string"}},"type":"object"}]}}},"description":"Something in our infrastructure went wrong\n"},"de.mittwald.v1.signup.NoValidAccessTokenError":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/de.mittwald.v1.signup.DomainError"},{"properties":{"name":{"enum":["NoAccessTokenProvided"],"type":"string"}},"type":"object"}]}}},"description":"No valid access token was provided"},"de.mittwald.v1.signup.RemovingLastOwnerNotAllowedError":{"content":{"application/json":{"schema":{"properties":{"info":{"description":"A json object, given further information about the error","example":{"customerId":"xyz"},"type":"object"},"message":{"description":"more information about the error","example":"The user cannot be removed because it is the last owner of the customer with the id 'xyz'","type":"string"},"name":{"enum":["RemovingLastOwnerNotAllowedError"],"example":"RemovingLastOwnerNotAllowedError","type":"string"}},"required":["name","message"],"type":"object"}}},"description":"Deleting the last owner of a customer is not allowed"},"de.mittwald.v1.signup.SecondFactorRequiredError":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/de.mittwald.v1.signup.DomainError"},{"properties":{"name":{"enum":["SecondFactorRequired"],"type":"string"}},"type":"object"}]}}},"description":"An additional second factor code is necessary to process the request."},"de.mittwald.v1.commons.DefaultError":{"description":"An unexpected Error that occurred while handling the request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Error"}}}},"de.mittwald.v1.commons.NotFoundError":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Error"}}}},"de.mittwald.v1.commons.RateLimitError":{"description":"Your request ran into a rate limit. You have to wait until rate limit expires\n","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"too many requests"},"type":{"type":"string","example":"RateLimitError"}}}}}},"de.mittwald.v1.commons.ValidationError":{"description":"Validation Error caused by invalid input data in the request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}}}},"schemas":{"de.mittwald.v1.app.Action":{"description":"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.","enum":["start","stop","restart"],"type":"string"},"de.mittwald.v1.app.ActionCapabilities":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.Action"},"type":"array"},"de.mittwald.v1.app.App":{"description":"An App is to be understood as a manifest for AppInstallations. E.g. 'WordPress' only exists inside our ecosystem, because there is an App -Manifest for it.","properties":{"actionCapabilities":{"$ref":"#/components/schemas/de.mittwald.v1.app.ActionCapabilities"},"id":{"type":"string"},"name":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"}},"required":["id","name","tags"],"type":"object"},"de.mittwald.v1.app.AppInstallationStatus":{"description":"AppInstallationStatus describes the overall runtime status of an AppInstallation.","properties":{"lastExitCode":{"type":"number"},"logFileLocation":{"type":"string"},"state":{"enum":["running","stopped","exited"],"type":"string"},"uptimeSeconds":{"type":"number"}},"required":["state","logFileLocation"],"type":"object"},"de.mittwald.v1.app.AppJobImage":{"properties":{"imageTemplate":{"type":"string"}},"required":["imageTemplate"],"type":"object"},"de.mittwald.v1.app.AppJobImages":{"properties":{"reconfigureImage":{"$ref":"#/components/schemas/de.mittwald.v1.app.AppJobImage"},"setupImage":{"$ref":"#/components/schemas/de.mittwald.v1.app.AppJobImage"},"uninstallImage":{"$ref":"#/components/schemas/de.mittwald.v1.app.AppJobImage"},"upgradeImage":{"$ref":"#/components/schemas/de.mittwald.v1.app.AppJobImage"}},"required":["setupImage","upgradeImage","uninstallImage","reconfigureImage"],"type":"object"},"de.mittwald.v1.app.AppUpdatePolicy":{"description":"AppUpdatePolicy describes which updates should be applied automatically by our systems.","enum":["none","patchLevel","all"],"type":"string"},"de.mittwald.v1.app.AppInstallation":{"description":"An AppInstallation is a concrete manifestation of an App in a specific AppVersion.","properties":{"appId":{"format":"uuid","type":"string"},"appVersion":{"$ref":"#/components/schemas/de.mittwald.v1.app.VersionStatus"},"customDocumentRoot":{"type":"string"},"description":{"type":"string"},"disabled":{"default":false,"type":"boolean"},"id":{"format":"uuid","type":"string"},"installationPath":{"type":"string"},"linkedDatabases":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.LinkedDatabase"},"type":"array"},"processes":{"items":{"format":"uuid","type":"string"},"type":"array"},"projectId":{"format":"uuid","type":"string"},"screenshotId":{"format":"uuid","type":"string"},"screenshotRef":{"type":"string"},"shortId":{"example":"a-XXXXXX","type":"string"},"systemSoftware":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.InstalledSystemSoftware"},"type":"array"},"updatePolicy":{"$ref":"#/components/schemas/de.mittwald.v1.app.AppUpdatePolicy"},"userInputs":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.SavedUserInput"},"type":"array"}},"required":["id","appId","shortId","appVersion","description","installationPath","disabled"],"type":"object"},"de.mittwald.v1.app.AppInstallationLifecycle":{"description":"The AppInstallationLifecycle can be used to express a specific point in the AppInstallation Lifecycle, e.g. while installing a new AppInstallation.","enum":["installation","update","reconfigure"],"type":"string"},"de.mittwald.v1.app.AppVersion":{"description":"An AppVersion is an officially supported version of an App, containing the necessary and recommended configuration und dependencies.","properties":{"appId":{"type":"string"},"breakingNote":{"$ref":"#/components/schemas/de.mittwald.v1.app.BreakingNote"},"databases":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.DatabaseDependency"},"type":"array"},"docRoot":{"type":"string"},"docRootUserEditable":{"type":"boolean"},"externalVersion":{"type":"string"},"id":{"format":"uuid","type":"string"},"internalVersion":{"type":"string"},"recommended":{"type":"boolean"},"requestHandler":{"$ref":"#/components/schemas/de.mittwald.v1.app.RequestHandlerRequirement"},"systemSoftwareDependencies":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.SystemSoftwareDependency"},"type":"array","uniqueItems":true},"userInputs":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.UserInput"},"type":"array","uniqueItems":true}},"required":["id","externalVersion","internalVersion","docRoot","docRootUserEditable","appId"],"type":"object"},"de.mittwald.v1.app.BreakingNote":{"description":"A BreakingNote is a hint that something serious has changed in the AppVersion containing it, so an automatic update is not possible.","properties":{"faqLink":{"format":"uri","type":"string"}},"required":["faqLink"],"type":"object"},"de.mittwald.v1.app.DatabaseDependency":{"description":"A DatabaseDependency is a generic description of need for a database, used by AppVersions.","properties":{"description":{"type":"string"},"kind":{"enum":["mysql"],"type":"string"},"parameters":{"additionalProperties":{"type":"string"},"type":"object"},"version":{"format":"uuid","type":"string"}},"required":["version","description","kind"],"type":"object"},"de.mittwald.v1.app.Error":{"properties":{"message":{"type":"string"},"type":{"type":"string"}},"required":["type","message"],"type":"object"},"de.mittwald.v1.app.InstalledSystemSoftware":{"description":"InstalledSystemSoftware describes the currently configured and installed SystemSoftwareVersion of a SystemSoftware besides the desired SystemSoftwareUpdatePolicy inside an AppInstallation.","properties":{"systemSoftwareId":{"format":"uuid","type":"string"},"systemSoftwareVersion":{"$ref":"#/components/schemas/de.mittwald.v1.app.VersionStatus"},"updatePolicy":{"$ref":"#/components/schemas/de.mittwald.v1.app.SystemSoftwareUpdatePolicy"}},"required":["systemSoftwareId","updatePolicy","systemSoftwareVersion"],"type":"object"},"de.mittwald.v1.app.LinkedDatabase":{"description":"LinkedDatabase is a reference to a concrete Database and DatabaseUsers.","properties":{"databaseId":{"format":"uuid","type":"string"},"databaseUserIds":{"additionalProperties":{"type":"string"},"type":"object"},"kind":{"enum":["mysql","redis"],"type":"string"},"purpose":{"enum":["primary","cache","custom"],"type":"string"}},"required":["databaseId","purpose","kind"],"type":"object"},"de.mittwald.v1.app.RequestHandlerRequirement":{"description":"RequestHandlerRequirement describes the necessary properties to internally resolve the request handler or process to start.","properties":{"exampleValues":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.SavedUserInput"},"type":"array"},"name":{"type":"string"},"namespace":{"type":"string"},"parametersTemplate":{"type":"string"}},"required":["name","namespace","parametersTemplate"],"type":"object"},"de.mittwald.v1.app.SavedUserInput":{"description":"A SavedUserInput is an entered value for a desired UserInput of an AppVersion or SystemSoftwareVersion.","properties":{"name":{"type":"string"},"value":{"type":"string"}},"required":["name","value"],"type":"object"},"de.mittwald.v1.app.SystemSoftwareDependency":{"description":"A SystemSoftwareDependency is a description of a need for a specific SystemSoftware in a semver versionRange.","properties":{"systemSoftwareId":{"format":"uuid","type":"string"},"versionRange":{"type":"string"}},"required":["systemSoftwareId","versionRange"],"type":"object"},"de.mittwald.v1.app.SystemSoftwareUpdatePolicy":{"description":"SystemSoftwareUpdatePolicy describes which updates should be applied automatically by our systems.","enum":["none","inheritedFromApp","patchLevel","all"],"type":"string"},"de.mittwald.v1.app.SystemSoftware":{"description":"A SystemSoftware is a software that can be installed for an AppInstallation but mostly is not itself externally reachable and/or deliverable.","properties":{"id":{"type":"string"},"meta":{"additionalProperties":{"type":"string"},"type":"object"},"name":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"}},"required":["id","name","tags"],"type":"object"},"de.mittwald.v1.app.SystemSoftwareVersion":{"description":"A SystemSoftwareVersion is an officially supported version of a SystemSoftware, containing the necessary and recommended configuration und dependencies.","properties":{"expiryDate":{"format":"date-time","type":"string"},"externalVersion":{"type":"string"},"fee":{"$ref":"#/components/schemas/de.mittwald.v1.fee.FeeStrategy"},"id":{"format":"uuid","type":"string"},"internalVersion":{"type":"string"},"recommended":{"type":"boolean"},"systemSoftwareDependencies":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.SystemSoftwareDependency"},"type":"array"},"userInputs":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.UserInput"},"type":"array"}},"required":["id","internalVersion","externalVersion"],"type":"object"},"de.mittwald.v1.app.UserInput":{"description":"A UserInput is a description of an information which cannot be determined or estimated by mittwald, but has to be given by the person who is requesting an AppInstallation or SystemSoftware.","properties":{"dataSource":{"description":"Optional field to tell the frontend, which data to put into the select.","type":"string"},"dataType":{"$ref":"#/components/schemas/de.mittwald.v1.app.UserInputDataType"},"defaultValue":{"type":"string"},"format":{"$ref":"#/components/schemas/de.mittwald.v1.app.UserInputFormat"},"lifecycleConstraint":{"$ref":"#/components/schemas/de.mittwald.v1.app.AppInstallationLifecycle"},"name":{"type":"string"},"positionMeta":{"$ref":"#/components/schemas/de.mittwald.v1.app.UserInputPositionMeta"},"required":{"type":"boolean"},"validationSchema":{"description":"JSON Schema formatted (https://json-schema.org/).","type":"string"}},"required":["name","dataType","validationSchema","lifecycleConstraint","required"],"type":"object"},"de.mittwald.v1.app.UserInputDataType":{"description":"UserInputDataType is an enum, describing the possible data types of a UserInput.","enum":["text","number","boolean","select"],"type":"string"},"de.mittwald.v1.app.UserInputFormat":{"description":"UserInputFormat is an enum, describing the possible data formats of a UserInput, the given values can be validated against.","enum":["email","password","url","uri"],"type":"string"},"de.mittwald.v1.app.UserInputPositionMeta":{"description":"UserInputPositionMeta is a utility information, helping to position the UserInput properly on the frontend.","properties":{"index":{"type":"number"},"section":{"type":"string"},"step":{"type":"string"}},"type":"object"},"de.mittwald.v1.app.VersionStatus":{"description":"VersionStatus describes the current and desired version of something like the AppVersion of an AppInstallation. If diverging, an internal process is going to assert, the current value will be aligned.","properties":{"current":{"type":"string"},"desired":{"type":"string"}},"required":["desired"],"type":"object"},"de.mittwald.v1.article.ArticleAddons":{"properties":{"hidden":{"type":"boolean"},"key":{"minLength":1,"type":"string"},"type":{"type":"string"},"value":{"type":"string"},"valueMergeType":{"enum":["add","set"],"type":"string"}},"required":["key","value"],"type":"object"},"de.mittwald.v1.article.ArticleAttributes":{"properties":{"customerEditable":{"type":"boolean"},"key":{"example":"cpu","minLength":1,"type":"string"},"mergeType":{"enum":["add","set"],"type":"string"},"readonly":{"type":"boolean"},"required":{"type":"boolean"},"unit":{"example":"GHz","type":"string"},"value":{"example":"4","type":"string"}},"required":["key"],"type":"object"},"de.mittwald.v1.article.ReadableBookableArticleOptions":{"properties":{"articleId":{"example":"PS23-BASIC-0001","minLength":1,"type":"string"},"info":{"properties":{"articleName":{"example":"proSpace lite","type":"string"},"articleTemplateName":{"example":"proSpace","type":"string"},"fromArticleTemplate":{"type":"boolean"}},"type":"object"},"maxArticleCount":{"example":10,"type":"number"}},"required":["articleId"],"type":"object"},"de.mittwald.v1.article.ReadableChangeArticleOptions":{"properties":{"articleId":{"minLength":1,"type":"string"},"info":{"properties":{"articleName":{"example":"proSpace lite","type":"string"},"articleTemplateName":{"example":"proSpace","type":"string"},"fromArticleTemplate":{"type":"boolean"}},"type":"object"}},"required":["articleId"],"type":"object"},"de.mittwald.v1.article.ReadableModifierArticleOptions":{"properties":{"articleId":{"minLength":1,"type":"string"},"info":{"properties":{"articleName":{"example":"proSpace lite","type":"string"},"articleTemplateName":{"example":"proSpace","type":"string"},"fromArticleTemplate":{"type":"boolean"}},"type":"object"},"maxArticleCount":{"minimum":1,"type":"number"}},"required":["articleId","maxArticleCount"],"type":"object"},"de.mittwald.v1.article.ArticleTag":{"properties":{"description":{"example":"CPU optimized","minLength":1,"type":"string"},"hexColor":{"example":"#ff0000","minLength":1,"type":"string"},"id":{"example":"58e39bbe-fcd1-4fde-887c-f49ff85b9df5","minLength":1,"type":"string"},"name":{"example":"cpu-optimized","minLength":1,"type":"string"}},"required":["id"],"type":"object"},"de.mittwald.v1.article.ArticleTemplate":{"properties":{"additionalArticles":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.article.ReadableBookableArticleOptions"},"type":"array"},"addons":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.article.ArticleAddons"},"type":"array"},"attributes":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.article.ArticleAttributes"},"type":"array"},"description":{"example":"Space-Storage","type":"string"},"id":{"example":"054e27e4-d3ed-4ffc-a472-fbb74a6a2ec1","minLength":1,"type":"string"},"isManagedByDomain":{"type":"boolean"},"isRecurring":{"type":"boolean"},"modifierArticles":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.article.ReadableModifierArticleOptions"},"type":"array"},"name":{"example":"Speicher für Space-Server aller Art","minLength":3,"type":"string"},"type":{"enum":["miscellaneous","base","additional","modifier","setup_fee"],"type":"string"}},"required":["name","isRecurring","type","isManagedByDomain"],"type":"object"},"de.mittwald.v1.article.ReadableArticle":{"properties":{"addons":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.article.ArticleAddons"},"type":"array"},"articleId":{"example":"PS23-BASIC-0001","minLength":3,"type":"string"},"attributes":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.article.ArticleAttributes"},"type":"array"},"balanceAddonKey":{"example":"inclusive_domains","type":"string"},"contractDurationInMonth":{"example":0,"maximum":42,"minimum":0,"type":"number"},"description":{"example":"proSpace without dedicated resources","type":"string"},"forcedInvoicingPeriodInMonth":{"example":0,"minimum":0,"type":"number"},"hasIndependentContractPeriod":{"type":"boolean"},"hideOnInvoice":{"type":"boolean"},"machineType":{"properties":{"cpu":{"example":1,"type":"string"},"memory":{"example":10,"type":"string"},"name":{"example":"psplus-shared","type":"string"}},"required":["name","cpu","memory"],"type":"object"},"modifierArticles":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.article.ReadableModifierArticleOptions"},"type":"array"},"name":{"example":"proSpace lite","minLength":3,"type":"string"},"orderable":{"enum":["forbidden","internal","beta_testing","full","deprecated"],"type":"string"},"possibleArticleChanges":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.article.ReadableChangeArticleOptions"},"type":"array"},"price":{"example":1000,"type":"number"},"tags":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.article.ArticleTag"},"type":"array"},"template":{"$ref":"#/components/schemas/de.mittwald.v1.article.ArticleTemplate"}},"required":["articleId","name","contractDurationInMonth","orderable","template"],"type":"object"},"de.mittwald.v1.backup.BackupTemplate":{"properties":{"expirationTime":{"format":"date-time","type":"string"},"ignoredSources":{"$ref":"#/components/schemas/de.mittwald.v1.backup.IgnoredSources"}},"required":["expirationTime"],"type":"object"},"de.mittwald.v1.backup.DatabaseReference":{"properties":{"kind":{"type":"string"},"name":{"type":"string"}},"required":["kind","name"],"type":"object"},"de.mittwald.v1.backup.IgnoredSources":{"properties":{"databases":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.backup.DatabaseReference"},"type":"array"},"files":{"type":"boolean"}},"required":["files"],"type":"object"},"de.mittwald.v1.backup.ProjectBackup":{"properties":{"createdAt":{"format":"date-time","type":"string"},"deletable":{"type":"boolean"},"description":{"example":"I'm a ProjectBackup","type":"string"},"expiresAt":{"format":"date-time","type":"string"},"export":{"$ref":"#/components/schemas/de.mittwald.v1.backup.ProjectBackupExport"},"id":{"format":"uuid","type":"string"},"parentId":{"format":"uuid","type":"string"},"projectId":{"format":"uuid","type":"string"},"status":{"example":"Completed","type":"string"}},"required":["id","projectId","status","deletable"],"type":"object"},"de.mittwald.v1.backup.ProjectBackupExport":{"properties":{"downloadURL":{"format":"url","type":"string"},"expiresAt":{"format":"date-time","type":"string"},"format":{"example":"tar","type":"string"},"phase":{"enum":["","Pending","Exporting","Failed","Completed","Expired"],"example":"Completed","type":"string"},"withPassword":{"type":"boolean"}},"required":["format","withPassword"],"type":"object"},"de.mittwald.v1.backup.ProjectBackupSchedule":{"properties":{"createdAt":{"format":"date-time","type":"string"},"description":{"description":"Description of this ProjectBackupSchedule.","example":"I'm a ProjectBackupSchedule","type":"string"},"id":{"description":"ID of this ProjectBackupSchedule.","format":"uuid","type":"string"},"isSystemBackup":{"description":"True if this ProjectBackupSchedule was created and is managed by mittwald.","type":"boolean"},"projectId":{"description":"ID of the Project this ProjectBackupSchedule belongs to.","format":"uuid","type":"string"},"schedule":{"description":"Execution schedule in crontab notation.","example":"5 4 * * *","type":"string"},"ttl":{"description":"TTL of the ProjectBackupSchedule as time string.","example":"7d","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","projectId","schedule","isSystemBackup"],"type":"object"},"de.mittwald.v1.contract.AggregateReference":{"properties":{"aggregate":{"example":"project","type":"string"},"domain":{"example":"project","type":"string"},"id":{"example":"a1b8f0e9-904f-4716-a1c0-81ccf5342a56","type":"string"}},"required":["id","domain","aggregate"],"type":"object"},"de.mittwald.v1.contract.Article":{"properties":{"amount":{"example":1,"minimum":1,"type":"integer"},"articleTemplateId":{"example":"a1b8f0e9-904f-4716-a1c0-81ccf5342a56","type":"string"},"description":{"example":"Musterbeschreibung","type":"string"},"id":{"example":"a1b8f0e9-904f-4716-a1c0-81ccf5342a56","type":"string"},"name":{"example":"Musterartikel","type":"string"},"unitPrice":{"$ref":"#/components/schemas/de.mittwald.v1.contract.Price"}},"required":["id","name","articleTemplateId","amount","unitPrice"],"type":"object"},"de.mittwald.v1.contract.Contact":{"properties":{"address":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Address"},"company":{"example":"Musterfirma","type":"string"},"emailAddress":{"format":"email","type":"string"},"firstName":{"example":"Ada","type":"string"},"lastName":{"example":"Lovelace","type":"string"},"phoneNumbers":{"items":{"example":"+49 123 4567890","type":"string"},"type":"array"},"salutation":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Salutation"},"title":{"example":"Dr.","type":"string"},"useFormalTerm":{"type":"boolean"}},"required":["address","salutation"],"type":"object"},"de.mittwald.v1.contract.ContractItem":{"properties":{"activationDate":{"format":"date-time","type":"string"},"aggregateReference":{"$ref":"#/components/schemas/de.mittwald.v1.contract.AggregateReference"},"articles":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.contract.Article"},"type":"array"},"contractPeriod":{"example":1,"minimum":0,"type":"number"},"description":{"example":"Space-Server: \"Mein Space-Server\"","type":"string"},"freeTrialDays":{"example":10,"type":"number"},"groupByProjectId":{"format":"uuid","type":"string"},"invoiceStop":{"description":"If this attribute is set, the contract item will currently only be invoiced until this date.","format":"date-time","type":"string"},"invoicingPeriod":{"example":1,"type":"number"},"isActivated":{"type":"boolean"},"isBaseItem":{"type":"boolean"},"isInFreeTrial":{"type":"boolean"},"isInclusive":{"type":"boolean"},"itemId":{"format":"uuid","type":"string"},"nextPossibleDowngradeDate":{"description":"If this attribute is not set, termination is not allowed.","format":"date-time","type":"string"},"nextPossibleTerminationDate":{"description":"If this attribute is not set, a tariff change is not allowed.","format":"date-time","type":"string"},"nextPossibleUpgradeDate":{"description":"If this attribute is not set, a tariff change is not allowed.","format":"date-time","type":"string"},"orderDate":{"format":"date-time","type":"string"},"orderId":{"format":"uuid","type":"string"},"replacedByItem":{"format":"uuid","type":"string"},"tariffChange":{"$ref":"#/components/schemas/de.mittwald.v1.contract.TariffChange"},"termination":{"$ref":"#/components/schemas/de.mittwald.v1.contract.Termination"},"totalPrice":{"$ref":"#/components/schemas/de.mittwald.v1.contract.Price"}},"required":["itemId","isActivated","contractPeriod","articles","totalPrice","description","isBaseItem"],"type":"object"},"de.mittwald.v1.contract.Contract":{"properties":{"additionalItems":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.contract.ContractItem"},"type":"array"},"baseItem":{"$ref":"#/components/schemas/de.mittwald.v1.contract.ContractItem"},"contractId":{"format":"uuid","type":"string"},"contractNumber":{"example":"V1234567","type":"string"},"customerId":{"example":"3a201faa-5160-47e0-a758-325ba794b543","type":"string"},"termination":{"$ref":"#/components/schemas/de.mittwald.v1.contract.Termination"}},"required":["contractId","contractNumber","customerId","baseItem"],"type":"object"},"de.mittwald.v1.contract.Error":{"properties":{"message":{"example":"Something went wrong","type":"string"},"type":{"example":"InternalServerError","type":"string"}},"required":["type","message"],"type":"object"},"de.mittwald.v1.contract.Price":{"properties":{"currency":{"enum":["EUR"],"type":"string"},"value":{"description":"The value of the price in the smallest currency unit (e.g. cents)","example":100,"type":"integer"}},"required":["value","currency"],"type":"object"},"de.mittwald.v1.contract.TariffChange":{"properties":{"newArticles":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.contract.Article"},"type":"array"},"scheduledAtDate":{"format":"date-time","type":"string"},"scheduledByUserId":{"type":"string"},"targetDate":{"format":"date-time","type":"string"}},"required":["scheduledAtDate","targetDate","newArticles"],"type":"object"},"de.mittwald.v1.contract.Termination":{"properties":{"reason":{"example":"Not needed anymore","type":"string"},"scheduledAtDate":{"format":"date-time","type":"string"},"scheduledByUserId":{"type":"string"},"targetDate":{"format":"date-time","type":"string"}},"required":["scheduledAtDate","targetDate"],"type":"object"},"de.mittwald.v1.conversation.AggregateReference":{"properties":{"aggregate":{"type":"string"},"domain":{"type":"string"},"id":{"type":"string"}},"required":["id","aggregate","domain"],"type":"object"},"de.mittwald.v1.conversation.CategoryReferenceType":{"items":{"enum":["unspecified","server","project","organisation"],"type":"string"},"type":"array"},"de.mittwald.v1.conversation.Category":{"properties":{"categoryId":{"format":"uuid","type":"string"},"name":{"type":"string"},"referenceType":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.CategoryReferenceType"}},"required":["categoryId","name","referenceType"],"type":"object"},"de.mittwald.v1.conversation.ConversationMembers":{"items":{"allOf":[{"$ref":"#/components/schemas/de.mittwald.v1.conversation.User"},{"properties":{"active":{"type":"boolean"}},"required":["active"],"type":"object"}]},"type":"array"},"de.mittwald.v1.conversation.ConversationPreferences":{"properties":{"customerId":{"format":"uuid","type":"string"},"preferredUsers":{"properties":{"categoryUserPairs":{"additionalProperties":{"format":"uuid","type":"string"},"type":"object"},"fallback":{"format":"uuid","type":"string"}},"type":"object"}},"required":["customerId","preferredUsers"],"type":"object"},"de.mittwald.v1.conversation.Conversation":{"properties":{"category":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.Category"},"conversationId":{"format":"uuid","type":"string"},"createdAt":{"format":"date-time","type":"string"},"createdBy":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.User"},"lastMessageAt":{"format":"date-time","type":"string"},"lastMessageBy":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.User"},"mainUser":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.User"},"relatedTo":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.AggregateReference"},"relations":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.AggregateReference"},"type":"array"},"sharedWith":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.AggregateReference"},"shortId":{"type":"string"},"status":{"enum":["open","closed","answered","inProgress"],"type":"string"},"title":{"type":"string"},"visibility":{"enum":["shared","private"],"type":"string"}},"required":["conversationId","shortId","title","createdAt","status","visibility","mainUser"],"type":"object"},"de.mittwald.v1.conversation.GetConversationIdResponse":{"properties":{"conversationId":{"format":"uuid","type":"string"},"shortId":{"type":"string"}},"required":["shortId","conversationId"],"type":"object"},"de.mittwald.v1.conversation.Department":{"enum":["development","mail","infra","marketing","network","dataCenter","accounting","customerService","cloudHosting","software","generic","security"],"type":"string"},"de.mittwald.v1.conversation.Error":{"properties":{"message":{"type":"string"},"type":{"type":"string"}},"required":["type","message"],"type":"object"},"de.mittwald.v1.conversation.RequestedFile":{"properties":{"id":{"format":"uuid","type":"string"},"status":{"enum":["requested"],"type":"string"}},"required":["id","status"],"type":"object"},"de.mittwald.v1.conversation.File":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.conversation.RequestedFile"},{"$ref":"#/components/schemas/de.mittwald.v1.conversation.UploadedFile"}]},"de.mittwald.v1.conversation.UploadedFile":{"properties":{"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"status":{"enum":["uploaded"],"type":"string"},"type":{"type":"string"}},"required":["id","status","name","type"],"type":"object"},"de.mittwald.v1.conversation.Message":{"properties":{"conversationId":{"format":"uuid","type":"string"},"createdAt":{"format":"date-time","type":"string"},"createdBy":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.User"},"files":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.File"},"type":"array"},"internal":{"type":"boolean"},"messageContent":{"type":"string"},"messageId":{"format":"uuid","type":"string"},"type":{"enum":["MESSAGE"],"type":"string"}},"required":["messageId","conversationId","createdAt","type"],"type":"object"},"de.mittwald.v1.conversation.ShareableAggregateReference":{"oneOf":[{"properties":{"aggregate":{"enum":["user"],"type":"string"},"domain":{"enum":["user"],"type":"string"},"id":{"type":"string"}},"required":["id","aggregate","domain"],"type":"object"},{"properties":{"aggregate":{"enum":["customer"],"type":"string"},"domain":{"enum":["customer"],"type":"string"},"id":{"type":"string"}},"required":["id","aggregate","domain"],"type":"object"},{"properties":{"aggregate":{"enum":["project"],"type":"string"},"domain":{"enum":["project"],"type":"string"},"id":{"type":"string"}},"required":["id","aggregate","domain"],"type":"object"},{"properties":{"aggregate":{"enum":["placementgroup"],"type":"string"},"domain":{"enum":["project"],"type":"string"},"id":{"type":"string"}},"required":["id","aggregate","domain"],"type":"object"}]},"de.mittwald.v1.conversation.StatusUpdate":{"properties":{"conversationId":{"type":"string"},"createdAt":{"type":"string"},"internal":{"type":"boolean"},"messageContent":{"type":"string"},"meta":{"properties":{"user":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.User"}},"type":"object"},"type":{"enum":["STATUS_UPDATE"],"type":"string"}},"required":["conversationId","messageContent","createdAt","type"],"type":"object"},"de.mittwald.v1.conversation.User":{"properties":{"active":{"type":"boolean"},"avatarRefId":{"type":"string"},"clearName":{"type":"string"},"department":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.Department"},"userId":{"type":"string"}},"required":["userId"],"type":"object"},"de.mittwald.v1.strace.Data":{"properties":{"actualUrl":{"example":"https://www.mittwald.de/~b","type":"string"},"dbQueries":{"items":{"properties":{"query":{"description":"The whole DB query.","example":"SELECT * FROM my_table;","type":"string"},"stats":{"$ref":"#/components/schemas/de.mittwald.v1.strace.Statistics"},"warnLevel":{"description":"Alerts when the time, syscall count or occurrence count of this group are abnormal.","enum":["NO","WARN","SEVERE"],"type":"string"}},"required":["query","stats","warnLevel"],"type":"object"},"type":"array"},"dbStats":{"$ref":"#/components/schemas/de.mittwald.v1.strace.Statistics"},"fileOps":{"items":{"properties":{"filename":{"example":"my_file.php","type":"string"},"filepath":{"example":"/html/my-project","type":"string"},"stats":{"$ref":"#/components/schemas/de.mittwald.v1.strace.Statistics"},"warnLevel":{"description":"Alerts when the time, syscall count or occurrence count of this group are abnormal.","enum":["NO","WARN","SEVERE"],"type":"string"}},"required":["stats","warnLevel"],"type":"object"},"type":"array"},"fileOpsStats":{"$ref":"#/components/schemas/de.mittwald.v1.strace.Statistics"},"miscStats":{"$ref":"#/components/schemas/de.mittwald.v1.strace.Statistics"},"networkingOps":{"items":{"properties":{"connectionType":{"enum":["UNKNOWN","PRIVATE","EXTERNAL"],"type":"string"},"description":{"description":"A short description of the network connection to provide additional context.","type":"string"},"ip":{"description":"IP address to which a connection was established.","type":"string"},"port":{"description":"Port to which a connection was established.","type":"integer"},"stats":{"$ref":"#/components/schemas/de.mittwald.v1.strace.Statistics"},"warnLevel":{"description":"Alerts when the time, syscall count or occurrence count of this group are abnormal.","enum":["NO","WARN","SEVERE"],"type":"string"}},"required":["ip","port","description","connectionType","stats","warnLevel"],"type":"object"},"type":"array"},"networkingStats":{"$ref":"#/components/schemas/de.mittwald.v1.strace.Statistics"},"slowdownFactor":{"description":"Shows how much slower the websites TTFB was when it got traced (1.0 = 100% = same TTFB).","example":1.5,"type":"number"},"ttfbMs":{"description":"Time to first byte in milliseconds while tracing the website.","example":1532,"type":"integer"}},"required":["actualUrl","ttfbMs","slowdownFactor","fileOpsStats","networkingStats","dbStats","miscStats","fileOps","networkingOps","dbQueries"],"type":"object"},"de.mittwald.v1.strace.Error":{"properties":{"errorMessage":{"example":"wrong PHP version","type":"string"}},"required":["errorMessage"],"type":"object"},"de.mittwald.v1.strace.Statistics":{"properties":{"kernelMs":{"description":"Elapsed kernel space time in milliseconds.","example":1.2345,"type":"number"},"occurrences":{"description":"The number of times this group occurred.","example":25,"type":"integer"},"syscallCount":{"description":"Syscall count.","example":4321,"type":"integer"},"userspaceMs":{"description":"Elapsed user space time in milliseconds.","example":1.2345,"type":"number"}},"required":["kernelMs","userspaceMs","syscallCount","occurrences"],"type":"object"},"de.mittwald.v1.cronjob.CronjobCommand":{"properties":{"interpreter":{"example":"/usr/bin/bash","type":"string"},"parameters":{"example":"--debug","type":"string"},"path":{"example":"/html/my-wordpress/script.sh","type":"string"}},"required":["interpreter","path"],"type":"object"},"de.mittwald.v1.cronjob.Cronjob":{"properties":{"active":{"type":"boolean"},"appId":{"format":"uuid","type":"string"},"createdAt":{"format":"date-time","type":"string"},"description":{"example":"i am a cronjob","type":"string"},"destination":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.cronjob.CronjobUrl"},{"$ref":"#/components/schemas/de.mittwald.v1.cronjob.CronjobCommand"}]},"email":{"format":"email","type":"string"},"id":{"format":"uuid","type":"string"},"interval":{"example":"*/5 * * * *","type":"string"},"latestExecution":{"$ref":"#/components/schemas/de.mittwald.v1.cronjob.CronjobExecution"},"nextExecutionTime":{"format":"date-time","type":"string"},"projectId":{"format":"uuid","type":"string"},"shortId":{"example":"cron-bd26li","type":"string"},"timeout":{"maximum":86400,"minimum":1,"type":"number"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","appId","shortId","interval","active","createdAt","updatedAt","description","destination","timeout"],"type":"object"},"de.mittwald.v1.cronjob.CronjobExecution":{"properties":{"abortedBy":{"properties":{"id":{"format":"uuid","type":"string"}},"type":"object"},"durationInMilliseconds":{"example":12374,"format":"int64","type":"integer"},"end":{"format":"date-time","type":"string"},"executionEnd":{"deprecated":true,"format":"date-time","type":"string"},"executionStart":{"deprecated":true,"format":"date-time","type":"string"},"id":{"example":"cron-bd26li-28027320","type":"string"},"logPath":{"example":"/var/log/cronjobs/cron-bd26li-28027320.log","type":"string"},"start":{"format":"date-time","type":"string"},"status":{"enum":["Complete","Failed","AbortedBySystem","Pending","Running","AbortedByUser","TimedOut"],"type":"string"},"successful":{"type":"boolean"},"triggeredBy":{"properties":{"id":{"format":"uuid","type":"string"}},"type":"object"}},"required":["id","status","successful"],"type":"object"},"de.mittwald.v1.cronjob.CronjobRequest":{"properties":{"active":{"type":"boolean"},"appId":{"format":"uuid","type":"string"},"description":{"example":"i am a cronjob","type":"string"},"destination":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.cronjob.CronjobUrl"},{"$ref":"#/components/schemas/de.mittwald.v1.cronjob.CronjobCommand"}]},"email":{"format":"email","type":"string"},"interval":{"example":"*/5 * * * *","type":"string"},"timeout":{"maximum":86400,"minimum":1,"type":"number"}},"required":["appId","description","destination","interval","active","timeout"],"type":"object"},"de.mittwald.v1.cronjob.CronjobUrl":{"properties":{"url":{"example":"https://mydomain.com","type":"string"}},"required":["url"],"type":"object"},"de.mittwald.v1.customer.Category":{"properties":{"id":{"type":"string"},"isPublic":{"type":"boolean"},"name":{"type":"string"},"useAgencyDomainPrices":{"type":"boolean"},"useAgencySslPrices":{"type":"boolean"}},"required":["id","name","isPublic","useAgencyDomainPrices","useAgencySslPrices"],"type":"object"},"de.mittwald.v1.customer.Contact":{"properties":{"address":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Address"},"company":{"type":"string"},"emailAddress":{"format":"email","type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"phoneNumbers":{"items":{"type":"string"},"type":"array"},"salutation":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Salutation"},"title":{"type":"string"},"useFormalTerm":{"type":"boolean"}},"required":["address","salutation"],"type":"object"},"de.mittwald.v1.customer.CustomerMeta":{"properties":{"avatarRefId":{"type":"string"},"customerId":{"type":"string"},"name":{"type":"string"}},"required":["customerId","name"],"type":"object"},"de.mittwald.v1.customer.Role":{"description":"the role within a customer","enum":["owner","member","accountant"],"type":"string"},"de.mittwald.v1.customer.Customer":{"properties":{"activeSuspension":{"properties":{"createdAt":{"format":"date-time","type":"string"}},"required":["createdAt"],"type":"object"},"avatarRefId":{"type":"string"},"categoryId":{"type":"string"},"creationDate":{"format":"date-time","type":"string"},"customerId":{"type":"string"},"customerNumber":{"type":"string"},"executingUserRoles":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.customer.Role"},"type":"array"},"isBanned":{"type":"boolean"},"isInDefaultOfPayment":{"type":"boolean"},"memberCount":{"minimum":0,"type":"integer"},"name":{"type":"string"},"owner":{"$ref":"#/components/schemas/de.mittwald.v1.customer.Contact"},"projectCount":{"minimum":0,"type":"integer"},"vatId":{"type":"string"},"vatIdValidationState":{"enum":["valid","invalid","pending","unspecified"],"type":"string"}},"required":["customerId","customerNumber","name","creationDate","memberCount","projectCount"],"type":"object"},"de.mittwald.v1.database.CreateMySqlDatabase":{"properties":{"characterSettings":{"$ref":"#/components/schemas/de.mittwald.v1.database.characterSettings"},"description":{"type":"string"},"projectId":{"format":"uuid","type":"string"},"version":{"type":"string"}},"required":["projectId","version","description"],"type":"object"},"de.mittwald.v1.database.CreateMySqlUser":{"properties":{"accessIpMask":{"type":"string"},"accessLevel":{"enum":["full","readonly"],"type":"string"},"databaseId":{"format":"uuid","type":"string"},"description":{"type":"string"},"externalAccess":{"type":"boolean"},"password":{"type":"string"}},"required":["databaseId","password","description","accessLevel"],"type":"object"},"de.mittwald.v1.database.CreateMySqlUserWithDatabase":{"properties":{"accessIpMask":{"type":"string"},"accessLevel":{"enum":["full","readonly"],"type":"string"},"externalAccess":{"type":"boolean"},"password":{"type":"string"}},"required":["password","accessLevel"],"type":"object"},"de.mittwald.v1.database.DatabaseStatus":{"enum":["pending","ready","migrating","importing","error"],"type":"string"},"de.mittwald.v1.database.MySqlCharacterSettings":{"properties":{"collations":{"example":["utf8_general_ci","utf8_bin","utf8_unicode_ci"],"items":{"type":"string"},"type":"array"},"name":{"example":"utf8","type":"string"},"versionId":{"example":"mysql57","type":"string"}},"required":["name","collations","versionId"],"type":"object"},"de.mittwald.v1.database.characterSettings":{"properties":{"characterSet":{"type":"string"},"collation":{"type":"string"}},"required":["characterSet","collation"],"type":"object"},"de.mittwald.v1.database.MySqlDatabase":{"properties":{"characterSettings":{"$ref":"#/components/schemas/de.mittwald.v1.database.characterSettings"},"createdAt":{"format":"date-time","type":"string"},"description":{"type":"string"},"finalizers":{"items":{"minLength":1,"type":"string"},"type":"array","uniqueItems":true},"hostname":{"type":"string"},"id":{"format":"uuid","type":"string"},"isReady":{"type":"boolean"},"isShared":{"type":"boolean"},"name":{"type":"string"},"projectId":{"format":"uuid","type":"string"},"status":{"$ref":"#/components/schemas/de.mittwald.v1.database.DatabaseStatus"},"statusSetAt":{"format":"date-time","type":"string"},"storageUsageInBytes":{"type":"integer"},"storageUsageInBytesSetAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"version":{"type":"string"}},"required":["id","createdAt","updatedAt","projectId","name","description","version","characterSettings","hostname","isShared","isReady","storageUsageInBytes","storageUsageInBytesSetAt","status","statusSetAt"],"type":"object"},"de.mittwald.v1.database.PhpMyAdminURL":{"properties":{"url":{"type":"string"}},"required":["url"],"type":"object"},"de.mittwald.v1.database.MySqlUser":{"properties":{"accessIpMask":{"type":"string"},"accessLevel":{"enum":["full","readonly"],"type":"string"},"createdAt":{"format":"date-time","type":"string"},"databaseId":{"format":"uuid","type":"string"},"description":{"type":"string"},"disabled":{"type":"boolean"},"externalAccess":{"type":"boolean"},"id":{"format":"uuid","type":"string"},"mainUser":{"type":"boolean"},"name":{"type":"string"},"passwordUpdatedAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","createdAt","updatedAt","databaseId","name","passwordUpdatedAt","mainUser","disabled","accessLevel","externalAccess"],"type":"object"},"de.mittwald.v1.database.MySqlVersion":{"properties":{"disabled":{"type":"boolean"},"id":{"type":"string"},"name":{"type":"string"},"number":{"type":"string"}},"required":["id","name","number","disabled"],"type":"object"},"de.mittwald.v1.database.RedisDatabaseConfiguration":{"description":"The configuration for a RedisDatabase.","properties":{"additionalFlags":{"description":"Additional flags passed to the database.","items":{"minLength":1,"type":"string"},"type":"array","uniqueItems":true},"maxMemory":{"description":"The database's maximum memory. This may be a number, optionally suffixed by one of the IEC binary suffixes `Ki`, `Mi` or `Gi`.","example":"64Mi","type":"string"},"maxMemoryPolicy":{"description":"The database's key eviction policy. See the [Redis documentation on key evictions](https://redis.io/docs/reference/eviction/) for more information.","example":"allkeys-lru","type":"string"},"persistent":{"description":"Persistent status of the database.","type":"boolean"}},"type":"object"},"de.mittwald.v1.database.RedisDatabase":{"example":{"configuration":{"additionalFlags":["--tcp-keepalive","300"],"maxMemory":"16Mi","maxMemoryPolicy":"allkeys-lru","persistent":"true"},"createdAt":"2023-03-28T13:15:00.000Z","description":"My first RedisDatabase!","finalizers":["app:appinstallation:28471edf-d266-4d79-8ca8-169e330746db"],"hostname":"redis-xxxxxx.pg-example.db.example.com","id":"fcfe9aea-84d5-46eb-ac6f-a0ccffa908b1","name":"redis_xxxxxx","port":6379,"projectId":"9f2bddf1-dea6-4441-b4fe-a22ff39caff8","status":"error","statusSetAt":"2024-03-05T9:26:32.000Z","storageUsageInBytes":10485760,"storageUsageInBytesSetAt":"2024-03-05T9:26:32.000Z","updatedAt":"2023-03-29T15:50:10.000Z","version":"7.0"},"properties":{"configuration":{"$ref":"#/components/schemas/de.mittwald.v1.database.RedisDatabaseConfiguration"},"createdAt":{"format":"date-time","type":"string"},"description":{"type":"string"},"finalizers":{"items":{"minLength":1,"type":"string"},"type":"array","uniqueItems":true},"hostname":{"type":"string"},"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"port":{"type":"integer"},"projectId":{"format":"uuid","type":"string"},"status":{"$ref":"#/components/schemas/de.mittwald.v1.database.DatabaseStatus"},"statusSetAt":{"format":"date-time","type":"string"},"storageUsageInBytes":{"type":"integer"},"storageUsageInBytesSetAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"version":{"type":"string"}},"required":["id","projectId","version","hostname","port","description","createdAt","updatedAt","name","storageUsageInBytes","storageUsageInBytesSetAt","status","statusSetAt"],"type":"object"},"de.mittwald.v1.database.RedisVersion":{"properties":{"disabled":{"type":"boolean"},"id":{"type":"string"},"name":{"type":"string"},"number":{"type":"string"}},"required":["id","name","number","disabled"],"type":"object"},"de.mittwald.v1.dns.RecordCNAME":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordUnset"},{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordCNAMEComponent"}]},"de.mittwald.v1.dns.RecordCNAMEComponent":{"properties":{"fqdn":{"format":"idn-dnsname","type":"string"},"settings":{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordSettings"}},"required":["settings","fqdn"],"type":"object"},"de.mittwald.v1.dns.RecordCombinedA":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordUnset"},{"$ref":"#/components/schemas/de.mittwald.v1.dns.CombinedACustom"},{"$ref":"#/components/schemas/de.mittwald.v1.dns.CombinedAManaged"}]},"de.mittwald.v1.dns.CombinedAManagedAAAARecord":{"format":"ipv6","type":"string"},"de.mittwald.v1.dns.CombinedAManagedARecord":{"format":"ipv4","type":"string"},"de.mittwald.v1.dns.CombinedACustom":{"properties":{"a":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.dns.CombinedAManagedARecord"},"maxItems":10,"type":"array"},"aaaa":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.dns.CombinedAManagedAAAARecord"},"maxItems":10,"type":"array"},"settings":{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordSettings"}},"required":["settings","a","aaaa"],"type":"object"},"de.mittwald.v1.dns.CombinedAManaged":{"properties":{"managedBy":{"oneOf":[{"properties":{"ingressId":{"format":"uuid","type":"string"}},"required":["ingressId"],"type":"object"}]}},"required":["managedBy"],"type":"object"},"de.mittwald.v1.dns.RecordMX":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordUnset"},{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordMXManaged"},{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordMXCustom"}]},"de.mittwald.v1.dns.RecordMXCustom":{"properties":{"records":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordMXRecord"},"maxItems":10,"minItems":1,"type":"array","uniqueItems":true},"settings":{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordSettings"}},"required":["settings","records"],"type":"object"},"de.mittwald.v1.dns.RecordMXManaged":{"properties":{"managed":{"type":"boolean"}},"required":["managed"],"type":"object"},"de.mittwald.v1.dns.RecordMXRecord":{"properties":{"fqdn":{"format":"idn-dnsname","maxLength":50,"minLength":1,"type":"string"},"priority":{"maximum":100,"minimum":0,"type":"integer"}},"required":["priority","fqdn"],"type":"object"},"de.mittwald.v1.dns.RecordSettings":{"properties":{"ttl":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.dns.TtlSeconds"},{"$ref":"#/components/schemas/de.mittwald.v1.dns.TtlAuto"}]}},"type":"object"},"de.mittwald.v1.dns.RecordSRV":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordUnset"},{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordSRVComponent"}]},"de.mittwald.v1.dns.RecordSRVComponent":{"additionalProperties":false,"properties":{"records":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordSRVRecord"},"minItems":1,"type":"array"},"settings":{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordSettings"}},"required":["settings","records"],"type":"object"},"de.mittwald.v1.dns.RecordSRVRecord":{"additionalProperties":false,"properties":{"fqdn":{"format":"idn-dnsname","maxLength":50,"minLength":1,"type":"string"},"port":{"maximum":65535,"minimum":0,"type":"integer"},"priority":{"maximum":65535,"minimum":0,"type":"integer"},"weight":{"maximum":65535,"minimum":0,"type":"integer"}},"required":["port","fqdn"],"type":"object"},"de.mittwald.v1.dns.RecordTXT":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordUnset"},{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordTXTComponent"}]},"de.mittwald.v1.dns.RecordTXTComponent":{"additionalProperties":false,"properties":{"entries":{"items":{"maxLength":2048,"type":"string"},"maxItems":20,"type":"array"},"settings":{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordSettings"}},"required":["settings","entries"],"type":"object"},"de.mittwald.v1.dns.RecordUnset":{"additionalProperties":false,"properties":{},"type":"object"},"de.mittwald.v1.dns.TtlAuto":{"properties":{"auto":{"description":"this will always be true","type":"boolean"}},"required":["auto"],"type":"object"},"de.mittwald.v1.dns.TtlSeconds":{"properties":{"seconds":{"maximum":86400,"minimum":300,"type":"integer"}},"required":["seconds"],"type":"object"},"de.mittwald.v1.dns.Zone":{"properties":{"domain":{"type":"string"},"id":{"format":"uuid","type":"string"},"recordSet":{"properties":{"cname":{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordCNAME"},"combinedARecords":{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordCombinedA"},"mx":{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordMX"},"srv":{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordSRV"},"txt":{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordTXT"}},"required":["combinedARecords","cname","mx","txt","srv"],"type":"object"}},"required":["id","domain","recordSet"],"type":"object"},"de.mittwald.v1.domain.AuthCode":{"properties":{"expires":{"format":"date-time","type":"string"},"value":{"type":"string"}},"required":["value"],"type":"object"},"de.mittwald.v1.domain.AuthCode2":{"properties":{"expires":{"format":"date-time","type":"string"}},"required":["expires"],"type":"object"},"de.mittwald.v1.domain.CreateDomainHandleData":{"properties":{"adminC":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.domain.HandleField"},"type":"array"},"ownerC":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.domain.HandleField"},"type":"array"}},"required":["ownerC"],"type":"object"},"de.mittwald.v1.domain.Domain":{"properties":{"authCode":{"$ref":"#/components/schemas/de.mittwald.v1.domain.AuthCode"},"authCode2":{"$ref":"#/components/schemas/de.mittwald.v1.domain.AuthCode2"},"connected":{"type":"boolean"},"deleted":{"type":"boolean"},"domain":{"format":"naked-domain","type":"string"},"domainId":{"format":"uuid","type":"string"},"handles":{"properties":{"adminC":{"$ref":"#/components/schemas/de.mittwald.v1.domain.HandleReadable"},"ownerC":{"$ref":"#/components/schemas/de.mittwald.v1.domain.HandleReadable"}},"required":["ownerC"],"type":"object"},"nameservers":{"items":{"format":"idn-hostname","type":"string"},"type":"array","uniqueItems":true},"processes":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.domain.Process"},"type":"array"},"projectId":{"format":"uuid","type":"string"},"transferInAuthCode":{"type":"string"},"usesDefaultNameserver":{"type":"boolean"}},"required":["domainId","domain","projectId","deleted","nameservers","handles","connected","usesDefaultNameserver","hasAuthCode"],"type":"object"},"de.mittwald.v1.domain.HandleData":{"properties":{"handleFields":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.domain.HandleField"},"type":"array"},"handleRef":{"type":"string"}},"type":"object"},"de.mittwald.v1.domain.HandleField":{"properties":{"name":{"type":"string"},"value":{"pattern":"^[0-9a-zA-ZÀ-ÖØ-öø-ÿ /&()+,.@_-]+$","type":"string"}},"required":["name","value"],"type":"object"},"de.mittwald.v1.domain.HandleReadable":{"properties":{"current":{"$ref":"#/components/schemas/de.mittwald.v1.domain.HandleData"},"desired":{"$ref":"#/components/schemas/de.mittwald.v1.domain.HandleData"}},"required":["current"],"type":"object"},"de.mittwald.v1.domain.Process":{"properties":{"error":{"type":"string"},"lastUpdate":{"format":"date-time","type":"string"},"processType":{"$ref":"#/components/schemas/de.mittwald.v1.domain.ProcessType"},"state":{"$ref":"#/components/schemas/de.mittwald.v1.domain.ProcessState"},"status":{"type":"string"},"statusCode":{"type":"string"},"transactionId":{"type":"string"}},"required":["transactionId","processType","state","lastUpdate"],"type":"object"},"de.mittwald.v1.domain.ProcessState":{"enum":["UNSPECIFIED","REQUESTED","FAILED"],"type":"string"},"de.mittwald.v1.domain.ProcessType":{"enum":["UNSPECIFIED","REGISTER","TRANSFER","DELETE","TRANSIT","RESTORE","UPDATE","TRANSFER_OUT","OWNER_CHANGE","DECLARE_REQUESTED"],"type":"string"},"de.mittwald.v1.domain.Registrar":{"enum":["INTERNETX","DENIC","HEXONET"],"type":"string"},"de.mittwald.v1.domain.TopLevel":{"properties":{"irtp":{"type":"boolean"},"rgpDays":{"minimum":0,"type":"integer"},"tld":{"type":"string"},"transferAuthCodeRequired":{"deprecated":true,"type":"boolean"},"transferAuthentication":{"$ref":"#/components/schemas/de.mittwald.v1.domain.TransferAuthentication"}},"required":["tld","rgpDays","irtp","transferAuthCodeRequired","transferAuthentication"],"type":"object"},"de.mittwald.v1.domain.TransferAuthentication":{"enum":["unspecified","code","email","push"],"type":"string"},"de.mittwald.v1.marketplace.Contributor":{"properties":{"customerId":{"format":"uuid","type":"string"},"email":{"type":"string"},"id":{"format":"uuid","type":"string"},"logoRefId":{"type":"string"},"name":{"type":"string"},"phone":{"type":"string"},"state":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ContributorState"},"url":{"type":"string"}},"required":["id","customerId","state","name"],"type":"object"},"de.mittwald.v1.marketplace.ContributorState":{"enum":["enabled","disabled"],"type":"string"},"de.mittwald.v1.marketplace.Extension":{"properties":{"blocked":{"type":"boolean"},"context":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.Context"},"contributorId":{"format":"uuid","type":"string"},"description":{"type":"string"},"detailedDescriptions":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.DetailedDescriptions"},"disabled":{"type":"boolean"},"frontendComponents":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ExternalComponent"},"type":"array"},"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"scopes":{"items":{"type":"string"},"type":"array"},"state":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ExtensionState"},"support":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.SupportMeta"},"tags":{"items":{"type":"string"},"minItems":0,"type":"array"}},"required":["id","contributorId","support","state","name","description","tags","context","scopes","disabled","blocked"],"type":"object"},"de.mittwald.v1.marketplace.Context":{"enum":["project","customer"],"type":"string"},"de.mittwald.v1.marketplace.ExtensionInstance":{"properties":{"aggregateReference":{"properties":{"aggregate":{"type":"string"},"domain":{"type":"string"},"id":{"format":"uuid","type":"string"}},"required":["id","domain","aggregate"],"type":"object"},"consentedScopes":{"items":{"type":"string"},"type":"array"},"createdAt":{"format":"date-time","type":"string"},"disabled":{"default":false,"type":"boolean"},"extensionId":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"}},"required":["id","extensionId","disabled","consentedScopes","aggregateReference"],"type":"object"},"de.mittwald.v1.marketplace.ExtensionState":{"deprecated":true,"description":"deprecated","enum":["enabled","blocked","disabled"],"type":"string"},"de.mittwald.v1.marketplace.ExternalComponent":{"properties":{"name":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"type":"object"},"de.mittwald.v1.marketplace.PublicKey":{"properties":{"algorithm":{"example":"Ed25519","type":"string"},"key":{"description":"base64 encoded public key","format":"byte","type":"string"},"serial":{"format":"uuid","type":"string"}},"required":["serial","algorithm","key"],"type":"object"},"de.mittwald.v1.marketplace.SupportMeta":{"properties":{"email":{"example":"a.lovelace@example.com","type":"string"},"phone":{"type":"string"}},"type":"object"},"de.mittwald.v1.fee.FeeStrategy":{"description":"A strategy for fees of resources.","oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.fee.OneTimePaymentFeeStrategy"},{"$ref":"#/components/schemas/de.mittwald.v1.fee.PeriodBasedFeeStrategy"}]},"de.mittwald.v1.fee.OneTimePaymentFeeStrategy":{"description":"A strategy for fees that occur once.","properties":{"price":{"description":"The one-time price in Euro Cents.","type":"number"}},"required":["price"],"type":"object"},"de.mittwald.v1.fee.PeriodBasedFeeStrategy":{"description":"A strategy for fees that occur periodically","properties":{"periods":{"items":{"properties":{"feeValidFrom":{"format":"date-time","type":"string"},"feeValidUntil":{"format":"date-time","type":"string"},"monthlyPrice":{"description":"The monthly price in Euro Cents.","type":"number"}},"required":["monthlyPrice"],"type":"object"},"type":"array"}},"required":["periods"],"type":"object"},"de.mittwald.v1.fee.ResourceFee":{"description":"A Fee of a Resource","properties":{"feeStrategy":{"$ref":"#/components/schemas/de.mittwald.v1.fee.FeeStrategy"},"id":{"description":"The id of the given Resource","example":"1241a1de-b633-4e6e-9aa5-7e878ccd6864","type":"string"}},"required":["id"],"type":"object"},"de.mittwald.v1.file.FileMeta":{"properties":{"friendlyURL":{"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6/me.jpeg","type":"string"},"id":{"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6","format":"uuid","type":"string"},"mimeType":{"example":"image/jpeg","type":"string"},"name":{"example":"me.jpeg","type":"string"},"sizeInBytes":{"example":300,"type":"integer"},"type":{"deprecated":true,"description":"deprecated, see mimeType","example":"image/jpeg","type":"string"}},"required":["id","name","type","friendlyURL","sizeInBytes","mimeType"],"type":"object"},"de.mittwald.v1.file.FileType":{"properties":{"extensions":{"items":{"example":[".jpe",".jpeg",".jpg"],"type":"string"},"type":"array"},"mimeType":{"example":"image/jpeg","type":"string"}},"required":["mimeType","extensions"],"type":"object"},"de.mittwald.v1.file.FileUploadRules":{"properties":{"extensions":{"items":{"example":[".png",".jpeg",".jpg"],"type":"string"},"type":"array"},"fileTypes":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.file.FileType"},"type":"array"},"maxSizeInBytes":{"example":1000000,"type":"integer"},"maxSizeInKB":{"deprecated":true,"description":"deprecated, see maxSizeInBytes","example":1000,"type":"integer"},"mimeTypes":{"items":{"example":["image/png","image/jpeg"],"type":"string"},"type":"array"},"properties":{"properties":{"imageDimensions":{"properties":{"max":{"properties":{"height":{"type":"integer"},"width":{"type":"integer"}},"type":"object"},"min":{"properties":{"height":{"type":"integer"},"width":{"type":"integer"}},"type":"object"}},"type":"object"}},"type":"object"}},"required":["maxSizeInBytes","maxSizeInKB","mimeTypes","fileTypes","extensions"],"type":"object"},"de.mittwald.v1.ingress.Ingress":{"properties":{"dnsValidationErrors":{"description":"A list of errors that occurred while validating the ingress's dns before requesting a certificate.","items":{"enum":["ERROR_UNSPECIFIED","ERROR_QUAD_A","ERROR_NO_A_RECORD","ERROR_ACME_CERTIFICATE_REQUEST_DEADLINE_EXCEEDED"],"type":"string"},"type":"array"},"hostname":{"format":"idn-hostname","type":"string"},"id":{"format":"uuid","type":"string"},"ips":{"properties":{"v4":{"items":{"format":"ipv4","type":"string"},"type":"array"}},"required":["v4"],"type":"object"},"isDefault":{"description":"Whether this ingress is the default ingress or not. A default ingress is automatically created, it cannot be deleted. There can be only one default ingress per project.","type":"boolean"},"isDomain":{"type":"boolean"},"isEnabled":{"type":"boolean"},"ownership":{"$ref":"#/components/schemas/de.mittwald.v1.ingress.Ownership"},"paths":{"description":"A list of paths. The default path `/` is always present and cannot be removed.","items":{"$ref":"#/components/schemas/de.mittwald.v1.ingress.Path"},"type":"array"},"projectId":{"format":"uuid","type":"string"},"tls":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.ingress.TlsAcme"},{"$ref":"#/components/schemas/de.mittwald.v1.ingress.TlsCertificate"}]}},"required":["id","hostname","projectId","isDefault","tls","paths","isEnabled","ips","dnsValidationErrors","ownership"],"type":"object"},"de.mittwald.v1.ingress.IngressDeprecated":{"properties":{"dnsValidationErrors":{"description":"A list of errors that occurred while validating the ingress's dns before requesting a certificate.","items":{"enum":["ERROR_UNSPECIFIED","ERROR_QUAD_A","ERROR_NO_A_RECORD","ERROR_ACME_CERTIFICATE_REQUEST_DEADLINE_EXCEEDED"],"type":"string"},"type":"array"},"hostname":{"format":"idn-hostname","type":"string"},"id":{"format":"uuid","type":"string"},"ips":{"properties":{"v4":{"items":{"format":"ipv4","type":"string"},"type":"array"}},"required":["v4"],"type":"object"},"isDefault":{"description":"Whether this ingress is the default ingress or not. A default ingress is automatically created, it cannot be deleted. There can be only one default ingress per project.","type":"boolean"},"isDomain":{"type":"boolean"},"isEnabled":{"type":"boolean"},"ownership":{"$ref":"#/components/schemas/de.mittwald.v1.ingress.Ownership"},"paths":{"description":"A list of paths. The default path `/` is always present and cannot be removed.","items":{"$ref":"#/components/schemas/de.mittwald.v1.ingress.Path"},"type":"array"},"projectId":{"format":"uuid","type":"string"},"tls":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.ingress.TlsAcmeDeprecated"},{"$ref":"#/components/schemas/de.mittwald.v1.ingress.TlsCertificate"}]}},"required":["id","hostname","projectId","isDefault","tls","paths","isEnabled","ips","dnsValidationErrors","ownership"],"type":"object"},"de.mittwald.v1.ingress.Ownership":{"properties":{"txtRecord":{"type":"string"},"verified":{"description":"Whether the domain ownership is verified or not.","type":"boolean"}},"required":["verified"],"type":"object"},"de.mittwald.v1.ingress.Path":{"properties":{"path":{"type":"string"},"target":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.ingress.TargetDirectory"},{"$ref":"#/components/schemas/de.mittwald.v1.ingress.TargetUrl"},{"$ref":"#/components/schemas/de.mittwald.v1.ingress.TargetInstallation"},{"$ref":"#/components/schemas/de.mittwald.v1.ingress.TargetUseDefaultPage"},{"$ref":"#/components/schemas/de.mittwald.v1.ingress.TargetContainer"}]}},"required":["path","target"],"type":"object"},"de.mittwald.v1.ingress.TargetContainer":{"properties":{"container":{"properties":{"id":{"format":"uuid","type":"string"},"portProtocol":{"description":"docker-compose port specification in format port/protocol (e.g. 8080/TCP)","format":"docker-network-port","type":"string"}},"required":["id","portProtocol"],"type":"object"}},"required":["container"],"type":"object"},"de.mittwald.v1.ingress.TargetDirectory":{"properties":{"directory":{"type":"string"}},"required":["directory"],"type":"object"},"de.mittwald.v1.ingress.TargetInstallation":{"properties":{"installationId":{"format":"uuid","type":"string"}},"required":["installationId"],"type":"object"},"de.mittwald.v1.ingress.TargetUrl":{"properties":{"url":{"format":"uri","type":"string"}},"required":["url"],"type":"object"},"de.mittwald.v1.ingress.TargetUseDefaultPage":{"properties":{"useDefaultPage":{"type":"boolean"}},"required":["useDefaultPage"],"type":"object"},"de.mittwald.v1.ingress.TlsAcme":{"additionalProperties":false,"properties":{"acme":{"description":"Has to be `true`, as ssl cannot be deactivated.","type":"boolean"},"isCreated":{"type":"boolean"},"requestDeadline":{"format":"date-time","type":"string"}},"required":["acme","isCreated"],"type":"object"},"de.mittwald.v1.ingress.TlsAcmeDeprecated":{"additionalProperties":false,"properties":{"acme":{"type":"boolean"}},"required":["acme"],"type":"object"},"de.mittwald.v1.ingress.TlsCertificate":{"additionalProperties":false,"properties":{"certificateId":{"format":"uuid","type":"string"}},"required":["certificateId"],"type":"object"},"de.mittwald.v1.invoice.BankingInformation":{"properties":{"accountHolder":{"example":"Ada Lovelace","type":"string"},"bic":{"example":"DEUTDEDB123","type":"string"},"iban":{"example":"DE12345678901234567890","type":"string"}},"required":["iban","accountHolder"],"type":"object"},"de.mittwald.v1.invoice.Cancellation":{"properties":{"cancellationId":{"format":"uuid","type":"string"},"cancelledAt":{"format":"date-time","type":"string"},"correctionNumber":{"example":"RG1234567","type":"string"},"pdfId":{"format":"uuid","type":"string"},"reason":{"example":"Kulanz","type":"string"}},"required":["pdfId","correctionNumber","cancelledAt","cancellationId"],"type":"object"},"de.mittwald.v1.invoice.ContractInvoiceDefinition":{"properties":{"contractId":{"format":"uuid","type":"string"},"items":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.ContractItemInvoiceDefinition"},"type":"array"}},"required":["contractId","items"],"type":"object"},"de.mittwald.v1.invoice.ContractItemInvoiceDefinition":{"properties":{"contractItemId":{"format":"uuid","type":"string"},"isDue":{"type":"boolean"},"serviceDate":{"format":"date-time","type":"string"},"servicePeriod":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.DatePeriod"},"vatRate":{"example":19,"type":"integer"}},"required":["contractItemId","vatRate","servicePeriod"],"type":"object"},"de.mittwald.v1.invoice.CorrectionDefinition":{"properties":{"contractItemId":{"format":"uuid","type":"string"},"creditPeriod":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.DatePeriod"}},"required":["contractItemId","creditPeriod"],"type":"object"},"de.mittwald.v1.invoice.DatePeriod":{"properties":{"end":{"format":"date-time","type":"string"},"start":{"format":"date-time","type":"string"}},"required":["start","end"],"type":"object"},"de.mittwald.v1.invoice.Error":{"properties":{"message":{"example":"Whoops, something went wrong.","type":"string"},"type":{"example":"InternalServerError","type":"string"}},"required":["type","message"],"type":"object"},"de.mittwald.v1.invoice.InvoiceItem":{"properties":{"additionalDescription":{"example":"Short-ID: \"s-123456\"","type":"string"},"contractItemId":{"format":"uuid","type":"string"},"description":{"example":"Space-Server: \"Mein Space-Server\"","type":"string"},"itemCancelledOrCorrectedBy":{"items":{"properties":{"sourceInvoiceId":{"format":"uuid","type":"string"},"sourceInvoiceItemId":{"format":"uuid","type":"string"}},"type":"object"},"type":"array"},"itemId":{"format":"uuid","type":"string"},"price":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.Price"},"reference":{"properties":{"sourceInvoiceId":{"format":"uuid","type":"string"},"sourceInvoiceItemId":{"format":"uuid","type":"string"}},"required":["sourceInvoiceId","sourceInvoiceItemId"],"type":"object"},"serviceDate":{"format":"date-time","type":"string"},"servicePeriod":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.DatePeriod"},"vatRate":{"example":19,"type":"number"}},"required":["itemId","price","vatRate","contractItemId","description"],"type":"object"},"de.mittwald.v1.invoice.Invoice":{"properties":{"amountPaid":{"example":500,"type":"number"},"cancellation":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.Cancellation"},"cancellationOf":{"description":"The ID of the invoice that this invoice cancels.","format":"uuid","type":"string"},"currency":{"example":"EUR","type":"string"},"customerId":{"example":"e0a3b0e0-0e0e-0e0e-0e0e-0e0e0e0e0e0e","type":"string"},"date":{"format":"date-time","type":"string"},"groups":{"items":{"properties":{"contractId":{"format":"uuid","type":"string"},"description":{"example":"Space-Server: \"Mein Space-Server\"","type":"string"},"items":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.InvoiceItem"},"type":"array"}},"required":["items"],"type":"object"},"type":"array"},"id":{"format":"uuid","type":"string"},"invoiceNumber":{"example":"RG1234567","type":"string"},"invoiceType":{"enum":["REGULAR","REISSUE","CORRECTION","CANCELLATION"],"type":"string"},"paymentSettings":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.PaymentSettings"},"pdfId":{"format":"uuid","type":"string"},"recipient":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.Recipient"},"status":{"enum":["NEW","CONFIRMED","DENIED","PAID","PARTIALLY_PAID","OVERPAID"],"type":"string"},"totalGross":{"example":595,"type":"number"},"totalNet":{"example":500,"type":"number"},"vatId":{"example":"DE123456789","type":"string"}},"required":["id","customerId","invoiceNumber","date","pdfId","groups","status","amountPaid","recipient","totalNet","totalGross","currency","invoiceType"],"type":"object"},"de.mittwald.v1.invoice.InvoiceSettings":{"properties":{"additionalEmailRecipients":{"items":{"format":"email","type":"string"},"type":"array"},"debitPaymentStopUntil":{"format":"date-time","type":"string"},"id":{"example":"5f9b9b9b-9b9b-9b9b-9b9b-9b9b9b9b9b9b","type":"string"},"invoicePeriod":{"example":1,"type":"integer"},"lastBankingInformation":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.BankingInformation"},"paymentSettings":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.PaymentSettings"},"printedInvoices":{"type":"boolean"},"recipient":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.Recipient"},"recipientSameAsOwner":{"type":"boolean"},"status":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.InvoiceSettingsStatus"},"type":"array"},"targetDay":{"example":15,"type":"integer"}},"required":["id"],"type":"object"},"de.mittwald.v1.invoice.InvoiceSettingsStatus":{"properties":{"message":{"example":"Unfortunately, we were unable to debit your account. Please update your account details.","type":"string"},"severity":{"enum":["success","info","warning","error"],"type":"string"},"type":{"enum":["returnDebitNote","returnDebitNoteWaitingForPayment"],"type":"string"}},"required":["severity","type","message"],"type":"object"},"de.mittwald.v1.invoice.PaymentSettingsDebit":{"properties":{"accountHolder":{"example":"Ada Lovelace","type":"string"},"bic":{"description":"Optional. Required for payments outside of the European Union.","example":"DEUTDEDB123","type":"string"},"iban":{"example":"DE12345678901234567890","type":"string"},"method":{"enum":["debit"],"type":"string"}},"required":["method","iban","accountHolder"],"type":"object"},"de.mittwald.v1.invoice.PaymentSettingsInvoice":{"properties":{"method":{"enum":["invoice"],"type":"string"}},"required":["method"],"type":"object"},"de.mittwald.v1.invoice.PaymentSettings":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.invoice.PaymentSettingsDebit"},{"$ref":"#/components/schemas/de.mittwald.v1.invoice.PaymentSettingsInvoice"}]},"de.mittwald.v1.invoice.Price":{"properties":{"currency":{"enum":["EUR"],"type":"string"},"value":{"example":1000,"type":"integer"}},"required":["value","currency"],"type":"object"},"de.mittwald.v1.invoice.Recipient":{"properties":{"address":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Address"},"company":{"example":"Mittwald CM Service GmbH & Co. KG","type":"string"},"emailAddress":{"format":"email","type":"string"},"firstName":{"example":"Ada","type":"string"},"lastName":{"example":"Lovelace","type":"string"},"phoneNumbers":{"items":{"example":"+49 123 4567890","type":"string"},"type":"array"},"salutation":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Salutation"},"title":{"example":"Dr.","type":"string"},"useFormalTerm":{"type":"boolean"}},"required":["address","salutation"],"type":"object"},"de.mittwald.v1.mail.CreateMailAddress":{"properties":{"address":{"format":"idn-email","type":"string"},"isCatchAll":{"type":"boolean"},"mailbox":{"properties":{"enableSpamProtection":{"type":"boolean"},"password":{"type":"string"},"quotaInBytes":{"description":"2 GB","example":2147483648,"minimum":-1,"type":"number"}},"required":["password","quotaInBytes","enableSpamProtection"],"type":"object"}},"required":["address","mailbox","isCatchAll"],"type":"object"},"de.mittwald.v1.mail.Deliverybox":{"properties":{"authenticationEnabled":{"type":"boolean"},"description":{"type":"string"},"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"passwordUpdatedAt":{"format":"date-time","type":"string"},"projectId":{"type":"string"},"sendingEnabled":{"type":"boolean"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","name","projectId","description","authenticationEnabled","sendingEnabled","passwordUpdatedAt","updatedAt"],"type":"object"},"de.mittwald.v1.mail.Error":{"properties":{"message":{"type":"string"},"type":{"type":"string"}},"required":["type","message"],"type":"object"},"de.mittwald.v1.mail.CreateForwardAddress":{"properties":{"address":{"format":"idn-email","type":"string"},"forwardAddresses":{"items":{"format":"idn-email","type":"string"},"type":"array"}},"required":["address","forwardAddresses"],"type":"object"},"de.mittwald.v1.mail.MailAddress":{"properties":{"address":{"format":"idn-email","type":"string"},"autoResponder":{"properties":{"active":{"type":"boolean"},"expiresAt":{"format":"date-time","type":"string"},"message":{"type":"string"},"startsAt":{"format":"date-time","type":"string"}},"required":["active"],"type":"object"},"forwardAddresses":{"items":{"format":"idn-email","type":"string"},"type":"array"},"id":{"format":"uuid","type":"string"},"isArchived":{"type":"boolean"},"isCatchAll":{"type":"boolean"},"mailbox":{"properties":{"name":{"type":"string"},"passwordUpdatedAt":{"format":"date-time","type":"string"},"sendingEnabled":{"type":"boolean"},"spamProtection":{"properties":{"active":{"type":"boolean"},"autoDeleteSpam":{"type":"boolean"},"folder":{"enum":["spam","inbox"],"type":"string"},"relocationMinSpamScore":{"maximum":10,"type":"integer"}},"required":["active","folder","relocationMinSpamScore","autoDeleteSpam"],"type":"object"},"storageInBytes":{"properties":{"current":{"properties":{"updatedAt":{"format":"date-time","type":"string"},"value":{"type":"number"}},"required":["value","updatedAt"],"type":"object"},"limit":{"type":"number"}},"required":["limit","current"],"type":"object"}},"required":["name","sendingEnabled","spamProtection","storageInBytes","passwordUpdatedAt"],"type":"object"},"projectId":{"type":"string"},"receivingDisabled":{"type":"boolean"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","receivingDisabled","address","isCatchAll","projectId","forwardAddresses","updatedAt","autoResponder","isArchived"],"type":"object"},"de.mittwald.v1.mail.MailsystemSettings":{"properties":{"imapClusterId":{"type":"string"},"mailDirectory":{"type":"string"},"rateLimitId":{"type":"string"}},"required":["imapClusterId","mailDirectory","rateLimitId"],"type":"object"},"de.mittwald.v1.mailmigration.AutoResponder":{"properties":{"active":{"type":"boolean"},"expiresAt":{"format":"date-time"},"message":{"type":"string"},"startsAt":{"format":"date-time"}},"required":["active","message"],"type":"object"},"de.mittwald.v1.mailmigration.MailSystemSettings":{"properties":{"imapClusterId":{"type":"string"},"mailDirectory":{"type":"string"},"rateLimitId":{"type":"string"}},"required":["imapClusterId","mailDirectory","rateLimitId"],"type":"object"},"de.mittwald.v1.mailmigration.Mailbox":{"properties":{"mailsystem":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.MailSystemSettings"},"name":{"type":"string"},"quotaInBytes":{"type":"integer"},"spamProtection":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.SpamProtection"}},"required":["name","quotaInBytes","mailsystem"],"type":"object"},"de.mittwald.v1.mailmigration.Migration":{"properties":{"aborted":{"type":"boolean"},"addresses":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.MigrationMailAddress"},"type":"array"},"finalizers":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.MigrationFinalizeJob"},"finished":{"type":"boolean"},"id":{"format":"uuid","type":"string"},"mailboxes":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.MigrationMailbox"},"type":"array"},"sourceCoabProjectId":{"type":"string"},"targetNexusProjectId":{"type":"string"}},"required":["id","targetNexusProjectId","sourceCoabProjectId","addresses","mailboxes","finalizers","finished","aborted"],"type":"object"},"de.mittwald.v1.mailmigration.MigrationFinalizeJob":{"properties":{"disableLegacyEntities":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.MigrationFinalizeJobDisableLegacyEntities"},"projectSettingMigrations":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.MigrationFinalizeJobProjectSetting"}},"type":"object"},"de.mittwald.v1.mailmigration.MigrationFinalizeJobDisableLegacyEntities":{"properties":{"addresses":{"items":{"type":"string"},"type":"array"},"mailboxNames":{"items":{"type":"string"},"type":"array"}},"required":["mailboxNames","addresses"],"type":"object"},"de.mittwald.v1.mailmigration.MigrationFinalizeJobProjectSetting":{"properties":{"blacklistEntries":{"items":{"type":"string"},"type":"array"},"whitelistEntries":{"items":{"type":"string"},"type":"array"}},"required":["blacklistEntries","whitelistEntries"],"type":"object"},"de.mittwald.v1.mailmigration.MigrationMailAddress":{"properties":{"address":{"type":"string"},"finished":{"type":"boolean"},"id":{"format":"uuid","type":"string"},"migrationJobs":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.MigrationMailAddressMigrationJob"},"preMigrationJobs":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.MigrationMailAddressPreMigrationJob"}},"required":["id","address","preMigrationJobs","migrationJobs","finished"],"type":"object"},"de.mittwald.v1.mailmigration.MigrateMailAddressCommandRequirements":{"properties":{"address":{"type":"string"},"autoResponder":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.AutoResponder"},"forwardAddresses":{"items":{"type":"string"},"type":"array"},"isCatchAll":{"type":"boolean"},"mailbox":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.Mailbox"},"projectId":{"type":"string"}},"required":["projectId"],"type":"object"},"de.mittwald.v1.mailmigration.MigrationMailAddressMigrationJob":{"properties":{"migrate":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.MigrationMailAddressMigrationJobMigrate"}},"required":["migrate"],"type":"object"},"de.mittwald.v1.mailmigration.MigrationMailAddressMigrationJobMigrate":{"properties":{"finished":{"type":"boolean"},"requirements":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.MigrateMailAddressCommandRequirements"}},"required":["requirements","finished"],"type":"object"},"de.mittwald.v1.mailmigration.MigrationMailAddressPreMigrationJob":{"properties":{"aliasSet":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.MigrationMailAddressPreMigrationJobAliasSet"},"type":"array"},"deliveryMigrations":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.MigrationMailAddressPreMigrationJobDeliveryMigration"},"type":"array"}},"required":["deliveryMigrations","aliasSet"],"type":"object"},"de.mittwald.v1.mailmigration.MigrationMailAddressPreMigrationJobAliasSet":{"properties":{"finished":{"type":"boolean"},"sourceCoabMailboxName":{"type":"string"}},"required":["sourceCoabMailboxName","finished"],"type":"object"},"de.mittwald.v1.mailmigration.MigrationMailAddressPreMigrationJobDeliveryMigration":{"properties":{"finished":{"type":"boolean"},"sourceCoabDeliveryMailbox":{"type":"string"},"sourceCoabDeliveryUid":{"type":"integer"},"targetDeliveryAddress":{"type":"string"}},"required":["sourceCoabDeliveryUid","sourceCoabDeliveryMailbox","targetDeliveryAddress","finished"],"type":"object"},"de.mittwald.v1.mailmigration.MigrationMailbox":{"properties":{"description":{"type":"string"},"finished":{"type":"boolean"},"id":{"format":"uuid","type":"string"},"migrationJobs":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.MigrationMailboxJob"},"name":{"type":"string"}},"required":["id","name","migrationJobs","finished"],"type":"object"},"de.mittwald.v1.mailmigration.MigrationMailboxJob":{"properties":{"migrate":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.MigrationMailboxJobMigrate"}},"required":["migrate"],"type":"object"},"de.mittwald.v1.mailmigration.MigrationMailboxJobMigrate":{"properties":{"requirements":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.MigrateMailboxCommandRequirements"}},"required":["requirements"],"type":"object"},"de.mittwald.v1.mailmigration.MigrateMailboxCommandRequirements":{"properties":{"mailbox":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.Mailbox"},"projectId":{"type":"string"}},"required":["projectId"],"type":"object"},"de.mittwald.v1.mailmigration.CheckMigrationIsPossibleErrorAlreadyExistingMailAddress":{"properties":{"address":{"type":"string"}},"required":["address"],"type":"object"},"de.mittwald.v1.mailmigration.CheckMigrationIsPossibleErrorAmbiguousMailAddressDelivery":{"properties":{"addresses":{"items":{"type":"string"},"type":"array"},"mailboxName":{"type":"string"}},"required":["mailboxName","addresses"],"type":"object"},"de.mittwald.v1.mailmigration.CheckMigrationIsPossibleErrorAmbiguousMailboxDelivery":{"properties":{"address":{"type":"string"},"mailboxes":{"items":{"type":"string"},"type":"array"}},"required":["address","mailboxes"],"type":"object"},"de.mittwald.v1.mailmigration.CheckMigrationIsPossibleErrorCatchAllMissingAddress":{"properties":{"address":{"type":"string"}},"required":["address"],"type":"object"},"de.mittwald.v1.mailmigration.CheckMigrationIsPossibleErrorCatchAllTargetWithoutAlias":{"properties":{"address":{"type":"string"},"mailboxName":{"type":"string"}},"required":["address","mailboxName"],"type":"object"},"de.mittwald.v1.mailmigration.CheckMigrationIsPossibleErrorMissingVerifiedIngress":{"properties":{"hostname":{"format":"idn-hostname","type":"string"}},"required":["hostname"],"type":"object"},"de.mittwald.v1.mailmigration.PossibleCheckErrors":{"properties":{"alreadyExistingMailAddress":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.CheckMigrationIsPossibleErrorAlreadyExistingMailAddress"},"type":"array"},"ambiguousMailAddressDelivery":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.CheckMigrationIsPossibleErrorAmbiguousMailAddressDelivery"},"type":"array"},"ambiguousMailboxDelivery":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.CheckMigrationIsPossibleErrorAmbiguousMailboxDelivery"},"type":"array"},"catchAllMissingAddress":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.CheckMigrationIsPossibleErrorCatchAllMissingAddress"},"type":"array"},"catchAllTargetWithoutAlias":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.CheckMigrationIsPossibleErrorCatchAllTargetWithoutAlias"},"type":"array"},"missingVerifiedIngress":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.CheckMigrationIsPossibleErrorMissingVerifiedIngress"},"type":"array"}},"required":["ambiguousMailAddressDelivery","ambiguousMailboxDelivery","catchAllMissingAddress","catchAllTargetWithoutAlias","missingVerifiedIngress","alreadyExistingMailAddress"],"type":"object"},"de.mittwald.v1.mailmigration.CheckMigrationIsPossibleErrorResponse":{"properties":{"errors":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.PossibleCheckErrors"}},"type":"object"},"de.mittwald.v1.mailmigration.SpamProtection":{"properties":{"active":{"type":"boolean"},"deleteSensitivity":{"type":"integer"},"folder":{"default":0,"description":"SPAM_FOLDER_INBOX_UNSPECIFIED = 0 SPAM_FOLDER_SPAM = 1","enum":[0,1],"type":"integer"},"keepDays":{"type":"integer"},"relocateSensitivity":{"type":"integer"}},"required":["active","folder","keepDays"],"type":"object"},"de.mittwald.v1.membership.CustomerInheritedRoles":{"enum":["notset","owner","member","accountant"],"type":"string"},"de.mittwald.v1.membership.CustomerInvite":{"properties":{"avatarRefId":{"description":"Reference to the Project's avatar.","format":"uuid","type":"string"},"customerId":{"description":"ID of the Customer the invite is for.","format":"uuid","type":"string"},"customerName":{"description":"Name of the Customer the user is invited to.","type":"string"},"id":{"description":"ID of the CustomerInvite.","format":"uuid","type":"string"},"information":{"$ref":"#/components/schemas/de.mittwald.v1.membership.InviteInformation"},"mailAddress":{"description":"Mail-address of the user the invite is for.","format":"email","type":"string"},"membershipExpiresAt":{"description":"Time the CustomerMembership should expire at.","format":"date-time","type":"string"},"message":{"description":"Message contained in the CustomerInvite.","type":"string"},"role":{"$ref":"#/components/schemas/de.mittwald.v1.membership.CustomerRoles"}},"required":["id","customerId","mailAddress","role","accepted","information","customerName"],"type":"object"},"de.mittwald.v1.membership.CustomerMembership":{"properties":{"customerId":{"description":"ID of the Customer the CustomerMembership is for.","format":"uuid","type":"string"},"email":{"description":"Email used by the invited user.","format":"email","type":"string"},"expiresAt":{"description":"Time the CustomerMembership should expire at.","format":"date-time","type":"string"},"id":{"description":"ID of the CustomerMembership.","format":"uuid","type":"string"},"inviteId":{"description":"ID of the CustomerInvite the membership was created from.","format":"uuid","type":"string"},"memberSince":{"description":"Date the CustomerMembership was created at.","format":"date-time","type":"string"},"mfa":{"description":"MFA activated by the user.","type":"boolean"},"role":{"$ref":"#/components/schemas/de.mittwald.v1.membership.CustomerRoles"},"userId":{"description":"ID of the user the CustomerMembership is for.","format":"uuid","type":"string"}},"required":["id","customerId","userId","role","email","mfa"],"type":"object"},"de.mittwald.v1.membership.CustomerRoles":{"enum":["notset","owner","member","accountant"],"type":"string"},"de.mittwald.v1.membership.InviteInformation":{"properties":{"invitationToken":{"description":"Token for authentication purposes.","type":"string"},"invitedBy":{"description":"ID of the user that created the invite.","format":"uuid","type":"string"},"userId":{"description":"ID of the user this invite is for.","format":"uuid","type":"string"}},"required":["invitedBy"],"type":"object"},"de.mittwald.v1.membership.ProjectInvite":{"properties":{"avatarRefId":{"description":"Reference to the Project's avatar.","format":"uuid","type":"string"},"id":{"description":"ID of the ProjectInvite.","format":"uuid","type":"string"},"information":{"$ref":"#/components/schemas/de.mittwald.v1.membership.InviteInformation"},"mailAddress":{"description":"Mail-address of the user the ProjectInvite is for.","format":"email","type":"string"},"membershipExpiresAt":{"description":"Time the ProjectMembership should expire at.","format":"date-time","type":"string"},"message":{"description":"Message contained in the ProjectInvite.","type":"string"},"projectDescription":{"description":"Description of the Project the invite is created for.","type":"string"},"projectId":{"description":"ID of the Project the invitation is for.","format":"uuid","type":"string"},"role":{"$ref":"#/components/schemas/de.mittwald.v1.membership.ProjectRoles"}},"required":["id","projectId","mailAddress","role","accepted","information","projectDescription"],"type":"object"},"de.mittwald.v1.membership.ProjectMembership":{"properties":{"email":{"description":"Email used by the invited user.","format":"email","type":"string"},"expiresAt":{"description":"Time the ProjectMembership should expire at.","format":"date-time","type":"string"},"id":{"description":"ID of the ProjectMembership.","format":"uuid","type":"string"},"inherited":{"description":"Whether the ProjectMembership was inherited from a CustomerMembership.","type":"boolean"},"inviteId":{"description":"ID of the ProjectInvite the membership was created from.","format":"uuid","type":"string"},"memberSince":{"description":"Date the projectMembership was created at.","format":"date-time","type":"string"},"mfa":{"description":"MFA activated by the user.","type":"boolean"},"projectId":{"description":"ID of the Project the membership is for.","format":"uuid","type":"string"},"role":{"$ref":"#/components/schemas/de.mittwald.v1.membership.ProjectRoles"},"userId":{"description":"ID of the user the ProjectMembership is for.","format":"uuid","type":"string"}},"required":["id","projectId","userId","role","inherited","email","mfa"],"type":"object"},"de.mittwald.v1.membership.ProjectRoles":{"enum":["notset","owner","emailadmin","external"],"type":"string"},"de.mittwald.v1.messaging.AggregateReference":{"properties":{"aggregate":{"type":"string"},"domain":{"type":"string"},"id":{"type":"string"},"parents":{"items":{"properties":{"aggregate":{"type":"string"},"domain":{"type":"string"},"id":{"type":"string"}},"required":["id","aggregate","domain"],"type":"object"},"type":"array"}},"required":["id","aggregate","domain"],"type":"object"},"de.mittwald.v1.messaging.Notification":{"properties":{"createdAt":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"read":{"type":"boolean"},"reference":{"$ref":"#/components/schemas/de.mittwald.v1.messaging.AggregateReference"},"severity":{"enum":["success","info","warning","error"],"type":"string"},"type":{"type":"string"}},"required":["id","type","reference","severity","read","createdAt"],"type":"object"},"de.mittwald.v1.messaging.NotificationStatus":{"enum":["read"],"type":"string"},"de.mittwald.v1.order.Addons":{"properties":{"hidden":{"type":"boolean"},"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"de.mittwald.v1.order.ArticleAddons":{"properties":{"hidden":{"type":"boolean"},"key":{"minLength":1,"type":"string"},"type":{"type":"string"},"value":{"minLength":1,"type":"string"},"valueMergeType":{"enum":["add","set"],"type":"string"}},"required":["key","value"],"type":"object"},"de.mittwald.v1.order.AttributeConfiguration":{"properties":{"key":{"example":"storage","type":"string"},"value":{"example":10,"type":"string"}},"required":["key"],"type":"object"},"de.mittwald.v1.order.CustomerOrder":{"properties":{"contractChangeContractId":{"format":"uuid","type":"string"},"customerId":{"example":"4317f5c5-1ea8-4084-a9f1-3a8e7e1c94ff","minLength":1,"type":"string"},"dueDate":{"format":"date-time","type":"string"},"invoicingPeriod":{"description":"Invoicing period in months","example":12,"type":"number"},"items":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.order.OrderItem"},"type":"array"},"orderDate":{"format":"date-time","type":"string"},"orderId":{"format":"uuid","type":"string"},"orderNumber":{"example":"5XXXXXX","minLength":1,"type":"string"},"profile":{"$ref":"#/components/schemas/de.mittwald.v1.order.Profile"},"status":{"$ref":"#/components/schemas/de.mittwald.v1.order.OrderStatus"},"summary":{"$ref":"#/components/schemas/de.mittwald.v1.order.OrderSummary"},"type":{"$ref":"#/components/schemas/de.mittwald.v1.order.OrderType"}},"required":["orderId","orderNumber","summary","customerId","invoicingPeriod","type","status","items"],"type":"object"},"de.mittwald.v1.order.DomainHandleField":{"properties":{"name":{"example":"name","type":"string"},"value":{"example":"Ada Lovelace","type":"string"}},"required":["name","value"],"type":"object"},"de.mittwald.v1.order.DomainOrderPreview":{"properties":{"authCode":{"example":"XXXXXXX","type":"string"},"domain":{"example":"mittwald.example","type":"string"},"projectId":{"format":"uuid","type":"string"}},"required":["domain"],"type":"object"},"de.mittwald.v1.order.DomainOrder":{"properties":{"authCode":{"example":"XXXXXXX","type":"string"},"domain":{"example":"mittwald.example","type":"string"},"handleData":{"properties":{"adminC":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.order.DomainHandleField"},"type":"array"},"ownerC":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.order.DomainHandleField"},"minItems":1,"type":"array"}},"required":["ownerC"],"type":"object"},"projectId":{"format":"uuid","type":"string"}},"required":["projectId","domain","handleData"],"type":"object"},"de.mittwald.v1.order.HardwareSpec":{"properties":{"ram":{"example":2,"type":"number"},"vcpu":{"example":1,"type":"number"}},"type":"object"},"de.mittwald.v1.order.MachineTypeSpec":{"properties":{"machineType":{"example":"prospace.2cpu.4gb","type":"string"}},"type":"object"},"de.mittwald.v1.order.OrderItem":{"properties":{"addons":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.order.Addons"},"type":"array"},"articleId":{"example":"PS23-PLUS-0004","type":"string"},"articleName":{"example":"proSpace","type":"string"},"articleTemplateName":{"example":"Pro-Space-Hosting","type":"string"},"attributeConfiguration":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.order.AttributeConfiguration"},"type":"array"},"isInclusive":{"type":"boolean"},"orderItemId":{"format":"uuid","type":"string"},"predefinedDomainAggregateId":{"example":"aa38d836-fe72-4c43-aad3-9472b51edf61","type":"string"},"price":{"example":1000,"type":"number"},"reference":{"$ref":"#/components/schemas/de.mittwald.v1.order.Reference"}},"required":["orderItemId","articleId","price","isInclusive"],"type":"object"},"de.mittwald.v1.order.Reference":{"properties":{"contractItemId":{"format":"uuid","type":"string"},"offerItemId":{"format":"uuid","type":"string"},"orderItemId":{"format":"uuid","type":"string"}},"type":"object"},"de.mittwald.v1.order.OrderStatus":{"enum":["NEW","CONFIRMED","REJECTED","ABORTED","EXECUTED"],"type":"string"},"de.mittwald.v1.order.OrderSummary":{"properties":{"nonRecurring":{"example":1000,"type":"number"},"recurring":{"example":9000,"type":"number"},"summary":{"description":"The total price of the order","example":10000,"type":"number"}},"required":["summary","recurring","nonRecurring"],"type":"object"},"de.mittwald.v1.order.OrderType":{"enum":["NEW_ORDER","CONTRACT_CHANGE"],"type":"string"},"de.mittwald.v1.order.DomainOrderPreviewResponse":{"properties":{"domainContractDuration":{"description":"Contract duration in months.","example":12,"type":"number"},"domainPrice":{"example":800,"type":"number"},"feePrice":{"example":100,"type":"number"},"totalPrice":{"example":900,"type":"number"}},"required":["totalPrice","domainPrice","feePrice","domainContractDuration"],"type":"object"},"de.mittwald.v1.order.HostingOrderPreviewResponse":{"properties":{"machineTypePrice":{"example":500,"type":"number"},"storagePrice":{"example":1000,"type":"number"},"totalPrice":{"example":1500,"type":"number"}},"required":["totalPrice","storagePrice","machineTypePrice"],"type":"object"},"de.mittwald.v1.order.Profile":{"properties":{"email":{"format":"email","type":"string"},"first_name":{"example":"Ada","type":"string"},"last_name":{"example":"Lovelace","type":"string"},"title":{"description":"the users title","enum":["other","mr","ms"],"type":"string"},"userId":{"format":"uuid","type":"string"}},"required":["userId","email"],"type":"object"},"de.mittwald.v1.order.ProjectHostingOrderPreview":{"properties":{"customerId":{"type":"string"},"description":{"example":"My first project","type":"string"},"diskspaceInGiB":{"example":10,"type":"number"},"spec":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.order.MachineTypeSpec"},{"$ref":"#/components/schemas/de.mittwald.v1.order.HardwareSpec"}]}},"required":["diskspaceInGiB","spec"],"type":"object"},"de.mittwald.v1.order.ProjectHostingOrder":{"properties":{"customerId":{"type":"string"},"description":{"example":"My first project","type":"string"},"diskspaceInGiB":{"example":10,"type":"number"},"promotionCode":{"example":"123456","type":"string"},"spec":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.order.MachineTypeSpec"},{"$ref":"#/components/schemas/de.mittwald.v1.order.HardwareSpec"}]},"useFreeTrial":{"type":"boolean"}},"required":["customerId","diskspaceInGiB","description","spec"],"type":"object"},"de.mittwald.v1.order.ProjectHostingTariffChange":{"properties":{"contractId":{"type":"string"},"diskspaceInGiB":{"example":10,"type":"number"},"spec":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.order.MachineTypeSpec"},{"$ref":"#/components/schemas/de.mittwald.v1.order.HardwareSpec"}]}},"required":["contractId","diskspaceInGiB","spec"],"type":"object"},"de.mittwald.v1.order.ServerOrderPreview":{"properties":{"customerId":{"example":"f3435305-fd26-470e-9f21-43d9be7e67e7","type":"string"},"description":{"example":"My first project","type":"string"},"diskspaceInGiB":{"example":100,"type":"number"},"machineType":{"example":"shared.xlarge","type":"string"}},"required":["machineType","diskspaceInGiB"],"type":"object"},"de.mittwald.v1.order.ServerOrder":{"properties":{"customerId":{"example":"f3435305-fd26-470e-9f21-43d9be7e67e7","minLength":1,"type":"string"},"description":{"example":"My first project","type":"string"},"diskspaceInGiB":{"example":100,"type":"number"},"machineType":{"example":"shared.xlarge","type":"string"},"promotionCode":{"example":"123456","type":"string"},"useFreeTrial":{"type":"boolean"}},"required":["customerId","machineType","diskspaceInGiB","description"],"type":"object"},"de.mittwald.v1.order.ServerTariffChange":{"properties":{"contractId":{"format":"uuid","type":"string"},"diskspaceInGiB":{"example":100,"type":"number"},"machineType":{"example":"shared.xlarge","type":"string"}},"required":["contractId","machineType","diskspaceInGiB"],"type":"object"},"de.mittwald.v1.policy.Policy":{"type":"string"},"de.mittwald.v1.project.AvatarRules":{"properties":{"maxSizeInKB":{"example":3000,"type":"integer"},"mimeTypes":{"example":["image/jpeg","image/png"],"items":{"type":"string"},"type":"array"},"properties":{"properties":{"imageDimensions":{"properties":{"max":{"properties":{"height":{"type":"integer"},"width":{"type":"integer"}},"type":"object"},"min":{"properties":{"height":{"type":"integer"},"width":{"type":"integer"}},"type":"object"}},"type":"object"}},"type":"object"}},"required":["mimeTypes","maxSizeInKB"],"type":"object"},"de.mittwald.v1.project.DeprecatedProjectReadinessStatus":{"deprecated":true,"description":"deprecated","enum":["creating","ready","unready"],"type":"string"},"de.mittwald.v1.project.DeprecatedServerReadinessStatus":{"deprecated":true,"description":"deprecated","enum":["creating","ready","unready"],"type":"string"},"de.mittwald.v1.project.FilesystemDirectoryListing":{"properties":{"absolutePath":{"type":"string"},"isDirectory":{"type":"boolean"},"isExecutable":{"type":"boolean"},"isFile":{"type":"boolean"},"isSymlink":{"type":"boolean"},"items":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.project.FilesystemDirectoryListing"},"type":"array"},"name":{"type":"string"},"size":{"type":"integer"},"target":{"type":"string"}},"required":["absolutePath","name","size"],"type":"object"},"de.mittwald.v1.project.FilesystemUsagesDisk":{"properties":{"path":{"type":"string"},"totalBytes":{"type":"integer"},"usedBytes":{"type":"integer"}},"type":"object"},"de.mittwald.v1.project.FsApiJwt":{"properties":{"jwt":{"example":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFkYSBMb3ZlbGFjZSIsImlhdCI6MTUxNjIzOTAyMn0.sMjBP_p34T5mbJTVdEWQ8i2hQPVxsmlt8L6-rKpCczo","type":"string"}},"required":["jwt"],"type":"object"},"de.mittwald.v1.project.HardwareSpec":{"properties":{"cpu":{"example":"2","type":"string"},"mem":{"deprecated":true,"description":"deprecated by memory","example":"4Gi","type":"string"},"memory":{"example":"4Gi","type":"string"},"storage":{"example":"50Gi","type":"string"}},"required":["storage"],"type":"object"},"de.mittwald.v1.project.MachineType":{"properties":{"cpu":{"example":"2","type":"string"},"memory":{"example":"4Gi","type":"string"},"name":{"example":"shared.large","type":"string"}},"required":["name","cpu","memory"],"type":"object"},"de.mittwald.v1.project.DisableReason":{"enum":["maliciousCode","illegalContent","maliciousConduct","suspended"],"type":"string"},"de.mittwald.v1.project.ProjectStatus":{"enum":["pending","ready","preparingForVolumeMigration","migratingVolume","error","disabled"],"type":"string"},"de.mittwald.v1.project.Project":{"properties":{"clusterDomain":{"example":"project.host","format":"hostname","type":"string"},"clusterID":{"example":"espelkamp","type":"string"},"createdAt":{"format":"date-time","type":"string"},"customerId":{"example":"f282f1a8-2b15-4b08-9850-6788e3b20136","type":"string"},"description":{"example":"My first Project!","type":"string"},"directories":{"additionalProperties":{"type":"string"},"example":{"Home":"/home/p-4e7tz3"},"type":"object"},"disableReason":{"$ref":"#/components/schemas/de.mittwald.v1.project.DisableReason"},"disabledAt":{"format":"date-time","type":"string"},"enabled":{"type":"boolean"},"id":{"format":"uuid","type":"string"},"imageRefId":{"format":"uuid","type":"string"},"isReady":{"deprecated":true,"description":"deprecated","type":"boolean"},"projectHostingId":{"format":"uuid","type":"string"},"readiness":{"$ref":"#/components/schemas/de.mittwald.v1.project.DeprecatedProjectReadinessStatus"},"serverId":{"format":"uuid","type":"string"},"serverShortId":{"type":"string"},"shortId":{"example":"s-4e7tz3","type":"string"},"spec":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.project.VisitorSpec"},{"$ref":"#/components/schemas/de.mittwald.v1.project.HardwareSpec"}]},"statisticsBaseDomain":{"example":"pe-prod.staging.mcloud.services","format":"hostname","type":"string"},"status":{"$ref":"#/components/schemas/de.mittwald.v1.project.ProjectStatus"},"statusSetAt":{"format":"date-time","type":"string"},"webStorageUsageInBytes":{"format":"int64","type":"integer"},"webStorageUsageInBytesSetAt":{"format":"date-time","type":"string"}},"required":["id","shortId","description","enabled","customerId","directories","createdAt","isReady","readiness","status","statusSetAt","webStorageUsageInBytes","webStorageUsageInBytesSetAt"],"type":"object"},"de.mittwald.v1.project.ServerDisableReason":{"enum":["suspended"],"type":"string"},"de.mittwald.v1.project.ServerStatus":{"enum":["pending","ready","unready"],"type":"string"},"de.mittwald.v1.project.Server":{"properties":{"clusterName":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customerId":{"example":"673c107f-75e1-451c-8eaa-5bf101bd2b2c","type":"string"},"description":{"example":"My first Server!","type":"string"},"disabledReason":{"$ref":"#/components/schemas/de.mittwald.v1.project.ServerDisableReason"},"id":{"format":"uuid","type":"string"},"imageRefId":{"format":"uuid","type":"string"},"isReady":{"deprecated":true,"description":"deprecated","type":"boolean"},"machineType":{"$ref":"#/components/schemas/de.mittwald.v1.project.MachineType"},"readiness":{"$ref":"#/components/schemas/de.mittwald.v1.project.DeprecatedServerReadinessStatus"},"shortId":{"example":"s-4e7tz3","type":"string"},"statisticsBaseDomain":{"example":"pe-prod.staging.mcloud.services","format":"hostname","type":"string"},"status":{"$ref":"#/components/schemas/de.mittwald.v1.project.ServerStatus"},"storage":{"example":"50Gi","type":"string"}},"required":["id","shortId","customerId","machineType","storage","description","isReady","readiness","createdAt","clusterName","status"],"type":"object"},"de.mittwald.v1.project.VisitorSpec":{"properties":{"storage":{"type":"string"},"visitors":{"type":"number"}},"required":["visitors","storage"],"type":"object"},"de.mittwald.v1.directus.Domain":{"properties":{"authCode":{"description":"The authcode of the domain. Leave empty when mittwald can generate a authcode on its own","type":"string"},"domainOwnerData":{"description":"Leave empty when mittwald should keep the same domain owner","type":"string"},"name":{"minLength":1,"type":"string"}},"required":["name"],"type":"object"},"de.mittwald.v1.screenshot.Target":{"properties":{"domain":{"example":"example.com","type":"string"},"path":{"type":"string"},"scheme":{"enum":["http","https"],"example":"https","type":"string"}},"required":["scheme","domain"],"type":"object"},"de.mittwald.v1.screenshot.Task":{"properties":{"executedAt":{"format":"date-time","type":"string"},"fileReference":{"type":"string"},"id":{"format":"uuid","type":"string"},"priority":{"type":"number"},"settings":{"$ref":"#/components/schemas/de.mittwald.v1.screenshot.ScreenshotSettings"},"target":{"$ref":"#/components/schemas/de.mittwald.v1.screenshot.Target"},"taskState":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.screenshot.LifecycleState"},{"$ref":"#/components/schemas/de.mittwald.v1.commons.Error"}]}},"required":["id","settings","target","priority"],"type":"object"},"de.mittwald.v1.screenshot.LifecycleState":{"type":"string"},"de.mittwald.v1.screenshot.ScreenshotSettings":{"properties":{"dataType":{"enum":["jpeg","png","webp"],"type":"string"},"delay":{"type":"number"},"height":{"type":"number"},"quality":{"type":"number"},"width":{"type":"number"}},"required":["width","height","quality","delay","dataType"],"type":"object"},"de.mittwald.v1.sshuser.EntityTypes":{"enum":["ssh","sftp"],"type":"string"},"de.mittwald.v1.sshuser.AccessLevel":{"description":"The level of access for an SFTPUser.","enum":["full","read","unspecified"],"type":"string"},"de.mittwald.v1.sshuser.AuthType":{"description":"Method of authentication that a given SFTPUser or SSHuser supports.","enum":["password","publicKey"],"type":"string"},"de.mittwald.v1.sshuser.Authentication":{"description":"Method of authentication for an SFTPUser or SSHUser. Can be password or public-keys.","oneOf":[{"properties":{"password":{"maxLength":72,"type":"string"}},"required":["password"],"type":"object"},{"properties":{"publicKeys":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.sshuser.PublicKey"},"type":"array"}},"required":["publicKeys"],"type":"object"}]},"de.mittwald.v1.sshuser.PublicKey":{"description":"A representation of an ssh-public-key.","properties":{"comment":{"type":"string"},"key":{"type":"string"}},"required":["comment","key"],"type":"object"},"de.mittwald.v1.sshuser.SftpUser":{"description":"A representation of an SFTPUser.","properties":{"accessLevel":{"$ref":"#/components/schemas/de.mittwald.v1.sshuser.AccessLevel"},"active":{"type":"boolean"},"authUpdatedAt":{"format":"date-time","type":"string"},"createdAt":{"format":"date-time","type":"string"},"description":{"type":"string"},"directories":{"items":{"type":"string"},"type":"array"},"expiresAt":{"format":"date-time","type":"string"},"hasPassword":{"type":"boolean"},"id":{"type":"string"},"projectId":{"type":"string"},"publicKeys":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.sshuser.PublicKey"},"type":"array"},"updatedAt":{"format":"date-time","type":"string"},"userName":{"type":"string"}},"required":["id","projectId","description","userName","createdAt","authUpdatedAt","accessLevel","hasPassword"],"type":"object"},"de.mittwald.v1.sshuser.SshUser":{"description":"A representation of an SSHUser.","properties":{"active":{"type":"boolean"},"authUpdatedAt":{"format":"date-time","type":"string"},"createdAt":{"format":"date-time","type":"string"},"description":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"hasPassword":{"type":"boolean"},"id":{"type":"string"},"projectId":{"type":"string"},"publicKeys":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.sshuser.PublicKey"},"type":"array"},"updatedAt":{"format":"date-time","type":"string"},"userName":{"type":"string"}},"required":["id","projectId","description","userName","createdAt","authUpdatedAt","hasPassword"],"type":"object"},"de.mittwald.v1.signup.Account":{"properties":{"email":{"example":"a.lovelace@example.com","format":"email","type":"string"},"mfaDetails":{"description":"The users mfa details.","properties":{"mfaConfirmed":{"type":"boolean"},"mfaInitialized":{"type":"boolean"}},"type":"object"},"passwordUpdatedAt":{"format":"date-time","type":"string"},"person":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Person"},"userId":{"type":"string"}},"type":"object"},"de.mittwald.v1.signup.ApiToken":{"properties":{"apiTokenId":{"format":"uuid","type":"string"},"createdAt":{"format":"date-time","type":"string"},"description":{"example":"Api Token - read","type":"string"},"expiresAt":{"format":"date-time","type":"string"},"roles":{"items":{"enum":["api_read","api_write"],"type":"string"},"type":"array"}},"required":["apiTokenId","roles","description","createdAt"],"type":"object"},"de.mittwald.v1.signup.DeviceInfo":{"properties":{"browser":{"example":"Safari","type":"string"},"model":{"example":"Apple Macintosh","type":"string"},"os":{"example":"Mac OS","type":"string"},"type":{"example":"Macbook","type":"string"}},"type":"object"},"de.mittwald.v1.signup.DomainError":{"properties":{"info":{"description":"A json object, given further information about the error","type":"object"},"message":{"description":"Some more detailed information about the error","type":"string"},"name":{"description":"Unique key for the error type","type":"string"}},"required":["name","message"],"type":"object"},"de.mittwald.v1.signup.Location":{"properties":{"city":{"example":"Espelkamp","type":"string"},"country":{"example":"DE","type":"string"},"ipAddress":{"format":"ipv4","type":"string"}},"type":"object"},"de.mittwald.v1.signup.Profile":{"properties":{"email":{"example":"a.lovelace@example.com","format":"email","type":"string"},"mfaDetails":{"description":"the users mfa details","properties":{"mfaConfirmed":{"type":"boolean"},"mfaInitialized":{"type":"boolean"}},"type":"object"},"passwordUpdatedAt":{"format":"date-time","type":"string"},"person":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Person"},"userId":{"type":"string"}},"type":"object"},"de.mittwald.v1.user.UserFeedback":{"properties":{"id":{"format":"uuid","type":"string"},"message":{"maxLength":1000,"type":"string"},"origin":{"maxLength":1000,"type":"string"},"subject":{"maxLength":100,"minLength":1,"type":"string"},"vote":{"maximum":10,"minimum":0,"type":"number"}},"required":["id","subject","vote","origin","message"],"type":"object"},"de.mittwald.v1.user.User":{"properties":{"avatarRef":{"format":"uuid","type":"string"},"email":{"format":"email","type":"string"},"employeeInformation":{"description":"additional information about mittwald employees","properties":{"department":{"example":"Kundenservice","type":"string"}},"required":["department"],"type":"object"},"person":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Person"},"phoneNumber":{"example":"+491701234567","type":"string"},"registeredAt":{"format":"date-time","type":"string"},"userId":{"format":"uuid","type":"string"}},"required":["userId","person"],"type":"object"},"de.mittwald.v1.signup.SshKey":{"properties":{"algorithm":{"example":"ssh-rsa","type":"string"},"comment":{"example":"a.lovelace@example.com","type":"string"},"createdAt":{"format":"date-time","type":"string"},"expiresAt":{"format":"date-time","type":"string"},"fingerprint":{"example":"a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1","format":"hexdump","type":"string"},"key":{"type":"string"},"sshKeyId":{"format":"uuid","type":"string"}},"required":["sshKeyId","algorithm","key","comment","fingerprint","createdAt"],"type":"object"},"de.mittwald.v1.poll.UserPollSettings":{"properties":{"completedAt":{"format":"date-time","type":"string"},"dontShowUntil":{"format":"date-time","type":"string"},"ignoredAt":{"format":"date-time","type":"string"},"shouldShow":{"type":"boolean"},"status":{"enum":["completed","muted","ignored","new"],"type":"string"},"userId":{"type":"string"}},"required":["userId","shouldShow","status"],"type":"object"},"de.mittwald.v1.signup.UserSession":{"properties":{"created":{"format":"date-time","type":"string"},"device":{"$ref":"#/components/schemas/de.mittwald.v1.signup.DeviceInfo"},"lastAccess":{"format":"date-time","type":"string"},"location":{"$ref":"#/components/schemas/de.mittwald.v1.signup.Location"},"tokenId":{"format":"uuid","type":"string"}},"required":["device","created","tokenId"],"type":"object"},"de.mittwald.v1.marketplace.AggregateReference":{"properties":{"aggregate":{"type":"string"},"domain":{"type":"string"},"id":{"type":"string"}},"required":["id","domain","aggregate"],"type":"object"},"de.mittwald.v1.marketplace.DescriptionFormats":{"description":"Language specific descriptions in various formats.","properties":{"markdown":{"minLength":1,"type":"string"},"plain":{"minLength":1,"type":"string"}},"required":["markdown"],"type":"object"},"de.mittwald.v1.marketplace.DetailedDescriptions":{"description":"Supported languages. Format ISO-639-1.","properties":{"de":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.DescriptionFormats"},"en":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.DescriptionFormats"}},"required":["de"],"type":"object"},"de.mittwald.v1.commons.Address":{"type":"object","properties":{"street":{"type":"string","example":"Königsberger Straße"},"houseNumber":{"type":"string","example":"4-6"},"city":{"type":"string","example":"Espelkamp"},"zip":{"type":"string","example":"32339"},"countryCode":{"type":"string","example":"DE","description":"ISO 3166-1 alpha-2 country code"},"addressPrefix":{"type":"string","example":"c/o Ada Lovelace"}},"required":["street","houseNumber","city","zip","countryCode"]},"de.mittwald.v1.commons.Error":{"type":"object","required":["type","message"],"properties":{"message":{"type":"string","example":"Something went wrong"},"type":{"type":"string","example":"InternalServerError"}}},"de.mittwald.v1.commons.Person":{"type":"object","description":"The users personal information, e.g. first name.","properties":{"firstName":{"type":"string","description":"The users first name","example":"Ada"},"lastName":{"type":"string","description":"The users last name","example":"Lovelace"},"title":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Salutation"}},"required":["lastName","firstName"]},"de.mittwald.v1.commons.Salutation":{"type":"string","enum":["mr","ms","other"]},"de.mittwald.v1.commons.ValidationErrorSchema":{"type":"object","required":["message","path","type"],"properties":{"message":{"type":"string","description":"The standard error message","example":"should be string"},"path":{"type":"string","description":"The path to the part of the data that was validated. JavaScript property access notation (e.g., \".prop[1].subProp\") is used.\n","example":".address.street"},"type":{"type":"string","description":"ajv validation error type (e.g. \"format\", \"required\", \"type\") or own validation error types","example":"format"},"context":{"type":"object","example":{"format":"email"},"description":"The object with the additional information about the error that can be used to create custom error messages. Keys depend on the\ntype that failed validation (e.g. \"missingProperty\" for type \"required\")\n","additionalProperties":{"type":"string"}}}},"de.mittwald.v1.commons.ValidationErrors":{"type":"object","required":["type","validationErrors"],"properties":{"type":{"type":"string","enum":["ValidationError"]},"message":{"type":"string","example":"Validation failed"},"validationErrors":{"type":"array","items":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrorSchema"}}}}},"securitySchemes":{"de.mittwald.v1.common.LegacyAccessToken":{"description":"Legacy Access Token is required in header","in":"header","name":"Authorization","type":"apiKey"},"de.mittwald.v1.commons.AccessToken":{"description":"Access Token is required in header","in":"header","name":"x-access-token","type":"apiKey"},"de.mittwald.v1.commons.LegacyBearerAuthentication":{"description":"'Authorization: Bearer xyz' is required","in":"header","name":"Authorization","type":"apiKey"}}},"paths":{"/v2/appinstallations/{appInstallationId}/actions/{action}":{"post":{"parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"type":"string"}},{"in":"path","name":"action","required":true,"schema":{"$ref":"#/components/schemas/de.mittwald.v1.app.Action"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"","required":false},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"summary":"Trigger a runtime action belonging to an AppInstallation.","tags":["App"],"deprecated":true}},"/v2/app-installations/{appInstallationId}/actions/{action}":{"post":{"operationId":"app-execute-action","parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"type":"string"}},{"in":"path","name":"action","required":true,"schema":{"$ref":"#/components/schemas/de.mittwald.v1.app.Action"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"","required":false},"responses":{"204":{"description":"The given action has been executed."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Trigger a runtime action belonging to an AppInstallation.","tags":["App"]}},"/v2/apps/{appId}":{"get":{"operationId":"app-get-app","parameters":[{"in":"path","name":"appId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.app.App"}}},"description":"The app object."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get an App.","tags":["App"]}},"/v2/appinstallations/{appInstallationId}":{"get":{"parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get an AppInstallation.","tags":["App"],"deprecated":true},"patch":{"parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"appVersionId":{"format":"uuid","type":"string"},"customDocumentRoot":{"type":"string"},"description":{"type":"string"},"systemSoftware":{"additionalProperties":{"properties":{"systemSoftwareVersion":{"type":"string"},"updatePolicy":{"$ref":"#/components/schemas/de.mittwald.v1.app.SystemSoftwareUpdatePolicy"}},"type":"object"},"type":"object"},"updatePolicy":{"$ref":"#/components/schemas/de.mittwald.v1.app.AppUpdatePolicy"},"userInputs":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.SavedUserInput"},"type":"array"}},"type":"object"}}},"description":"Properties to update for an AppInstallation.","required":true},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"summary":"Update properties belonging to an AppInstallation.","tags":["App"],"deprecated":true},"delete":{"parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Trigger an uninstallation process for an AppInstallation.","tags":["App"],"deprecated":true}},"/v2/app-installations/{appInstallationId}":{"get":{"operationId":"app-get-appinstallation","parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.app.AppInstallation"}}},"description":"The AppInstallation."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get an AppInstallation.","tags":["App"]},"patch":{"operationId":"app-patch-appinstallation","parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"appVersionId":{"format":"uuid","type":"string"},"customDocumentRoot":{"type":"string"},"description":{"type":"string"},"systemSoftware":{"additionalProperties":{"properties":{"systemSoftwareVersion":{"type":"string"},"updatePolicy":{"$ref":"#/components/schemas/de.mittwald.v1.app.SystemSoftwareUpdatePolicy"}},"type":"object"},"type":"object"},"updatePolicy":{"$ref":"#/components/schemas/de.mittwald.v1.app.AppUpdatePolicy"},"userInputs":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.SavedUserInput"},"type":"array"}},"type":"object"}}},"description":"Properties to update for an AppInstallation.","required":true},"responses":{"204":{"description":"The AppInstallation has been patched."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Update properties belonging to an AppInstallation.","tags":["App"]},"delete":{"operationId":"app-uninstall-appinstallation","parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"The app installation is going to be deleted."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Trigger an uninstallation process for an AppInstallation.","tags":["App"]}},"/v2/apps/{appId}/versions/{appVersionId}":{"get":{"operationId":"app-get-appversion","parameters":[{"in":"path","name":"appId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"appVersionId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.app.AppVersion"}}},"description":"The appVersion object."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get an AppVersion.","tags":["App"]}},"/v2/app-installations/{appInstallationId}/systemSoftware":{"get":{"operationId":"app-get-installed-systemsoftware-for-appinstallation","parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"query","name":"tagFilter","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.SystemSoftware"},"type":"array"}}},"description":"The list of installed 'SystemSoftware'."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get the installed `SystemSoftware' for a specific `AppInstallation`.","tags":["App"]}},"/v2/appinstallations/{appInstallationId}/missing-dependencies":{"get":{"parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"query","name":"targetAppVersionID","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get the missing requirements of an appInstallation for a specific target AppVersion.","tags":["App"],"deprecated":true}},"/v2/app-installations/{appInstallationId}/missing-dependencies":{"get":{"operationId":"app-get-missing-dependencies-for-appinstallation","parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"query","name":"targetAppVersionID","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"missingSystemSoftwareDependencies":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.SystemSoftwareDependency"},"type":"array"},"missingUserInputs":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.UserInput"},"type":"array"}},"type":"object"}}},"description":"The missing dependencies of the AppInstallation for the target AppVersion."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get the missing requirements of an appInstallation for a specific target AppVersion.","tags":["App"]}},"/v2/systemsoftwares/{systemSoftwareId}":{"get":{"parameters":[{"in":"path","name":"systemSoftwareId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a SystemSoftware.","tags":["App"],"deprecated":true}},"/v2/system-softwares/{systemSoftwareId}":{"get":{"operationId":"app-get-systemsoftware","parameters":[{"in":"path","name":"systemSoftwareId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.app.SystemSoftware"}}},"description":"The SystemSoftware."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a SystemSoftware.","tags":["App"]}},"/v2/systemsoftware/{systemSoftwareId}/versions/{systemSoftwareVersionId}":{"get":{"parameters":[{"in":"path","name":"systemSoftwareId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"systemSoftwareVersionId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a SystemSoftwareVersion.","tags":["App"],"deprecated":true}},"/v2/system-software/{systemSoftwareId}/versions/{systemSoftwareVersionId}":{"get":{"operationId":"app-get-systemsoftwareversion","parameters":[{"in":"path","name":"systemSoftwareId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"systemSoftwareVersionId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.app.SystemSoftwareVersion"}}},"description":"The systemSoftwareVersion object."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a SystemSoftwareVersion.","tags":["App"]}},"/v2/app-installations/{appInstallationId}/database":{"patch":{"operationId":"app-link-database","parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"databaseId":{"format":"uuid","type":"string"},"databaseUserIds":{"additionalProperties":{"type":"string"},"type":"object"},"purpose":{"enum":["primary","cache","custom"],"type":"string"}},"required":["databaseId","purpose"],"type":"object"}}},"required":true},"responses":{"204":{"description":"The database has been linked."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create linkage between an AppInstallation and a MySQLDatabase.","tags":["App"]}},"/v2/app-installations":{"get":{"operationId":"app-list-appinstallations-for-user","parameters":[{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"page","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.AppInstallation"},"type":"array"}}},"description":"Object containing the list of AppInstallations."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List AppInstallations that a user has access to.","tags":["App"]}},"/v2/projects/{projectId}/appinstallations":{"get":{"parameters":[{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"page","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List AppInstallations belonging to a Project.","tags":["App"],"deprecated":true},"post":{"parameters":[{"in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"appVersionId":{"format":"uuid","type":"string"},"description":{"type":"string"},"updatePolicy":{"$ref":"#/components/schemas/de.mittwald.v1.app.AppUpdatePolicy"},"userInputs":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.SavedUserInput"},"type":"array"}},"required":["appVersionId","description","userInputs","updatePolicy"],"type":"object"}}},"required":true},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"summary":"Request an AppInstallation.","tags":["App"],"deprecated":true}},"/v2/projects/{projectId}/app-installations":{"get":{"operationId":"app-list-appinstallations","parameters":[{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"page","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.AppInstallation"},"type":"array"}}},"description":"Object containing the list of AppInstallations."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List AppInstallations belonging to a Project.","tags":["App"]},"post":{"operationId":"app-request-appinstallation","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"appVersionId":{"format":"uuid","type":"string"},"description":{"type":"string"},"updatePolicy":{"$ref":"#/components/schemas/de.mittwald.v1.app.AppUpdatePolicy"},"userInputs":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.SavedUserInput"},"type":"array"}},"required":["appVersionId","description","userInputs","updatePolicy"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"uuid","type":"string"}},"required":["id"],"type":"object"}}},"description":"The AppInstallation has been requested."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Request an AppInstallation.","tags":["App"]}},"/v2/apps":{"get":{"operationId":"app-list-apps","parameters":[{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"page","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.App"},"type":"array"}}},"description":"Object containing the list of Apps."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List Apps.","tags":["App"]}},"/v2/apps/{appId}/versions":{"get":{"operationId":"app-list-appversions","parameters":[{"in":"path","name":"appId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"query","name":"recommended","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.AppVersion"},"type":"array"}}},"description":"Object containing the list of AppVersions.","headers":{"X-Pagination-Limit":{"schema":{"type":"number"}},"X-Pagination-Skip":{"schema":{"type":"number"}},"X-Pagination-TotalCount":{"schema":{"type":"number"}}}},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List AppVersions belonging to an App.","tags":["App"]}},"/v2/systemsoftwares":{"get":{"parameters":[{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"page","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"minimum":0,"type":"integer"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List SystemSoftwares.","tags":["App"],"deprecated":true}},"/v2/system-softwares":{"get":{"operationId":"app-list-systemsoftwares","parameters":[{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"page","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.SystemSoftware"},"type":"array"}}},"description":"Object containing the list of SystemSoftwares.","headers":{"X-Pagination-Limit":{"schema":{"type":"number"}},"X-Pagination-Skip":{"schema":{"type":"number"}},"X-Pagination-TotalCount":{"schema":{"type":"number"}}}},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List SystemSoftwares.","tags":["App"]}},"/v2/systemsoftware/{systemSoftwareId}/versions":{"get":{"parameters":[{"in":"path","name":"systemSoftwareId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"query","name":"versionRange","required":false,"schema":{"type":"string"}},{"in":"query","name":"recommended","required":false,"schema":{"type":"boolean"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List SystemSoftwareVersions belonging to a SystemSoftware.","tags":["App"],"deprecated":true}},"/v2/system-software/{systemSoftwareId}/versions":{"get":{"operationId":"app-list-systemsoftwareversions","parameters":[{"in":"path","name":"systemSoftwareId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"query","name":"versionRange","required":false,"schema":{"type":"string"}},{"in":"query","name":"recommended","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.SystemSoftwareVersion"},"type":"array"}}},"description":"Object containing the list of SystemSoftwareVersions.","headers":{"X-Pagination-Limit":{"schema":{"type":"number"}},"X-Pagination-Skip":{"schema":{"type":"number"}},"X-Pagination-TotalCount":{"schema":{"type":"number"}}}},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List SystemSoftwareVersions belonging to a SystemSoftware.","tags":["App"]}},"/v2/apps/{appId}/versions/{baseAppVersionId}/update-candidates":{"get":{"operationId":"app-list-update-candidates-for-appversion","parameters":[{"in":"path","name":"appId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"baseAppVersionId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.AppVersion"},"type":"array"}}},"description":"Object containing the list of AppVersions.","headers":{"X-Pagination-Limit":{"schema":{"type":"number"}},"X-Pagination-Skip":{"schema":{"type":"number"}},"X-Pagination-TotalCount":{"schema":{"type":"number"}}}},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List update candidates belonging to an AppVersion.","tags":["App"]}},"/v2/appinstallations/{appInstallationId}/actions/copy":{"post":{"parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"type":"string"},"targetProjectId":{"format":"uuid","type":"string"}},"required":["description"],"type":"object"}}},"description":"Properties to copy an app installation.","required":true},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"summary":"Request a copy of an AppInstallation.","tags":["App"],"deprecated":true}},"/v2/app-installations/{appInstallationId}/actions/copy":{"post":{"operationId":"app-request-appinstallation-copy","parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"type":"string"},"targetProjectId":{"format":"uuid","type":"string"}},"required":["description"],"type":"object"}}},"description":"Properties to copy an app installation.","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"uuid","type":"string"}},"required":["id"],"type":"object"}}},"description":"The AppInstallation copy has been requested."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Request a copy of an AppInstallation.","tags":["App"]}},"/v2/appinstallations/{appInstallationId}/status":{"get":{"parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"summary":"Get runtime status belonging to an AppInstallation.","tags":["App"],"deprecated":true}},"/v2/app-installations/{appInstallationId}/status":{"get":{"operationId":"app-retrieve-status","parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.app.AppInstallationStatus"}}},"description":"The appInstallation status."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get runtime status belonging to an AppInstallation.","tags":["App"]}},"/v2/app-installations/{appInstallationId}/databases/{databaseId}":{"put":{"parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"databaseId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"databaseUserIds":{"additionalProperties":{"type":"string"},"type":"object"}},"required":["databaseUserIds"],"type":"object"}}},"description":"Properties to update for the specified system software.","required":true},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create linkage between an AppInstallation and DatabaseUsers.","tags":["App"],"deprecated":true},"delete":{"operationId":"app-unlink-database","parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"databaseId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"The database has been unlinked."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Remove linkage between an AppInstallation and a Database.","tags":["App"]}},"/v2/appinstallations/{appInstallationId}/databases/{databaseId}":{"put":{"parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"databaseId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"databaseUserIds":{"additionalProperties":{"type":"string"},"type":"object"}},"required":["databaseUserIds"],"type":"object"}}},"description":"Properties to update for the specified system software.","required":true},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create linkage between an AppInstallation and DatabaseUsers.","tags":["App"],"deprecated":true},"delete":{"parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"databaseId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Remove linkage between an AppInstallation and a Database.","tags":["App"],"deprecated":true}},"/v2/app-installations/{appInstallationId}/databases/{databaseId}/users":{"put":{"operationId":"app-set-database-users","parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"databaseId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"databaseUserIds":{"additionalProperties":{"type":"string"},"type":"object"}},"required":["databaseUserIds"],"type":"object"}}},"description":"Properties to update for the specified system software.","required":true},"responses":{"204":{"description":"The database users have been set."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create linkage between an AppInstallation and DatabaseUsers.","tags":["App"]}},"/v2/articles/{articleId}":{"get":{"operationId":"article-get-article","parameters":[{"example":"PS23-PLUS-0004","in":"path","name":"articleId","required":true,"schema":{"type":"string"}},{"description":"Use customerId for custom customer prices.","example":"123e4567-e89b-12d3-a456-426614174000","in":"query","name":"customerId","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.article.ReadableArticle"}}},"description":"The Article object"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[],"summary":"Get an Article.","tags":["Article"]}},"/v2/articles":{"get":{"operationId":"article-list-articles","parameters":[{"description":"Use customerId for custom customer prices.","example":"123e4567-e89b-12d3-a456-426614174000","in":"query","name":"customerId","required":false,"schema":{"type":"string"}},{"example":1000,"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"example":0,"in":"query","name":"skip","required":false,"schema":{"minimum":0,"type":"integer"}},{"example":1,"in":"query","name":"page","required":false,"schema":{"minimum":0,"type":"integer"}},{"example":[],"in":"query","name":"tags","required":false,"schema":{"items":{"type":"string"},"type":"array"}},{"example":[],"in":"query","name":"templateNames","required":false,"schema":{"items":{"type":"string"},"type":"array"}},{"example":["PS23-PLUS-0004"],"in":"query","name":"articleIds","required":false,"schema":{"items":{"type":"string"},"type":"array"}},{"in":"query","name":"orderable","required":false,"schema":{"items":{"enum":["forbidden","internal","beta_testing","full","deprecated"],"type":"string"},"type":"array"}},{"example":"proSpace","in":"query","name":"name","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.article.ReadableArticle"},"type":"array"}}},"description":"Object containing the list of Articles"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[],"summary":"List Articles.","tags":["Article"]}},"/v2/project-backups/{projectBackupId}/export":{"post":{"operationId":"backup-create-project-backup-export","parameters":[{"description":"ID of the ProjectBackup to export.","in":"path","name":"projectBackupId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"format":{"description":"The desired format to export the ProjectBackup in.","enum":["tar","zip"],"example":"tar","type":"string"},"password":{"description":"Password to use to protect the archive.","example":"password","type":"string"}},"required":["format"],"type":"object"}}},"required":true},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Export a ProjectBackup for download.","tags":["Backup"]},"delete":{"operationId":"backup-delete-project-backup-export","parameters":[{"description":"ID if the ProjectBackup to delete the export of.","in":"path","name":"projectBackupId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"NoContent"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a ProjectBackupExport.","tags":["Backup"]}},"/v2/projects/{projectId}/backup-schedules":{"post":{"operationId":"backup-create-project-backup-schedule","parameters":[{"description":"ID of the Project to create a BackupSchedule for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"description":"Description of the BackupSchedule.","type":"string"},"schedule":{"description":"Execution schedule in crontab notation.","example":"5 4 * * *","type":"string"},"ttl":{"description":"TTL of the BackupSchedule as time string.","example":"7d","type":"string"}},"required":["ttl","schedule"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.backup.ProjectBackupSchedule"}}},"description":"Created"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create a BackupSchedule for a Project.","tags":["Backup"]},"get":{"operationId":"backup-list-project-backup-schedules","parameters":[{"description":"ID of the Project to list BackupSchedules for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.backup.ProjectBackupSchedule"},"type":"array"}}},"description":"OK"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List BackupSchedules belonging to a Project.","tags":["Backup"]}},"/v2/projects/{projectId}/backups":{"post":{"operationId":"backup-create-project-backup","parameters":[{"description":"ID of the project to create a Backup for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"description":"Description of the Backup.","example":"I'm a ProjectBackup","type":"string"},"expirationTime":{"description":"Time when to expire the Backup.","format":"date-time","type":"string"}},"required":["expirationTime"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.backup.ProjectBackup"}}},"description":"Created"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create a Backup of a Project.","tags":["Backup"]},"get":{"operationId":"backup-list-project-backups","parameters":[{"description":"ID of the Project to get Backups for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.backup.ProjectBackup"},"type":"array"}}},"description":"OK"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List Backups belonging to a Project.","tags":["Backup"]}},"/v2/project-backup-schedules/{projectBackupScheduleId}":{"delete":{"operationId":"backup-delete-project-backup-schedule","parameters":[{"description":"ID of the ProjectBackupSchedule to delete.","in":"path","name":"projectBackupScheduleId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"NoContent"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a ProjectBackupSchedule.","tags":["Backup"]},"get":{"operationId":"backup-get-project-backup-schedule","parameters":[{"description":"ID of the ProjectBackupSchedule to retrieve.","in":"path","name":"projectBackupScheduleId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.backup.ProjectBackupSchedule"}}},"description":"OK"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a ProjectBackupSchedule.","tags":["Backup"]},"patch":{"operationId":"backup-update-project-backup-schedule","parameters":[{"description":"ID of the ProjectBackupSchedule to be updated.","in":"path","name":"projectBackupScheduleId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"description":"Description of the ProjectBackupSchedule. Note that the description of isSystemBackup true items cannot be changed.","example":"I'm a ProjectBackupSchedule","type":"string"},"schedule":{"description":"Execution schedule in crontab notation. Note that the schedule of isSystemBackup true items must be daily once.","example":"5 4 * * *","type":"string"},"ttl":{"description":"TTL of the ProjectBackupSchedule as time string.","example":"7d","type":"string"}},"type":"object"}}}},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a ProjectBackupSchedule.","tags":["Backup"]}},"/v2/project-backups/{projectBackupId}":{"delete":{"operationId":"backup-delete-project-backup","parameters":[{"description":"ID of the ProjectBackup to be deleted.","in":"path","name":"projectBackupId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"NoContent"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a ProjectBackup.","tags":["Backup"]},"get":{"operationId":"backup-get-project-backup","parameters":[{"description":"ID of the ProjectBackup to retrieve.","in":"path","name":"projectBackupId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.backup.ProjectBackup"}}},"description":"OK"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a ProjectBackup.","tags":["Backup"]}},"/v2/project-backups/{projectBackupId}/description":{"patch":{"operationId":"backup-update-project-backup-description","parameters":[{"description":"ID of the ProjectBackup to change the description of.","in":"path","name":"projectBackupId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"description":"Description of the ProjectBackup.","example":"I'm a ProjectBackup","type":"string"}},"type":"object"}}},"required":true},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Change the description of a ProjectBackup.","tags":["Backup"]}},"/v2/contracts/{contractId}/items/{contractItemId}/termination":{"delete":{"operationId":"contract-cancel-contract-item-termination","parameters":[{"description":"The uuid of the Contract where the terminated ContractItem belongs to.","example":"f6bb2d44-e6be-46dc-96f7-9602a7177a75","in":"path","name":"contractId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"The uuid of the ContractItem for which the Termination is to be cancelled. Only works for ContractItem for which a Termination is stored.","example":"4d495bcd-4d4c-4bf9-b1c8-72b99a2ea7f2","in":"path","name":"contractItemId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"contractId":{"format":"uuid","type":"string"},"contractItemId":{"format":"uuid","type":"string"},"isCancelled":{"type":"boolean"}}}}},"description":"Return the contractId and the contractItemId of the ContractItem where the Termination was cancelled."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Cancel the Termination for the referred ContractItem.","tags":["Contract"]},"post":{"operationId":"contract-terminate-contract-item","parameters":[{"example":"f6bb2d44-e6be-46dc-96f7-9602a7177a75","in":"path","name":"contractId","required":true,"schema":{"format":"uuid","type":"string"}},{"example":"19b2d44-e6be-46dc-96f7-9602a7177a75","in":"path","name":"contractItemId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"reason":{"description":"A reason for the Termination can be given as plain text.","example":"Server wird nicht mehr benötigt","type":"string"},"terminationTargetDate":{"description":"The termination date has to be a valid date according to activation and contract period of the ContractItem. If none given, the next possible termination date will be used.","format":"date-time","type":"string"}}}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"contractId":{"format":"uuid","type":"string"},"contractItemId":{"format":"uuid","type":"string"},"reason":{"example":"Server wird nicht mehr benötigt","type":"string"},"terminationTargetDate":{"format":"date-time","type":"string"}}}}},"description":"Return the contractId, the date on which the Termination will take place and the list of affected ContractItems."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Schedule the Termination of a ContractItem.","tags":["Contract"]}},"/v2/contracts/{contractId}/items/{contractItemId}/tariff-change":{"delete":{"operationId":"contract-cancel-contract-tariff-change","parameters":[{"example":"154219e9-bf4a-4f41-9c72-0449a98db62f","in":"path","name":"contractId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"The uuid of the active ContractItem (not the one that would replace the old one after the TariffChange)\nfor which the TariffChange is to be cancelled. Only works for ContractItems for which a TariffChange is stored.\n","example":"f6bb2d44-e6be-46dc-96f7-9602a7177a75","in":"path","name":"contractItemId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"contractId":{"format":"uuid","type":"string"},"contractItemId":{"format":"uuid","type":"string"},"isCancelled":{"type":"boolean"}}}}},"description":"Returns the contractId of the Contract whose TariffChange was cancelled."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Cancel the TariffChange for the referred ContractItem.","tags":["Contract"]}},"/v2/contracts/{contractId}/termination":{"delete":{"operationId":"contract-cancel-contract-termination","parameters":[{"description":"The uuid of the Contract for which the Termination is to be cancelled. Only works for Contracts for which a\nTermination is stored.\n","example":"f6bb2d44-e6be-46dc-96f7-9602a7177a75","in":"path","name":"contractId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"contractId":{"format":"uuid","type":"string"},"isCancelled":{"type":"boolean"}}}}},"description":"Return the contractId of the Contract whose Termination was cancelled."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Cancel the Termination for the referred Contract.","tags":["Contract"]},"post":{"operationId":"contract-terminate-contract","parameters":[{"description":"The uuid of the Contract to be terminated.","example":"f6bb2d44-e6be-46dc-96f7-9602a7177a75","in":"path","name":"contractId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"reason":{"description":"A reason for the termination can be given as plain text.","example":"Projekt wird nicht mehr benötigt","type":"string"},"terminationTargetDate":{"description":"The termination date has to be a valid date according to activation and contract period of the base ContractItem. If none given, the next possible termination date will be used.","format":"date-time","type":"string"}}}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"contractId":{"format":"uuid","type":"string"},"itemsScheduledForTermination":{"items":{"format":"uuid","type":"string"},"type":"array"},"reason":{"example":"Projekt wird nicht mehr benötigt","type":"string"},"terminationTargetDate":{"format":"date","type":"string"}}}}},"description":"Returns the contractId, the date on which the Termination will take place and the list of affected ContractItems."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Schedule the Termination of a Contract.","tags":["Contract"]}},"/v2/contracts/{contractId}/base-items":{"get":{"operationId":"contract-get-base-item-of-contract","parameters":[{"description":"The uuid of the Contract from which the BaseItem is to be issued.","example":"97cecfa0-2c3c-4272-a510-c775fcaade01","in":"path","name":"contractId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.contract.ContractItem"}}},"description":"The BaseItem of the Contract."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Return the BaseItem of the Contract with the given ID.","tags":["Contract"]}},"/v2/domains/{domainId}/contract":{"get":{"operationId":"contract-get-detail-of-contract-by-domain","parameters":[{"example":"0a6de990-b33f-4cf8-adba-025a26515657","in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.contract.Contract"}}},"description":"Returns an active Contract for the given Domain."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Return the Contract for the given Domain.","tags":["Contract"]}},"/v2/projects/{projectId}/contract":{"get":{"operationId":"contract-get-detail-of-contract-by-project","parameters":[{"example":"0a6de990-b33f-4cf8-adba-025a26515657","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.contract.Contract"}}},"description":"Returns an active Contract for the given Project."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Return the Contract for the given Project.","tags":["Contract"]}},"/v2/servers/{serverId}/contract":{"get":{"operationId":"contract-get-detail-of-contract-by-server","parameters":[{"example":"0a6de990-b33f-4cf8-adba-025a26515657","in":"path","name":"serverId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.contract.Contract"}}},"description":"Returns an active Contract for the given Server."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Return the Contract for the given Server.","tags":["Contract"]}},"/v2/contracts/{contractId}/items/{contractItemId}":{"get":{"operationId":"contract-get-detail-of-contract-item","parameters":[{"description":"The uuid of the Contract where the desired ContractItem belongs to.","example":"97cecfa0-2c3c-4272-a510-c775fcaade01","in":"path","name":"contractId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"The uuid of the ContractItem to be returned.","example":"19b3e88e-c656-4440-8b89-efbf881b9c6f","in":"path","name":"contractItemId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.contract.ContractItem"}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get the ContractItem with the given ID.","tags":["Contract"]}},"/v2/contracts/{contractId}":{"get":{"operationId":"contract-get-detail-of-contract","parameters":[{"description":"The uuid of the Contract to be returned.","example":"97cecfa0-2c3c-4272-a510-c775fcaade01","in":"path","name":"contractId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.contract.Contract"}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Returns the Contract with the given ID.","tags":["Contract"]}},"/v2/contracts/{contractId}/items/{contractItemId}/next-termination-dates":{"get":{"operationId":"contract-get-next-termination-date-for-item","parameters":[{"description":"The uuid of the Contract where the desired ContractItem belongs to.","example":"97cecfa0-2c3c-4272-a510-c775fcaade01","in":"path","name":"contractId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"The uuid of the ContractItem whose next TerminationDate is to be displayed.","example":"19b3e88e-c656-4440-8b89-efbf881b9c6f","in":"path","name":"contractItemId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"contractItemId":{"format":"uuid","type":"string"},"nextTerminationDate":{"format":"date-time","type":"string"}},"required":["contractItemId","nextTerminationDate"]}}},"description":"Return the next possible TerminationDate for the ContractItem as date."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Return the next TerminationDate for the ContractItem with the given ID.","tags":["Contract"]}},"/v2/customers/{customerId}/contracts":{"get":{"operationId":"contract-list-contracts","parameters":[{"description":"The uuid of the Customer from whom all Contracts are to be returned.","example":"97cecfa0-2c3c-4272-a510-c775fcaade01","in":"path","name":"customerId","required":true,"schema":{"format":"uuid","type":"string"}},{"example":1000,"in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"example":0,"in":"query","name":"skip","required":false,"schema":{"type":"integer"}},{"example":1,"in":"query","name":"page","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.contract.Contract"},"type":"array"}}},"description":"Return the Contracts that belong to the Customer."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Return a list of Contracts for the given Customer.","tags":["Contract"]}},"/v2/contributors/{contributorId}/extensions/{extensionId}/extension-instances/{extensionInstanceId}/secret":{"put":{"operationId":"contributor-rotate-secret-for-extension-instance","parameters":[{"in":"path","name":"contributorId","required":true,"schema":{"type":"string"}},{"in":"path","name":"extensionId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"extensionInstanceId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"allowWebhookFailure":{"type":"boolean"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"secret":{"type":"string"},"webhookResult":{"properties":{"failure":{"type":"boolean"},"statusCode":{"description":"The status code returned by the external application.","type":"string"}},"required":["failure"],"type":"object"}},"required":["secret","webhookResult"],"type":"object"}}},"description":"Secret rotated successfully."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Rotate the secret for an extension instance.","tags":["Marketplace"]}},"/v2/conversations":{"post":{"operationId":"conversation-create-conversation","requestBody":{"content":{"application/json":{"schema":{"properties":{"categoryId":{"type":"string"},"mainUserId":{"format":"uuid","type":"string"},"relatedTo":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.AggregateReference"},"sharedWith":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.ShareableAggregateReference"},"title":{"type":"string"}},"type":"object"}}},"description":"","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"conversationId":{"format":"uuid","type":"string"}},"required":["conversationId"],"type":"object"}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Create a conversation.","tags":["Conversation"]},"get":{"operationId":"conversation-list-conversations","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.Conversation"},"type":"array"}}},"description":"The conversations list ordered by creation date"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get all conversation the authenticated user has created or has access to.","tags":["Conversation"]}},"/v2/conversations/{conversationId}/messages":{"post":{"operationId":"conversation-create-message","parameters":[{"in":"path","name":"conversationId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"fileIds":{"items":{"format":"uuid","type":"string"},"type":"array"},"messageContent":{"maxLength":8000,"type":"string"}}}}},"description":"","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"conversationId":{"format":"uuid","type":"string"},"messageId":{"format":"uuid","type":"string"}},"required":["conversationId","messageId"],"type":"object"}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Send a new message in the conversation.","tags":["Conversation"]},"get":{"operationId":"conversation-list-messages-by-conversation","parameters":[{"in":"path","name":"conversationId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.conversation.Message"},{"$ref":"#/components/schemas/de.mittwald.v1.conversation.StatusUpdate"}]},"type":"array"}}},"description":""},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get all message of the conversation.","tags":["Conversation"]}},"/v2/conversation-categories/{categoryId}":{"get":{"operationId":"conversation-get-category","parameters":[{"in":"path","name":"categoryId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.Category"}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get a specific conversation category.","tags":["Conversation"]}},"/v2/conversations/{conversationId}/members":{"get":{"operationId":"conversation-get-conversation-members","parameters":[{"in":"path","name":"conversationId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.ConversationMembers"}}},"description":"The members of the conversation.\n"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get members of a support conversation.","tags":["Conversation"]}},"/v2/customers/{customerId}/conversation-preferences":{"get":{"operationId":"conversation-get-conversation-preferences-of-customer","parameters":[{"in":"path","name":"customerId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.ConversationPreferences"}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get preferences for customer conversations.","tags":["Conversation"]}},"/v2/conversations/{conversationId}":{"get":{"operationId":"conversation-get-conversation","parameters":[{"in":"path","name":"conversationId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.Conversation"}}},"description":"The metadata of the conversation.\nDoes not contain messages send in the conversation.\nUse [`/v2/conversations/{conversationId}/messages`](#/Conversation/conversation-service-get-messages-by-conversation-v2) to get the messages.\n"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get a support conversation.","tags":["Conversation"]},"put":{"operationId":"conversation-update-conversation","parameters":[{"in":"path","name":"conversationId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"categoryId":{"format":"uuid","type":"string"},"relatedTo":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.AggregateReference"},"title":{"type":"string"}}}}},"description":"","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"conversationId":{"format":"uuid","type":"string"}},"required":["conversationId"],"type":"object"}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Update the basic properties of the conversation.","tags":["Conversation"]}},"/v2/conversations/{conversationId}/files/{fileId}/access-token":{"get":{"operationId":"conversation-get-file-access-token","parameters":[{"in":"path","name":"conversationId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"fileId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"accessToken":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"}},"required":["accessToken","expiresAt"],"type":"object"}}},"description":"The file access token required to access the file linked with the conversation.\n"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Request an access token for the File belonging to the Conversation.","tags":["Conversation"]}},"/v2/conversation-categories":{"get":{"operationId":"conversation-list-categories","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.Category"},"type":"array"}}},"description":""},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get all conversation categories.","tags":["Conversation"]}},"/v2/conversations/{conversationId}/files":{"post":{"operationId":"conversation-request-file-upload","parameters":[{"in":"path","name":"conversationId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"","required":false},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"conversationId":{"format":"uuid","type":"string"},"rules":{"properties":{"maxSizeInKB":{"type":"integer"},"mimeTypes":{"items":{"type":"string"},"type":"array"},"properties":{"properties":{"imageDimensions":{"properties":{"max":{"properties":{"height":{"type":"integer"},"width":{"type":"integer"}},"type":"object"},"min":{"properties":{"height":{"type":"integer"},"width":{"type":"integer"}},"type":"object"}},"type":"object"}},"type":"object"}},"required":["mimeTypes","maxSizeInKB"],"type":"object"},"uploadToken":{"type":"string"}},"required":["conversationId","uploadToken","rules"],"type":"object"}}},"description":"The upload token with additional rules describing what files can be uploaded using this token.\nThe token can be used with [`POST /v2/files`](#/Files/file-service-file-create) to upload a file that is\nlinked with the conversation.\n"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Request a file upload token for the conversation.","tags":["Conversation"]}},"/v2/conversations/{conversationId}/status":{"put":{"operationId":"conversation-set-conversation-status","parameters":[{"in":"path","name":"conversationId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"status":{"enum":["open","answered","closed"],"type":"string"}},"required":["status"]}}},"description":"The object containing the new status of the conversation.\nThe statuses `open` and `answered` are displayed identically to the users as an open\n(unresolved) conversation. A conversation with the status `closed` is a solved issue.\nClosed conversations can be reopened by setting the status to `open` or by sending a\nmessage in the conversation.\n","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"conversationId":{"format":"uuid","type":"string"}},"required":["conversationId"],"type":"object"}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Update the status of a conversation.","tags":["Conversation"]}},"/v2/conversations/{conversationId}/messages/{messageId}":{"patch":{"operationId":"conversation-update-message","parameters":[{"in":"path","name":"conversationId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"messageId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"messageContent":{"type":"string"}}}}},"description":"","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"messageId":{"format":"uuid","type":"string"}},"required":["messageId"],"type":"object"}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Update the content of the message","tags":["Conversation"]}},"/v2/cronjobs/{cronjobId}/executions/{executionId}/actions/abort":{"post":{"operationId":"cronjob-abort-execution","parameters":[{"description":"ID of the CronjobExecution to be aborted.","in":"path","name":"cronjobId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"executionId","required":true,"schema":{"example":"cron-bd26li-28027320","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{}}}},"responses":{"204":{"description":"NoContent"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Abort a CronjobExecution.","tags":["Cronjob"]}},"/v2/projects/{projectId}/cronjobs":{"post":{"operationId":"cronjob-create-cronjob","parameters":[{"description":"ID of the Project you want to create a Cronjob for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.cronjob.CronjobRequest"}}},"description":"cronjob"},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"uuid","type":"string"}},"required":["id"],"type":"object"}}},"description":"Created"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create a Cronjob.","tags":["Cronjob"]},"get":{"operationId":"cronjob-list-cronjobs","parameters":[{"description":"ID of the Project for which to list Cronjobs for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"page","required":false,"schema":{"minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.cronjob.Cronjob"},"type":"array"}}},"description":"OK"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List Cronjobs belonging to a Project.","tags":["Cronjob"]}},"/v2/cronjobs/{cronjobId}/executions":{"post":{"operationId":"cronjob-create-execution","parameters":[{"description":"ID of the Cronjob to trigger.","in":"path","name":"cronjobId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{}}}},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"id":{"description":"execution-id","type":"string"}},"required":["id"],"type":"object"}}},"description":"Created"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Trigger a Cronjob.","tags":["Cronjob"]},"get":{"operationId":"cronjob-list-executions","parameters":[{"description":"ID of the Cronjob for which to list CronjobExecutions for.","in":"path","name":"cronjobId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"page","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"since","required":false,"schema":{"format":"date-time","type":"string"}},{"in":"query","name":"until","required":false,"schema":{"format":"date-time","type":"string"}},{"in":"query","name":"status","required":false,"schema":{"example":"Complete","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.cronjob.CronjobExecution"},"type":"array"}}},"description":"OK"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List CronjobExecutions belonging to a Cronjob.","tags":["Cronjob"]}},"/v2/cronjobs/{cronjobId}":{"delete":{"operationId":"cronjob-delete-cronjob","parameters":[{"description":"ID of the Cronjob to delete.","in":"path","name":"cronjobId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a Cronjob.","tags":["Cronjob"]},"get":{"operationId":"cronjob-get-cronjob","parameters":[{"description":"ID of the Cronjob to be retrieved.","in":"path","name":"cronjobId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.cronjob.Cronjob"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a Cronjob.","tags":["Cronjob"]},"patch":{"operationId":"cronjob-update-cronjob","parameters":[{"description":"ID of the Cronjob to be updated.","in":"path","name":"cronjobId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"active":{"type":"boolean"},"description":{"example":"i am a cronjob","type":"string"},"destination":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.cronjob.CronjobUrl"},{"$ref":"#/components/schemas/de.mittwald.v1.cronjob.CronjobCommand"}]},"email":{"format":"email","type":"string"},"interval":{"example":"*/5 * * * *","type":"string"},"timeout":{"maximum":86400,"minimum":1,"type":"number"}},"type":"object"}}}},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a Cronjob.","tags":["Cronjob"]}},"/v2/cronjobs/{cronjobId}/executions/{executionId}":{"get":{"operationId":"cronjob-get-execution","parameters":[{"description":"ID of the CronjobExecution to be retrieved.","example":"cron-bd26li-28027320","in":"path","name":"executionId","required":true,"schema":{"type":"string"}},{"in":"path","name":"cronjobId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.cronjob.CronjobExecution"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a CronjobExecution.","tags":["Cronjob"]}},"/v2/cronjobs/{cronjobId}/app-id":{"patch":{"operationId":"cronjob-update-cronjob-app-id","parameters":[{"description":"ID of the Cronjob to update.","in":"path","name":"cronjobId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"appId":{"format":"uuid","type":"string"}},"required":["appId"],"type":"object"}}},"description":"ID of the app to set."},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a Cronjob's app id.","tags":["Cronjob"]}},"/v2/customer-invites/{customerInviteId}/actions/accept":{"post":{"operationId":"customer-accept-customer-invite","parameters":[{"description":"ID of the CustomerInvite to be accepted.","in":"path","name":"customerInviteId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"invitationToken":{"description":"Token contained in the invite for authentication.","type":"string"}},"type":"object"}}},"required":true},"responses":{"204":{"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Accept a CustomerInvite.","tags":["Customer"]}},"/v2/customer-categories":{"post":{"operationId":"customer-create-category","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.customer.Category"}}},"description":"The category to create","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"customerId":{"type":"string"},"isPublic":{"type":"boolean"},"name":{"type":"string"},"useAgencyDomainPrices":{"type":"boolean"},"useAgencySslPrices":{"type":"boolean"}},"required":["categoryId"],"type":"object"}}},"description":"The new customer category"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create a new customer category.","tags":["Customer"]},"get":{"operationId":"customer-list-of-customer-categories","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"categories":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.customer.Category"},"type":"array"}}}}},"description":"Object containing the list of customer categories"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get all customer categories.","tags":["Customer"]}},"/v2/customer/{customerId}/invites":{"post":{"operationId":"customer-create-customer-invite","parameters":[{"description":"ID of the Customer to create a CustomerInvite for.","in":"path","name":"customerId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"mailAddress":{"description":"Mail-address of the person to be invited.","format":"email","type":"string"},"membershipExpiresAt":{"description":"Time the resulting CustomerMembership should expire at.","format":"date-time","type":"string"},"message":{"description":"Message contained in the CustomerInvite.","type":"string"},"role":{"$ref":"#/components/schemas/de.mittwald.v1.membership.CustomerRoles"}},"required":["mailAddress","role"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.membership.CustomerInvite"}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"409":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create a CustomerInvite.","tags":["Customer"]}},"/v2/customers":{"post":{"operationId":"customer-create-customer","requestBody":{"content":{"application/json":{"schema":{"properties":{"categoryId":{"type":"string"},"name":{"type":"string"},"owner":{"$ref":"#/components/schemas/de.mittwald.v1.customer.Contact"},"vatId":{"type":"string"}},"required":["name"],"type":"object"}}},"description":"The customer to create","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"customerId":{"type":"string"},"customerNumber":{"type":"string"},"name":{"type":"string"}},"required":["customerId","name","customerNumber"],"type":"object"}}},"description":"The new customer"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create a new customer profile.","tags":["Customer"]},"get":{"operationId":"customer-list-customers","parameters":[{"description":"filter to list only customers where the authenticated user has the specified role. Can be a comma seperated list.","in":"query","name":"role","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"page","required":false,"schema":{"minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.customer.Customer"},"type":"array"}}},"description":"The list of customers the authenticated user is a member for"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get all customer profiles the authenticated user has access to.","tags":["Customer"]}},"/v2/customer-invites/{customerInviteId}/actions/decline":{"post":{"operationId":"customer-decline-customer-invite","parameters":[{"description":"ID of the CustomerInvite to be declined.","in":"path","name":"customerInviteId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{}}}},"responses":{"204":{"description":""},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Decline a CustomerInvite.","tags":["Customer"]}},"/v2/customer-categories/{categoryId}":{"delete":{"operationId":"customer-delete-category","parameters":[{"in":"path","name":"categoryId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"$ref":"#/components/responses/de.mittwald.v1.customer.GenericResponse"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a customer category.","tags":["Customer"]},"get":{"operationId":"customer-get-customer-category","parameters":[{"in":"path","name":"categoryId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.customer.Category"}}},"description":"Returns the customer category"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a customer category.","tags":["Customer"]},"put":{"operationId":"customer-update-category","parameters":[{"in":"path","name":"categoryId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.customer.Category"}}},"description":"The category object to update","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"customerId":{"type":"string"},"isPublic":{"type":"boolean"},"name":{"type":"string"},"useAgencyDomainPrices":{"type":"boolean"},"useAgencySslPrices":{"type":"boolean"}},"required":["categoryId"],"type":"object"}}},"description":"The updated customer category"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a customer category.","tags":["Customer"]}},"/v2/customer-invites/{customerInviteId}":{"delete":{"operationId":"customer-delete-customer-invite","parameters":[{"description":"ID if the CustomerInvite to be deleted.","in":"path","name":"customerInviteId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":""},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a CustomerInvite.","tags":["Customer"]},"get":{"operationId":"customer-get-customer-invite","parameters":[{"description":"ID of the CustomerInvite to be retrieved.","in":"path","name":"customerInviteId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.membership.CustomerInvite"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a CustomerInvite.","tags":["Customer"]}},"/v2/customer-memberships/{customerMembershipId}":{"delete":{"operationId":"customer-delete-customer-membership","parameters":[{"description":"ID of the CustomerMembership to be deleted.","in":"path","name":"customerMembershipId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":""},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a CustomerMembership.","tags":["Customer"]},"get":{"operationId":"customer-get-customer-membership","parameters":[{"description":"ID of the CustomerMembership to retrieve.","in":"path","name":"customerMembershipId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.membership.CustomerMembership"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a CustomerMembership.","tags":["Customer"]},"patch":{"operationId":"customer-update-customer-membership","parameters":[{"description":"ID of the CustomerMembership to be updated.","in":"path","name":"customerMembershipId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"expiresAt":{"description":"Time the CustomerMembership should expire at.","format":"date-time","type":"string"},"role":{"$ref":"#/components/schemas/de.mittwald.v1.membership.CustomerRoles"}},"required":["role"],"type":"object"}}},"required":true},"responses":{"204":{"description":""},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a CustomerMembership.","tags":["Customer"]}},"/v2/customers/{customerId}":{"delete":{"operationId":"customer-delete-customer","parameters":[{"description":"The uuid of the customer to be deleted. Only customer without active contracts or unpaid invoices can be deleted.","in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"customerId":{"type":"string"}},"type":"object"}}},"description":"Returns the uuid of the deleted customer"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a customer profile.","tags":["Customer"]},"get":{"operationId":"customer-get-customer","parameters":[{"description":"The uuid of the customer to be returned","in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.customer.Customer"}}},"description":"The customer object"},"401":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a customer profile.","tags":["Customer"]},"put":{"operationId":"customer-update-customer","parameters":[{"in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"categoryId":{"type":"string"},"customerId":{"type":"string"},"name":{"type":"string"},"owner":{"$ref":"#/components/schemas/de.mittwald.v1.customer.Contact"},"vatId":{"type":"string"}},"required":["customerId","name"],"type":"object"}}},"description":"The customer object to update","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"customerId":{"type":"string"},"customerNumber":{"type":"string"},"name":{"type":"string"}},"required":["customerId","name","customerNumber"],"type":"object"}}},"description":"Name and id of the updated customer"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a customer profile.","tags":["Customer"]}},"/v2/customer-token-invite":{"get":{"operationId":"customer-get-customer-token-invite","parameters":[{"description":"Token of the CustomerInvite to be retrieved.","in":"header","name":"token","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.membership.CustomerInvite"}}},"description":""},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a CustomerInvite by token.","tags":["Customer"]}},"/v2/customers/{customerId}/legally-competent":{"get":{"operationId":"customer-is-customer-legally-competent","parameters":[{"description":"The uuid of the customer to be checked","in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"isLegallyCompetent":{"type":"boolean"}},"type":"object"}}},"description":"Check if customer is allowed to order a paid item."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Check if the customer profile has a valid contract partner configured.","tags":["Customer"]}},"/v2/customer/{customerId}/actions/leave":{"post":{"operationId":"customer-leave-customer","parameters":[{"description":"ID of the Customer to be left.","in":"path","name":"customerId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{}}}},"responses":{"204":{"description":""},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Leave a Customer.","tags":["Customer"]}},"/v2/customer-invites":{"get":{"operationId":"customer-list-customer-invites","parameters":[{"in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.membership.CustomerInvite"},"type":"array"}}},"description":"OK","headers":{"X-Pagination-Limit":{"schema":{"type":"number"}},"X-Pagination-Skip":{"schema":{"type":"number"}},"X-Pagination-TotalCount":{"schema":{"type":"number"}}}},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List CustomerInvites belonging to the executing user.","tags":["Customer"]}},"/v2/customer-memberships":{"get":{"operationId":"customer-list-customer-memberships","parameters":[{"in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.membership.CustomerMembership"},"type":"array"}}},"description":"OK","headers":{"X-Pagination-Limit":{"schema":{"type":"number"}},"X-Pagination-Skip":{"schema":{"type":"number"}},"X-Pagination-TotalCount":{"schema":{"type":"number"}}}},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List CustomerMemberships belonging to the executing user.","tags":["Customer"]}},"/v2/customers/{customerId}/invites":{"get":{"operationId":"customer-list-invites-for-customer","parameters":[{"description":"ID of the Customer to list invites for.","in":"path","name":"customerId","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.membership.CustomerInvite"},"type":"array"}}},"description":"OK","headers":{"X-Pagination-Limit":{"schema":{"type":"number"}},"X-Pagination-Skip":{"schema":{"type":"number"}},"X-Pagination-TotalCount":{"schema":{"type":"number"}}}},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List Invites belonging to a Customer.","tags":["Customer"]}},"/v2/customers/{customerId}/memberships":{"get":{"operationId":"customer-list-memberships-for-customer","parameters":[{"description":"Customer to list memberships for.","in":"path","name":"customerId","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.membership.CustomerMembership"},"type":"array"}}},"description":"OK","headers":{"X-Pagination-Limit":{"schema":{"type":"number"}},"X-Pagination-Skip":{"schema":{"type":"number"}},"X-Pagination-TotalCount":{"schema":{"type":"number"}}}},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List Memberships belonging to a Customer.","tags":["Customer"]}},"/v2/customers/{customerId}/avatar":{"delete":{"operationId":"customer-remove-avatar","parameters":[{"description":"The uuid of the customer whose avatar is to be deleted","in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Avatar removal was successful"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Access Token missing or invalid"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Remove the avatar picture of the customer profile.","tags":["Customer"]},"post":{"operationId":"customer-request-avatar-upload","parameters":[{"description":"The uuid of the customer for whom an avatar upload is to be requested","in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"refId":{"format":"uuid","type":"string"},"rules":{"properties":{"maxSizeInKB":{"type":"integer"},"mimeTypes":{"items":{"type":"string"},"type":"array"},"properties":{"properties":{"imageDimensions":{"properties":{"max":{"properties":{"height":{"type":"integer"},"width":{"type":"integer"}},"type":"object"},"min":{"properties":{"height":{"type":"integer"},"width":{"type":"integer"}},"type":"object"}},"type":"object"}},"type":"object"}},"required":["mimeTypes","maxSizeInKB"],"type":"object"}},"required":["refId","rules"],"type":"object"}}},"description":"Avatar request was successful. Use the `refId` to upload your avatar to the file service."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Access Token missing or invalid"},"500":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Internal server error"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Request a new avatar upload for the customer profile.","tags":["Customer"]}},"/v2/customer-invites/{customerInviteId}/actions/resend":{"post":{"operationId":"customer-resend-customer-invite-mail","parameters":[{"description":"ID of the CustomerInvite to resend the mail for.","in":"path","name":"customerInviteId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{}}}},"responses":{"204":{"description":""},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Resend the mail for a CustomerInvite.","tags":["Customer"]}},"/v2/projects/{projectId}/mysql-databases":{"post":{"operationId":"database-create-mysql-database","parameters":[{"description":"ID of the Project to create a MySQLDatabase for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"database":{"$ref":"#/components/schemas/de.mittwald.v1.database.CreateMySqlDatabase"},"user":{"$ref":"#/components/schemas/de.mittwald.v1.database.CreateMySqlUserWithDatabase"}},"required":["database","user"],"type":"object"}}}},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"uuid","type":"string"},"userId":{"format":"uuid","type":"string"}},"required":["id","userId"],"type":"object"}}},"description":"Created"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create a MySQLDatabase with a MySQLUser.","tags":["Database"]},"get":{"operationId":"database-list-mysql-databases","parameters":[{"description":"ID of the Project to list MySQLDatabases for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.database.MySqlDatabase"},"type":"array"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List MySQLDatabases belonging to a Project.","tags":["Database"]}},"/v2/mysql-databases/{mysqlDatabaseId}/users":{"post":{"operationId":"database-create-mysql-user","parameters":[{"description":"ID of the MySQLDatabase to create a MySQLUser for.","in":"path","name":"mysqlDatabaseId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.database.CreateMySqlUser"}}}},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"uuid","type":"string"}},"required":["id"],"type":"object"}}},"description":"Created"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create a MySQLUser.","tags":["Database"]},"get":{"operationId":"database-list-mysql-users","parameters":[{"description":"ID of the MySQLDatabase to list Users for.","in":"path","name":"mysqlDatabaseId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.database.MySqlUser"},"type":"array"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List MySQLUsers belonging to a Database.","tags":["Database"]}},"/v2/projects/{projectId}/redis-databases":{"post":{"operationId":"database-create-redis-database","parameters":[{"description":"ID of the Project to create a RedisDatabase for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"example":{"description":"My first RedisDatabase!","version":"7.0"},"properties":{"configuration":{"$ref":"#/components/schemas/de.mittwald.v1.database.RedisDatabaseConfiguration"},"description":{"description":"A description for the database.","type":"string"},"version":{"description":"The version the database should use.","type":"string"}},"required":["description","version"],"type":"object"}}}},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"uuid","type":"string"}},"required":["id"],"type":"object"}}},"description":"Created"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create a RedisDatabase.","tags":["Database"]},"get":{"operationId":"database-list-redis-databases","parameters":[{"description":"ID of the Project to list RedisDatabases for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.database.RedisDatabase"},"type":"array"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List RedisDatabases belonging to a Project.","tags":["Database"]}},"/v2/mysql-databases/{mysqlDatabaseId}":{"delete":{"operationId":"database-delete-mysql-database","parameters":[{"description":"ID of the MySQLDatabase to be deleted.","in":"path","name":"mysqlDatabaseId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a MySQLDatabase.","tags":["Database"]},"get":{"operationId":"database-get-mysql-database","parameters":[{"description":"ID of the MySQLDatabase to be retrieved.","in":"path","name":"mysqlDatabaseId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.database.MySqlDatabase"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a MySQLDatabase.","tags":["Database"]}},"/v2/mysql-users/{mysqlUserId}":{"delete":{"operationId":"database-delete-mysql-user","parameters":[{"description":"ID of the MySQLUser to delete.","in":"path","name":"mysqlUserId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a MySQLUser.","tags":["Database"]},"get":{"operationId":"database-get-mysql-user","parameters":[{"description":"ID of the MySQLUser to be retrieved.","in":"path","name":"mysqlUserId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.database.MySqlUser"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a MySQLUser.","tags":["Database"]},"put":{"operationId":"database-update-mysql-user","parameters":[{"description":"ID of the MySQLUser to update.","in":"path","name":"mysqlUserId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"accessIpMask":{"type":"string"},"accessLevel":{"enum":["full","readonly"],"type":"string"},"description":{"type":"string"},"externalAccess":{"type":"boolean"}},"required":["description","accessLevel"]}}}},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a MySQLUser.","tags":["Database"]}},"/v2/redis-databases/{redisDatabaseId}":{"delete":{"operationId":"database-delete-redis-database","parameters":[{"description":"ID of the RedisDatabase to delete.","in":"path","name":"redisDatabaseId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a RedisDatabase.","tags":["Database"]},"get":{"operationId":"database-get-redis-database","parameters":[{"description":"ID of the RedisDatabase to retrieve.","in":"path","name":"redisDatabaseId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.database.RedisDatabase"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a RedisDatabase.","tags":["Database"]}},"/v2/mysql-users/{mysqlUserId}/actions/disable":{"post":{"operationId":"database-disable-mysql-user","parameters":[{"description":"ID of the MySQLUser to disable.","in":"path","name":"mysqlUserId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{}}}},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Disable a MySQLUser.","tags":["Database"]}},"/v2/mysql-users/{mysqlUserId}/actions/enable":{"post":{"operationId":"database-enable-mysql-user","parameters":[{"description":"ID of the MySQLUser to enable.","in":"path","name":"mysqlUserId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{}}}},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Enable a MySQLUser.","tags":["Database"]}},"/v2/mysql-users/{mysqlUserId}/php-my-admin-url":{"get":{"operationId":"database-get-mysql-user-php-my-admin-url","parameters":[{"description":"ID of the MySQLUser for which to get the URL for.","in":"path","name":"mysqlUserId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.database.PhpMyAdminURL"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a MySQLUser's PhpMyAdmin-URL.","tags":["Database"]}},"/v2/mysql-charsets":{"get":{"operationId":"database-list-mysql-charsets","parameters":[{"description":"ID of the MySQLVersion for which to list the available character sets in the format `mysqlXY`.","in":"query","name":"version","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.database.MySqlCharacterSettings"},"type":"array"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List available MySQL character sets and collations, optionally filtered by a MySQLVersion.","tags":["Database"]}},"/v2/mysql-versions":{"get":{"operationId":"database-list-mysql-versions","parameters":[{"description":"ID of the Project to list available MySQLVersions for.","in":"query","name":"projectId","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.database.MySqlVersion"},"type":"array"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List MySQLVersions.","tags":["Database"]}},"/v2/redis-versions":{"get":{"operationId":"database-list-redis-versions","parameters":[{"description":"ID of the Project to list available RedisVersions for.","in":"query","name":"projectId","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.database.RedisVersion"},"type":"array"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List RedisVersions.","tags":["Database"]}},"/v2/mysql-databases/{mysqlDatabaseId}/default-charset":{"patch":{"operationId":"database-update-mysql-database-default-charset","parameters":[{"description":"ID of the MySQLDatabase to update.","in":"path","name":"mysqlDatabaseId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"characterSettings":{"$ref":"#/components/schemas/de.mittwald.v1.database.characterSettings"}},"required":["characterSettings"]}}},"description":"The default character settings to be used for the MySQLDatabase."},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a MySQLDatabase's default character settings.","tags":["Database"]}},"/v2/mysql-databases/{mysqlDatabaseId}/description":{"patch":{"operationId":"database-update-mysql-database-description","parameters":[{"description":"ID of the MySQLDatabase to update.","in":"path","name":"mysqlDatabaseId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"type":"string"}},"required":["description"]}}}},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a MySQLDatabase's description.","tags":["Database"]}},"/v2/mysql-users/{mysqlUserId}/password":{"patch":{"operationId":"database-update-mysql-user-password","parameters":[{"description":"ID of the MySQLUser for which to update the password for.","in":"path","name":"mysqlUserId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"password":{"type":"string"}},"required":["password"]}}}},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a MySQLUser's password.","tags":["Database"]}},"/v2/redis-databases/{redisDatabaseId}/configuration":{"patch":{"operationId":"database-update-redis-database-configuration","parameters":[{"description":"ID of the RedisDatabase to update.","in":"path","name":"redisDatabaseId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"configuration":{"$ref":"#/components/schemas/de.mittwald.v1.database.RedisDatabaseConfiguration"}}}}}},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a RedisDatabase's configuration.","tags":["Database"]}},"/v2/redis-databases/{redisDatabaseId}/description":{"patch":{"operationId":"database-update-redis-database-description","parameters":[{"description":"ID of the RedisDatabase to update.","in":"path","name":"redisDatabaseId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"type":"string"}},"required":["description"]}}}},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a RedisDatabase's description.","tags":["Database"]}},"/v2/appinstallations/{appInstallationId}/databases":{"put":{"operationId":"deprecated-app-link-database","deprecated":true,"parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"databaseId":{"format":"uuid","type":"string"},"databaseUserIds":{"additionalProperties":{"type":"string"},"type":"object"},"purpose":{"enum":["primary","cache","custom"],"type":"string"}},"required":["databaseId","purpose"],"type":"object"}}},"description":"Properties for linking a Database","required":true},"responses":{"204":{"description":"The database has been linked."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create linkage between an AppInstallation and a MySql-Database.","tags":["App"]}},"/v2/domains/{domainId}/screenshots/newest":{"get":{"operationId":"deprecated-domain-get-screenshot-for-domain","deprecated":true,"parameters":[{"in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"domainName":{"example":"example.com","type":"string"},"path":{"example":"/var/www","type":"string"}},"required":["domainName","path"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"references":{"items":{"type":"string"},"type":"array"}},"type":"object"}}},"description":"The References."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get File Service Reference for a Screenshot of a domain.","tags":["Domain"]}},"/v2/file-token-rules/{token}":{"get":{"operationId":"deprecated-file-get-file-token-rules","deprecated":true,"parameters":[{"description":"Token of the Token's upload rules to be retrieved.","in":"path","name":"token","required":true,"schema":{"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6","format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.file.FileUploadRules"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get a Token's upload rules.","tags":["File"]}},"/v2/file-type-rules/{name}":{"get":{"operationId":"deprecated-file-get-file-type-rules","deprecated":true,"parameters":[{"description":"Name of the Type's upload rules to be retrieved.","in":"path","name":"name","required":true,"schema":{"enum":["avatar","conversation"],"example":"avatar","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.file.FileUploadRules"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get a Type's upload rules.","tags":["File"]}},"/v2/customers/{customerId}/invoices/{invoiceId}":{"get":{"operationId":"deprecated-invoice-detail-of-invoice","description":"This route is deprecated. Use /v2/invoices/{invoiceId} instead.","parameters":[{"example":"edefeee4-e8e9-4e2d-ab95-9a2eb6104cfb","in":"path","name":"customerId","required":true,"schema":{"type":"string"}},{"example":"154219e9-bf4a-4f41-9c72-0449a98db62f","in":"path","name":"invoiceId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.Invoice"}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get details of an Invoice.","tags":["Contract"],"deprecated":true}},"/v2/newsletter-subscriptions":{"post":{"operationId":"newsletter-subscribe-user","requestBody":{"content":{"application/json":{"schema":{"properties":{"firstName":{"example":"Ada","type":"string"},"lastName":{"example":"Lovelace","type":"string"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"active":{"example":false,"type":"boolean"},"email":{"example":"a.lovelace@example.com","type":"string"},"registered":{"example":true,"type":"boolean"}},"required":["email","active","registered"],"type":"object"}}},"description":"Subscription information email has been sent."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Subscribe a user to the mStudio newsletter.","tags":["Notification"]}},"/v2/signup/email":{"put":{"operationId":"deprecated-user-change-email","requestBody":{"content":{"application/json":{"schema":{"properties":{"email":{"description":"The new Email-Address.","example":"ada.lovelace@example.com","format":"email","type":"string"}},"required":["email"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Your email has been added, but needs to be verfied. Check your mails and\ncall /email/verify with the verification code sent with the mail.\n"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values does not meet our requirements.\nPossible domain specific `type` values are:\n * EmailInUse\n * EmailBlacklisted\n * EmailMXInvalid\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Change your Email-Address.","tags":["User"],"deprecated":true},"get":{"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get your verified Email-Address.","tags":["User"],"deprecated":true}},"/v2/signup/password/reset/confirm":{"post":{"operationId":"deprecated-user-confirm-password-reset","requestBody":{"content":{"application/json":{"schema":{"properties":{"password":{"description":"The new password.","type":"string"},"token":{"description":"Password reset token","maxLength":6,"minLength":6,"type":"string"},"userId":{"description":"UserId of the user to reset the password for.","format":"uuid","type":"string"}},"required":["userId","token","password"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Password reset was successful."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values do not meet our requirements.\nPossible domain specific `type` values are:\n * WrongPasswordResetToken\n * EmailAddressNotVerified\n * PasswordIsLeaked\n * ValidationError\n * PasswordEqualsEmail\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Confirm password reset.","tags":["User"],"deprecated":true}},"/v2/users/self/issues":{"post":{"operationId":"deprecated-user-create-issue","requestBody":{"content":{"application/json":{"schema":{"properties":{"message":{"description":"Detailed report of the issue.","maxLength":5000,"type":"string"},"origin":{"description":"Origin of the issue.","type":"string"},"subject":{"description":"Descriptive subject of the report.","type":"string"},"type":{"description":"Type of feedback.","enum":["feedback","bug"],"type":"string"},"vote":{"description":"Feedback rating from bad to good.","maximum":10,"minimum":0,"type":"number"}},"required":["type","message"],"type":"object"}}},"description":"Submit an issue."},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Issue successfully submitted."},"401":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create a new issue.","tags":["User"],"deprecated":true}},"/v2/signup/token/api/{apiTokenId}":{"delete":{"operationId":"deprecated-user-delete-api-token","parameters":[{"description":"The uuid of an ApiToken.","in":"path","name":"apiTokenId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"The `ApiToken` has been deleted."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values does not meet our requirements.\nPossible domain specific `type` values are:\n * ValidationError\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Deletes an ApiToken.","tags":["User"],"deprecated":true},"put":{"operationId":"deprecated-user-edit-api-token","parameters":[{"in":"path","name":"apiTokenId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"example":"Api Token for ...","type":"string"},"expiresAt":{"format":"date-time","type":"string"}},"required":["description"],"type":"object"}}},"required":true},"responses":{"200":{"description":"ApiToken was updated."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values do not meet our requirements.\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update an existing `ApiToken`.","tags":["User"],"deprecated":true},"get":{"parameters":[{"description":"The id of an ApiToken.","in":"path","name":"apiTokenId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a specific ApiToken.","tags":["User"],"deprecated":true}},"/v2/signup/ssh/{sshKeyId}":{"delete":{"operationId":"deprecated-user-delete-ssh-key","parameters":[{"in":"path","name":"sshKeyId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"The ssh-key was removed."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Remove a ssh-key.","tags":["User"],"deprecated":true},"put":{"operationId":"deprecated-user-edit-ssh-key","parameters":[{"in":"path","name":"sshKeyId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"comment":{"example":"a.lovelace@example.com","type":"string"},"expiresAt":{"format":"date-time","type":"string"}},"required":["comment"],"type":"object"}}},"required":true},"responses":{"200":{"description":"The ssh-key has been edited."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values do not meet our requirements.\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Edit a stored ssh-key.","tags":["User"],"deprecated":true},"get":{"parameters":[{"in":"path","name":"sshKeyId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a specific stored ssh-key.","tags":["User"],"deprecated":true}},"/v2/signup/mfa":{"delete":{"operationId":"deprecated-user-disable-mfa","requestBody":{"content":{"application/json":{"schema":{"properties":{"multiFactorCode":{"description":"Multi Factor Code to confirm MFA.","maxLength":16,"minLength":6,"type":"string"}},"required":["multiFactorCode"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Multi Factor Authentication was disabled."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values does not meet our requirements.\nPossible domain specific `type` values are:\n * MultiFactorCodeNotValid\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Disable Multi Factor Authentication.","tags":["User"],"deprecated":true},"get":{"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get your current multi factor auth status.","tags":["User"],"deprecated":true},"post":{"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":false},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Initialize Multi Factor Authentication. If successful, it needs to be confirmed, before usage of mfa.","tags":["User"],"deprecated":true}},"/v2/signup/password/reset":{"post":{"operationId":"deprecated-user-init-password-reset","requestBody":{"content":{"application/json":{"schema":{"properties":{"email":{"description":"Email address to reset the password for.","example":"a.lovelace@example.com","format":"email","type":"string"}},"required":["email"],"type":"object"}}},"required":true},"responses":{"200":{"description":"The password reset process has been initialized and an email with confirmation code has been sent.\n"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values do not meet our requirements.\n"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Initialize password reset process.","tags":["User"],"deprecated":true}},"/v2/signup/logout":{"put":{"operationId":"deprecated-user-logout","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":false},"responses":{"200":{"description":"You've been logged out. The access token has been removed and invalidated."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values do not meet our requirements.\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Terminate session and invalidate access token.","tags":["User"],"deprecated":true}},"/v2/signup/email/resend":{"post":{"operationId":"deprecated-user-resend-verification-email","requestBody":{"content":{"application/json":{"schema":{"properties":{"email":{"example":"ada.lovelace@example.com","format":"email","type":"string"},"userId":{"format":"uuid","type":"string"}},"required":["multiFactorCode"],"type":"object"}}},"required":true},"responses":{"204":{"description":"New Email-Address verification mail was sent."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values do not meet our requirements.\n"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Resend the Email-Address verification email.","tags":["User"],"deprecated":true}},"/v2/user/{userId}/avatar":{"delete":{"operationId":"deprecated-user-service-avatar-remove","parameters":[{"in":"path","name":"userId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"Avatar removal was successful"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Remove Avatar","tags":["User"],"deprecated":true},"post":{"operationId":"deprecated-user-service-avatar-request-upload","parameters":[{"in":"path","name":"userId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"refId":{"format":"uuid","type":"string"},"rules":{"properties":{"maxSizeInKB":{"type":"integer"},"mimeTypes":{"items":{"type":"string"},"type":"array"},"properties":{"properties":{"imageDimensions":{"properties":{"max":{"properties":{"height":{"type":"integer"},"width":{"type":"integer"}},"type":"object"},"min":{"properties":{"height":{"type":"integer"},"width":{"type":"integer"}},"type":"object"}},"type":"object"}},"type":"object"}},"required":["mimeTypes","maxSizeInKB"],"type":"object"}},"required":["refId","rules"],"type":"object"}}},"description":"Avatar upload request was successful. Use the `refId` to upload your avatar to the /v2/files/:refId"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Request a new avatar upload","tags":["User"],"deprecated":true}},"/v2/user/feedback":{"post":{"operationId":"deprecated-user-service-feedback-create","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"properties":{"message":{"maxLength":5000,"type":"string"},"origin":{"maxLength":1000,"type":"string"},"subject":{"maxLength":100,"minLength":1,"type":"string"},"vote":{"maximum":10,"minimum":0,"type":"number"}},"required":["origin","subject","vote"],"type":"object"}}},"description":"The user feedback"},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object"}}},"description":""},"401":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Submit user feedback","tags":["User"],"deprecated":true},"get":{"operationId":"deprecated-user-service-feedback-list","parameters":[{"in":"query","name":"subject","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.user.UserFeedback"},"type":"array"}}},"description":"A list of feedback submitted by the user"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Returns your submitted feedback","tags":["User"],"deprecated":true}},"/v2/user/issues":{"post":{"operationId":"deprecated-user-service-issue-new","requestBody":{"content":{"application/json":{"schema":{"properties":{"message":{"maxLength":1000000,"type":"string"},"origin":{"type":"string"},"subject":{"type":"string"},"type":{"enum":["feedback","bug"],"type":"string"}},"required":["type","message"],"type":"object"}}},"description":"Submit an issue."},"responses":{"201":{"description":"Issue created"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"create a new issue","tags":["User"],"deprecated":true}},"/v2/user/{userId}":{"put":{"operationId":"deprecated-user-service-personal-information-update","parameters":[{"in":"path","name":"userId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"person":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Person"}},"required":["person"],"type":"object"}}},"required":true},"responses":{"204":{"description":"Your personal information has been changed"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Change your personal information","tags":["User"],"deprecated":true},"get":{"operationId":"deprecated-user-service-user-get","parameters":[{"in":"path","name":"userId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.user.User"}}},"description":"The Profile"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get profile information for the specified user if the user is related to the executing user","tags":["User"],"deprecated":true}},"/v2/user/settings":{"get":{"operationId":"deprecated-user-service-personalized-settings-get","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"settingsString":{"type":"string"}},"type":"object"}}},"description":"The settingsString"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get personalized settings for the user executing the request","tags":["User"],"deprecated":true},"put":{"operationId":"deprecated-user-service-personalized-settings-update","requestBody":{"content":{"application/json":{"schema":{"properties":{"settingsString":{"type":"string"}},"required":["settingsString"],"type":"object"}}},"required":true},"responses":{"204":{"description":"PersonalSettings have been updated"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"update personalized settings","tags":["User"],"deprecated":true}},"/v2/user/{userId}/phone":{"post":{"operationId":"deprecated-user-service-phone-number-add","parameters":[{"in":"path","name":"userId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"phoneNumber":{"type":"string"}},"required":["phoneNumber"],"type":"object"}}},"required":true},"responses":{"204":{"description":"PhoneNumber was added successfully. Now, it can be verified under /v2/user/{userId}/phone/verify"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"409":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Add phone number and init verification process","tags":["User"],"deprecated":true},"delete":{"operationId":"deprecated-user-service-phone-number-remove","parameters":[{"in":"path","name":"userId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"PhoneNumber removal was successful"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"remove your PhoneNumber","tags":["User"],"deprecated":true}},"/v2/user/{userId}/phone/verify":{"post":{"operationId":"deprecated-user-service-phone-number-verify","parameters":[{"in":"path","name":"userId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"code":{"example":"123456","type":"string"},"phoneNumber":{"example":"+491701234567","type":"string"}},"required":["phoneNumber","code"],"type":"object"}}},"required":true},"responses":{"204":{"description":"The PhoneNumber has been verified"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"409":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Verify phone number","tags":["User"],"deprecated":true}},"/v2/user":{"get":{"operationId":"deprecated-user-service-user-get-own","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.user.User"}}},"description":"The Profile"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get profile information for the executing user","tags":["User"],"deprecated":true}},"/v2/signup/sessions":{"delete":{"operationId":"deprecated-user-terminate-all-sessions","responses":{"200":{"description":"All sessions terminated."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Terminate all sessions, except the current session.","tags":["User"],"deprecated":true},"get":{"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List all sessions.","tags":["User"],"deprecated":true}},"/v2/signup/sessions/{tokenId}":{"delete":{"operationId":"deprecated-user-terminate-session","parameters":[{"description":"TokenId to identify the concrete session.","in":"path","name":"tokenId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Session terminated."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Terminate a specific Session.","tags":["User"],"deprecated":true},"get":{"parameters":[{"description":"TokenId to identify a specific session.","in":"path","name":"tokenId","required":true,"schema":{"type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a specific session.","tags":["User"],"deprecated":true}},"/v2/signup/profile":{"put":{"operationId":"deprecated-user-update-account","requestBody":{"content":{"application/json":{"schema":{"properties":{"person":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Person"}},"required":["person"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Account has been updated."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values does not meet our requirements.\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update your account information.","tags":["User"],"deprecated":true},"delete":{"requestBody":{"content":{"application/json":{"schema":{"properties":{"multiFactorCode":{"description":"Multi Factor Code to authorize your request.","example":"123456","maxLength":16,"minLength":6,"type":"string"},"password":{"type":"string"}},"required":["password"],"type":"object"}}},"required":true},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete your account and all your personal data.","tags":["User"],"deprecated":true},"get":{"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":false},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get your account information.","tags":["User"],"deprecated":true}},"/v2/signup/email/verify":{"post":{"operationId":"deprecated-user-verify-email","requestBody":{"content":{"application/json":{"schema":{"properties":{"email":{"description":"The Email-Address to verify.","example":"ada.lovelace@example.com","format":"email","type":"string"},"token":{"description":"The token found in the verification email.","example":"123456","type":"string"}},"required":["email"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Email has been verified."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values do not meet our requirements.\nPossible domain specific `type` values are:\n * WrongVerificationToken\n * EmailNotFound\n * WrongVerificationToken\n * EmailAddressAlreadyVerified\n"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Verify an added Email-Address.","tags":["User"],"deprecated":true}},"/v2/dns/zones":{"post":{"parameters":[],"requestBody":{"content":{"application/json":{"schema":{"properties":{"name":{"format":"idn-dnsname","type":"string"},"parentZoneId":{"format":"uuid","type":"string"}},"required":["name","parentZoneId"],"type":"object"}}}},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create a DNSZone.","tags":["Domain"],"deprecated":true}},"/v2/dns-zones":{"post":{"operationId":"dns-create-dns-zone","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"properties":{"name":{"format":"idn-dnsname","type":"string"},"parentZoneId":{"format":"uuid","type":"string"}},"required":["name","parentZoneId"],"type":"object"}}}},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"uuid","type":"string"}},"required":["id"],"type":"object"}}},"description":"The ID of the created DNSZone."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create a DNSZone.","tags":["Domain"]}},"/v2/dns/zones/{dnsZoneId}":{"delete":{"parameters":[{"description":"The ID of the DNSZone to be deleted.","in":"path","name":"dnsZoneId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a DNSZone.","tags":["Domain"],"deprecated":true},"get":{"parameters":[{"description":"The ID of the zone to be retrieved.","in":"path","name":"dnsZoneId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a DNSZone.","tags":["Domain"],"deprecated":true}},"/v2/dns-zones/{dnsZoneId}":{"delete":{"operationId":"dns-delete-dns-zone","parameters":[{"description":"The ID of the DNSZone to be deleted.","in":"path","name":"dnsZoneId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a DNSZone.","tags":["Domain"]},"get":{"operationId":"dns-get-dns-zone","parameters":[{"description":"The ID of the zone to be retrieved.","in":"path","name":"dnsZoneId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.dns.Zone"}}},"description":"The requested DNSZone."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a DNSZone.","tags":["Domain"]}},"/v2/projects/{projectId}/dns/zones":{"get":{"parameters":[{"description":"ID of the Project to list DNSZones for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List DNSZones belonging to a Project.","tags":["Domain"],"deprecated":true}},"/v2/projects/{projectId}/dns-zones":{"get":{"operationId":"dns-list-dns-zones","parameters":[{"description":"ID of the Project to list DNSZones for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.dns.Zone"},"type":"array"}}},"description":"An array of DNSZone objects."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List DNSZones belonging to a Project.","tags":["Domain"]}},"/v2/dns/zones/{zoneId}/recordset/acombined/custom":{"put":{"operationId":"dns-record-a-set-custom-deprecated","deprecated":true,"parameters":[{"description":"the id of the zone the record belongs to","in":"path","name":"zoneId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordUnset"},{"$ref":"#/components/schemas/de.mittwald.v1.dns.CombinedACustom"}]}}}},"responses":{"204":{"description":"recordset updated"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"updates a-records for a specific zone","tags":["Domain"]}},"/v2/dns/zones/{zoneId}/recordset/acombined/managed/ingress":{"post":{"operationId":"dns-record-a-set-managed-by-ingress-deprecated","deprecated":true,"parameters":[{"description":"the id of the zone you want to set managed","in":"path","name":"zoneId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{},"type":"object"}}}},"responses":{"204":{"content":{"application/json":{"schema":{"properties":{"ingressId":{"format":"uuid","type":"string"}},"required":["ingressId"],"type":"object"}}},"description":"zone set managed by ingressId"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"set a-records managed by ingress for a specific zone","tags":["Domain"]}},"/v2/dns/zones/{zoneId}/recordset/cname":{"put":{"operationId":"dns-record-cname-set-deprecated","deprecated":true,"parameters":[{"description":"the id of the zone the record belongs to","in":"path","name":"zoneId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordUnset"},{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordCNAMEComponent"}]}}}},"responses":{"204":{"description":"recordset updated"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"updates cname-record for a specific zone","tags":["Domain"]}},"/v2/dns/zones/{zoneId}/recordset/mx/custom":{"put":{"operationId":"dns-record-mx-set-custom-deprecated","deprecated":true,"parameters":[{"description":"the id of the zone the record belongs to","in":"path","name":"zoneId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordUnset"},{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordMXCustom"}]}}}},"responses":{"204":{"description":"recordset updated"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"updates mx-records for a specific zone","tags":["Domain"]}},"/v2/dns/zones/{zoneId}/recordset/mx/managed":{"post":{"operationId":"dns-record-mx-set-managed-deprecated","deprecated":true,"parameters":[{"description":"the id of the zone the record belongs to","in":"path","name":"zoneId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object"}}}},"responses":{"204":{"description":"recordset updated"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"sets mx-records to managed for a specific zone","tags":["Domain"]}},"/v2/dns/zones/{zoneId}/recordset/srv":{"put":{"operationId":"dns-record-srv-set-deprecated","deprecated":true,"parameters":[{"description":"the id of the zone the record belongs to","in":"path","name":"zoneId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordUnset"},{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordSRVComponent"}]}}}},"responses":{"204":{"description":"recordset updated"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"updates srv-records for a specific zone","tags":["Domain"]}},"/v2/dns/zones/{zoneId}/recordset/txt":{"put":{"operationId":"dns-record-txt-set-deprecated","deprecated":true,"parameters":[{"description":"the id of the zone the record belongs to","in":"path","name":"zoneId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordUnset"},{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordTXTComponent"}]}}}},"responses":{"204":{"description":"recordset updated"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"updates txt-records for a specific zone","tags":["Domain"]}},"/v2/dns-zones/{dnsZoneId}/record-sets/{recordSet}/actions/set-managed":{"post":{"operationId":"dns-set-record-set-managed","parameters":[{"description":"The ID of the DNSZone to set a record set to managed for.","in":"path","name":"dnsZoneId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"The record set to set to managed.","in":"path","name":"recordSet","required":true,"schema":{"enum":["a","mx"],"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{},"type":"object"}}}},"responses":{"204":{"content":{"application/json":{"schema":{"properties":{"ingressId":{"format":"uuid","type":"string"}},"type":"object"}}},"description":"The ID of the Ingress the a-records were set for, or an empty object if mx-records were set."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Set a record set on a DNSZone to managed.","tags":["Domain"]}},"/v2/dns-zones/{dnsZoneId}/record-sets/{recordSet}":{"put":{"operationId":"dns-update-record-set","parameters":[{"description":"The ID of the DNSZone to update a record set for.","in":"path","name":"dnsZoneId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"The record set to be updated.","in":"path","name":"recordSet","required":true,"schema":{"enum":["a","mx","txt","srv","cname"],"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordUnset"},{"$ref":"#/components/schemas/de.mittwald.v1.dns.CombinedACustom"},{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordMXCustom"},{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordTXTComponent"},{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordSRVComponent"},{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordCNAMEComponent"}]}}}},"responses":{"204":{"description":"Record set updated."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a record set on a DNSZone.","tags":["Domain"]}},"/v2/domains/{domainId}/declarations":{"delete":{"description":"Abort an incomplete Domain registration/transfer.","parameters":[{"in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Abort a Domain declaration.","tags":["Domain"],"deprecated":true}},"/v2/domains/{domainId}/declaration":{"delete":{"operationId":"domain-abort-domain-declaration","description":"Abort an incomplete Domain registration/transfer.","parameters":[{"in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Abort a Domain declaration.","tags":["Domain"]}},"/v2/domains/{domainId}/handles/ownerc":{"put":{"operationId":"domain-change-ownerc-of-domain-v2-deprecated","deprecated":true,"description":"Change the domain owner of a fully registered domain.","parameters":[{"in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"ownerC":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.domain.HandleField"},"minItems":1,"type":"array"}},"required":["ownerC"]}}},"description":"The new handle fields for the new owner."},"responses":{"200":{"$ref":"#/components/responses/de.mittwald.v1.domain.SuccessResponse"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Change the owner contact of a domain.","tags":["Domain"]}},"/v2/domains/{domainId}/projectId":{"put":{"operationId":"domain-change-project-of-domain-v2-deprecated","deprecated":true,"parameters":[{"in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"projectId":{"format":"uuid","type":"string"}}}}}},"responses":{"204":{"description":"No Content"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Change the Project relation of a Domain.","tags":["Domain"]}},"/v2/domain-registrable":{"post":{"operationId":"domain-check-domain-registrability","description":"If false, you have to start a transfer with an auth code instead.","requestBody":{"content":{"application/json":{"schema":{"properties":{"domain":{"format":"naked-domain","type":"string"}},"required":["domain"]}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"isPremium":{"type":"boolean"},"registrable":{"type":"boolean"}},"required":["registrable","isPremium"],"type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[],"summary":"Check if a Domain is available to register.","tags":["Domain"]}},"/v2/domains":{"post":{"operationId":"domain-check-domain-registrability-v2-deprecated","deprecated":true,"description":"If false, you have to start a transfer with an auth code instead.","requestBody":{"content":{"application/json":{"schema":{"properties":{"domain":{"format":"naked-domain","type":"string"}},"required":["domain"]}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"available":{"type":"boolean"}},"required":["available"],"type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[],"summary":"Check if a Domain is available to register.","tags":["Domain"]},"get":{"operationId":"domain-list-domains","parameters":[{"in":"query","name":"projectId","required":false,"schema":{"format":"uuid","type":"string"}},{"in":"query","name":"page","required":false,"schema":{"minimum":1,"type":"integer"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":1,"type":"integer"}},{"description":"Search for domain names in these list. Works only in combination with projectId. Input will be handled like '%YourInput%'","in":"query","name":"domainSearchName","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.domain.Domain"},"type":"array"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List Domains","tags":["Domain"]}},"/v2/domain-transferable":{"post":{"operationId":"domain-check-domain-transferability","requestBody":{"content":{"application/json":{"schema":{"properties":{"authCode":{"type":"string"},"domain":{"format":"naked-domain","type":"string"}},"required":["domain"]}}}},"responses":{"200":{"$ref":"#/components/responses/de.mittwald.v1.domain.TransferabilityResponse"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[],"summary":"Check if a Domain is available to transfer.","tags":["Domain"]}},"/v2/domains/{domainId}/actions/create-authcode":{"post":{"parameters":[{"in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create an auth code for a Domains transfer-out process.","tags":["Domain"],"deprecated":true}},"/v2/domains/{domainId}/actions/auth-code":{"post":{"operationId":"domain-create-domain-auth-code","parameters":[{"in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"authCode":{"type":"string"}},"required":["authCode"],"type":"object"}}},"description":"Created"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create an auth code for a Domains transfer-out process.","tags":["Domain"]}},"/v2/domains/{domainId}/nameservers":{"put":{"operationId":"domain-declare-nameservers-v2-deprecated","deprecated":true,"parameters":[{"in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"nameservers":{"items":{"format":"idn-hostname","type":"string"},"minItems":2,"type":"array","uniqueItems":true}}}}}},"responses":{"204":{"description":"No Content"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Change all nameservers of a Domain.","tags":["Domain"]},"patch":{"operationId":"domain-update-domain-nameservers","parameters":[{"in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"nameservers":{"items":{"format":"idn-hostname","type":"string"},"minItems":2,"type":"array","uniqueItems":true}}}}}},"responses":{"204":{"description":"No Content"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the nameservers of a Domain.","tags":["Domain"]}},"/v2/domains/{domainId}/declarations/authcode":{"put":{"operationId":"domain-declare-process-change-authcode-v2-deprecated","deprecated":true,"description":"Change a wrong AuthCode of your transfer domain request (declare domain process). This route will also restart the transfer itself.","parameters":[{"in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"authCode":{"minLength":4,"type":"string"}},"required":["authCode"]}}},"description":"The new handle fields for the new owner."},"responses":{"200":{"$ref":"#/components/responses/de.mittwald.v1.domain.SuccessResponse"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update an AuthCode.","tags":["Domain"]}},"/v2/domains/{domainId}/declarations/handles":{"put":{"operationId":"domain-declare-process-change-handles-v2-deprecated","deprecated":true,"description":"This route will also restart the transfer or register itself.","parameters":[{"description":"The domain id from which the ownerC is to be changed","in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"ownerC":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.domain.HandleField"},"minItems":1,"type":"array"}},"required":["ownerC"]}}},"description":"The new handle fields for the new owner."},"responses":{"200":{"$ref":"#/components/responses/de.mittwald.v1.domain.SuccessResponse"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a Domain's OwnerC handle.","tags":["Domain"]}},"/v2/domains/{domainId}":{"delete":{"operationId":"domain-delete-domain","parameters":[{"in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"query","name":"transit","schema":{"description":"Only for .de Domains.","type":"boolean"}}],"responses":{"200":{"$ref":"#/components/responses/de.mittwald.v1.domain.SuccessResponse"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a Domain.","tags":["Domain"]},"get":{"operationId":"domain-get-domain","parameters":[{"in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.domain.Domain"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a Domain.","tags":["Domain"]}},"/v2/domains/handle-schema/{domainName}":{"get":{"operationId":"domain-get-handle-fields-v2-deprecated","deprecated":true,"description":"Get required handle fields of a registrar for your domain process (transfer/registration).","parameters":[{"description":"The whole domain name","in":"path","name":"domainName","required":true,"schema":{"format":"naked-domain","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"jsonSchemaAdminC":{"type":"object"},"jsonSchemaOwnerC":{"type":"object"}},"required":["jsonSchemaOwnerC"],"type":"object"}}},"description":"The parseable json schema objects"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[],"summary":"Get a HandleSchema.","tags":["Domain"]}},"/v2/domains/{domainId}/latest-screenshot":{"get":{"operationId":"domain-get-latest-screenshot","parameters":[{"in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"domainName":{"example":"example.com","type":"string"},"path":{"example":"/var/www","type":"string"}},"required":["domainName","path"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"reference":{"type":"string"}},"type":"object"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get the latest screenshot's FileReference belonging to a Domain.","tags":["Domain"]}},"/v2/projects/{projectId}/domains":{"get":{"operationId":"domain-list-domains-v2-deprecated","deprecated":true,"parameters":[{"in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"query","name":"page","required":false,"schema":{"minimum":1,"type":"integer"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":1,"type":"integer"}},{"description":"Search for domain names in these list. Input will be handled like '%YourInput%'","in":"query","name":"domainSearchName","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.domain.Domain"},"type":"array"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List Domains belonging to a Project.","tags":["Domain"]}},"/v2/domain-tlds/{tld}/contact-schemas":{"get":{"operationId":"domain-list-tld-contact-schemas","description":"List the contact schemas describing the fields required to register/transfer a Domain.","parameters":[{"description":"The top level domain to retrieve the schemas for.","example":{"value":"de"},"in":"path","name":"tld","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"jsonSchemaAdminC":{"type":"object"},"jsonSchemaOwnerC":{"type":"object"}},"required":["jsonSchemaOwnerC"],"type":"object"}}},"description":"The JSON-Schema objects."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[],"summary":"List the contact schemas for a TLD.","tags":["Domain"]}},"/v2/domains/supported-tlds":{"get":{"description":"List the top level domains currently supported by our API.","responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[],"summary":"List TLDs.","tags":["Domain"],"deprecated":true}},"/v2/domain-tlds":{"get":{"operationId":"domain-list-tlds","description":"List the top level domains currently supported by our API.","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.domain.TopLevel"},"type":"array"}}},"description":""},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[],"summary":"List TLDs.","tags":["Domain"]}},"/v2/domains/{domainId}/actions/resend-email":{"post":{"operationId":"domain-resend-domain-email","description":"Trigger a resend of a confirmation or registrant verification email. Has no effect on .de Domains.","parameters":[{"in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Resend a Domain email.","tags":["Domain"]}},"/v2/domains/{domainId}/authcode":{"patch":{"description":"Update an incorrect auth code of an ongoing/failed Domain transfer. This route will also restart the transfer itself.","parameters":[{"in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"authCode":{"minLength":4,"type":"string"}},"required":["authCode"]}}}},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the auth code of a Domain.","tags":["Domain"],"deprecated":true}},"/v2/domains/{domainId}/auth-code":{"patch":{"operationId":"domain-update-domain-auth-code","description":"Update an incorrect auth code of an ongoing/failed Domain transfer. This route will also restart the transfer itself.","parameters":[{"in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"authCode":{"minLength":4,"type":"string"}},"required":["authCode"]}}}},"responses":{"200":{"$ref":"#/components/responses/de.mittwald.v1.domain.SuccessResponse"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the auth code of a Domain.","tags":["Domain"]}},"/v2/domains/{domainId}/contacts/{contact}":{"patch":{"operationId":"domain-update-domain-contact","parameters":[{"in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"contact","required":true,"schema":{"enum":["owner"],"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"contact":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.domain.HandleField"},"minItems":1,"type":"array"}},"required":["contact"]}}},"description":"The new contact data of the Domain."},"responses":{"200":{"$ref":"#/components/responses/de.mittwald.v1.domain.SuccessResponse"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a contact of a Domain.","tags":["Domain"]}},"/v2/domains/{domainId}/project-id":{"patch":{"operationId":"domain-update-domain-project-id","parameters":[{"in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"projectId":{"format":"uuid","type":"string"}}}}}},"responses":{"204":{"description":"No Content"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a Domain's project id.","tags":["Domain"]}},"/v2/extension-instances/{extensionInstanceId}/tokens":{"post":{"operationId":"extension-authenticate-instance","parameters":[{"in":"path","name":"extensionInstanceId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"extensionInstanceSecret":{"description":"The latest secret an external application received via lifecycle webhooks.\nNamely ExtensionAddedToContext and ExtensionInstanceSecretRotated.\n","type":"string"}},"required":["extensionInstanceSecret"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"expiry":{"format":"date-time","type":"string"},"publicToken":{"description":"Set this in the 'x-access-token' header when performing domain actions.","type":"string"}},"required":["publicToken","expiry"],"type":"object"}}},"description":"You received a public token with a short expiry. You can now perform domain actions."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Authenticate your external application using the extensionInstanceSecret.","tags":["Marketplace"]}},"/v2/extension-instances/{extensionInstanceId}/scopes":{"patch":{"operationId":"extension-consent-to-extension-scopes","parameters":[{"in":"path","name":"extensionInstanceId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"consentedScopes":{"items":{"type":"string"},"type":"array"}},"required":["consentedScopes"],"type":"object"}}},"required":true},"responses":{"204":{"content":{"application/json":{"schema":{}}},"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Consent to extension scopes.","tags":["Marketplace"]}},"/v2/extension-instances":{"post":{"operationId":"extension-create-extension-instance","requestBody":{"content":{"application/json":{"schema":{"properties":{"consentedScopes":{"items":{"type":"string"},"type":"array"},"context":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.Context"},"contextId":{"format":"uuid","type":"string"},"extensionId":{"format":"uuid","type":"string"}},"required":["extensionId","consentedScopes","context","contextId"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"uuid","type":"string"}},"required":["id"]}}},"description":"The ExtensionInstance ID."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create an ExtensionInstance.","tags":["Marketplace"]},"get":{"operationId":"extension-list-extension-instances","parameters":[{"in":"query","name":"limit","required":false,"schema":{"default":1000,"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"default":0,"type":"integer"}},{"in":"query","name":"page","required":false,"schema":{"default":1,"type":"integer"}},{"in":"query","name":"context","required":true,"schema":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.Context"}},{"description":"The ID of your customer, project or user.","in":"query","name":"contextId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ExtensionInstance"},"type":"array"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List ExtensionInstances.","tags":["Marketplace"]}},"/v2/extension-instances/{extensionInstanceId}/actions/create-access-token-retrieval-key":{"post":{"operationId":"extension-create-retrieval-key","parameters":[{"in":"path","name":"extensionInstanceId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"accessTokenRetrievalKey":{"type":"string"},"userId":{"format":"uuid","type":"string"}},"required":["accessTokenRetrievalKey","userId"],"type":"object"}}},"description":"An access token retrieval key. This key can be used to retrieve a scoped access token from an external application."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create an access token retrieval key for an extension instance.","tags":["Marketplace"]}},"/v2/extension-instances/{extensionInstanceId}":{"delete":{"operationId":"extension-delete-extension-instance","parameters":[{"in":"path","name":"extensionInstanceId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"content":{"application/json":{"schema":{}}},"description":"NoContent"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete an ExtensionInstance.","tags":["Marketplace"]},"get":{"operationId":"extension-get-extension-instance","parameters":[{"in":"path","name":"extensionInstanceId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ExtensionInstance"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get an ExtensionInstance.","tags":["Marketplace"]}},"/v2/extension-instances/{extensionInstanceId}/actions/disable":{"post":{"operationId":"extension-disable-extension-instance","parameters":[{"in":"path","name":"extensionInstanceId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"content":{"application/json":{"schema":{}}},"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Disable an ExtensionInstance.","tags":["Marketplace"]}},"/v2/extension-instances/{extensionInstanceId}/actions/enable":{"post":{"operationId":"extension-enable-extension-instance","parameters":[{"in":"path","name":"extensionInstanceId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"content":{"application/json":{"schema":{}}},"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Enable an ExtensionInstance.","tags":["Marketplace"]}},"/v2/contributors/{contributorId}":{"get":{"operationId":"extension-get-contributor","parameters":[{"in":"path","name":"contributorId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.Contributor"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a Contributor.","tags":["Marketplace"]}},"/v2/extensions/{extensionId}":{"get":{"operationId":"extension-get-extension","parameters":[{"in":"path","name":"extensionId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.Extension"}}},"description":"OK"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get an Extension.","tags":["Marketplace"]}},"/v2/webhook-public-keys/{serial}":{"get":{"operationId":"extension-get-public-key","parameters":[{"description":"The serial id of a specific public key. Use `latest` to get the latest public key.","in":"path","name":"serial","required":true,"schema":{"example":"latest","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.PublicKey"}}},"description":"Use this public key to verify the webhook signature on your end."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get the public key to verify the webhook signature.","tags":["Marketplace"]}},"/v2/contributors":{"get":{"operationId":"extension-list-contributors","parameters":[{"in":"query","name":"limit","required":false,"schema":{"default":1000,"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"default":0,"type":"integer"}},{"in":"query","name":"page","required":false,"schema":{"default":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.Contributor"},"type":"array"}}},"description":"OK"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List Contributors.","tags":["Marketplace"]}},"/v2/extensions":{"get":{"operationId":"extension-list-extensions","parameters":[{"in":"query","name":"context","required":false,"schema":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.Context"}},{"in":"query","name":"limit","required":false,"schema":{"default":1000,"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"default":0,"type":"integer"}},{"in":"query","name":"page","required":false,"schema":{"default":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.Extension"},"type":"array"}}},"description":"OK"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List Extensions.","tags":["Marketplace"]}},"/v2/files":{"post":{"operationId":"file-create-file","parameters":[{"in":"header","name":"Token","required":true,"schema":{"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6","format":"uuid","type":"string"}}],"requestBody":{"content":{"application/octet-stream":{"schema":{"properties":{"file":{"example":"binary","format":"binary","type":"string"}},"required":["file"],"type":"object"}}}},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.file.FileMeta"}}},"description":"Created"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"401":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"406":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"422":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Create a File.","tags":["File"]}},"/v2/files/{fileId}/meta":{"get":{"operationId":"file-get-file-meta","parameters":[{"description":"ID of the File to get the meta for.","in":"path","name":"fileId","required":true,"schema":{"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6","format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.file.FileMeta"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"401":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"422":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get a File's meta.","tags":["File"]}},"/v2/file-upload-tokens/{fileUploadToken}/rules":{"get":{"operationId":"file-get-file-upload-token-rules","parameters":[{"description":"FileUploadToken to retrieve rules for.","in":"path","name":"fileUploadToken","required":true,"schema":{"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6","format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.file.FileUploadRules"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get a FileUploadToken's rules.","tags":["File"]}},"/v2/file-upload-types/{fileUploadType}/rules":{"get":{"operationId":"file-get-file-upload-type-rules","parameters":[{"description":"FileUploadType to retrieve rules for.","in":"path","name":"fileUploadType","required":true,"schema":{"enum":["avatar","conversation"],"example":"avatar","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.file.FileUploadRules"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get a FileUploadType's rules.","tags":["File"]}},"/v2/files/{fileId}":{"get":{"operationId":"file-get-file","parameters":[{"description":"ID of the File to be retrieved.","in":"path","name":"fileId","required":true,"schema":{"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6","format":"uuid","type":"string"}},{"in":"header","name":"Accept","schema":{"default":"application/octet-stream","enum":["application/octet-stream","text/plain;base64"],"example":"application/octet-stream","type":"string"}},{"in":"header","name":"Content-Disposition","schema":{"default":"inline","enum":["inline","attachment"],"example":"inline","type":"string"}},{"description":"Only needed for protected Files.","in":"header","name":"Token","required":false,"schema":{"example":"jwt","type":"string"}}],"responses":{"200":{"content":{"application/octet-stream":{"schema":{"type":"string"}},"text/plain;base64":{"schema":{"type":"string"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"401":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"422":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get a File.","tags":["File"]}},"/v2/files/{fileId}/{fileName}":{"get":{"operationId":"file-get-file-with-name","parameters":[{"description":"ID of the File to be retrieved.","in":"path","name":"fileId","required":true,"schema":{"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6","format":"uuid","type":"string"}},{"in":"header","name":"Accept","schema":{"default":"application/octet-stream","enum":["application/octet-stream","text/plain;base64"],"example":"application/octet-stream","type":"string"}},{"in":"header","name":"Content-Disposition","schema":{"default":"inline","enum":["inline","attachment"],"example":"inline","type":"string"}},{"description":"Only needed for protected Files.","in":"header","name":"Token","required":false,"schema":{"example":"jwt","type":"string"}},{"description":"Name of the File to be retrieved.","in":"path","name":"fileName","required":true,"schema":{"example":"me.jpeg","type":"string"}}],"responses":{"200":{"content":{"application/octet-stream":{"schema":{"type":"string"}},"text/plain;base64":{"schema":{"type":"string"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"401":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"422":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get a File.","tags":["File"]}},"/v2/ingresses":{"post":{"operationId":"ingress-create-ingress","requestBody":{"content":{"application/json":{"schema":{"properties":{"hostname":{"format":"idn-hostname","type":"string"},"paths":{"description":"A list of paths. The default path `/` is always present and cannot be removed.","items":{"$ref":"#/components/schemas/de.mittwald.v1.ingress.Path"},"type":"array"},"projectId":{"format":"uuid","type":"string"}},"required":["hostname","projectId","paths"],"type":"object"}}}},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"uuid","type":"string"},"ownership":{"$ref":"#/components/schemas/de.mittwald.v1.ingress.Ownership"}},"required":["id","ownership"],"type":"object"}}},"description":"Created"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create an Ingress.","tags":["Domain"]},"get":{"operationId":"ingress-list-ingresses","parameters":[{"description":"ID of the Project to list Ingresses for.","in":"query","name":"projectId","required":false,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.ingress.Ingress"},"type":"array"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List Ingresses.","tags":["Domain"]}},"/v2/ingresses/{ingressId}":{"delete":{"operationId":"ingress-delete-ingress","parameters":[{"in":"path","name":"ingressId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"No Content"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete an Ingress.","tags":["Domain"]},"get":{"operationId":"ingress-get-ingress","parameters":[{"description":"ID of the Ingress to be retrieved.","in":"path","name":"ingressId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.ingress.Ingress"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get an Ingress.","tags":["Domain"]}},"/v2/ingresses/{ingressId}/actions/verify-ownership":{"post":{"operationId":"ingress-ingress-verify-ownership","parameters":[{"description":"UUID of the Ingress to verify the ownership for.","in":"path","name":"ingressId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Verifiy the ownership of an Ingress.","tags":["Domain"]}},"/v2/projects/{projectId}/ingresses":{"get":{"operationId":"ingress-list-ingresses-v2-deprecated","deprecated":true,"parameters":[{"description":"ID of the Project to list Ingresses for","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.ingress.IngressDeprecated"},"type":"array"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List Ingresses belonging to a project.","tags":["Domain"]}},"/v2/ingresses/{ingressId}/paths":{"put":{"operationId":"ingress-paths-deprecated","deprecated":true,"parameters":[{"in":"path","name":"ingressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.ingress.Path"},"type":"array"}}}},"responses":{"204":{"description":"No Content"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update an Ingresses paths.","tags":["Domain"]},"patch":{"operationId":"ingress-update-ingress-paths","parameters":[{"in":"path","name":"ingressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.ingress.Path"},"type":"array"}}}},"responses":{"204":{"description":"No Content"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the paths of an Ingress.","tags":["Domain"]}},"/v2/ingresses/{ingressId}/actions/request-acme-certificate-issuance":{"post":{"operationId":"ingress-request-ingress-acme-certificate-issuance","parameters":[{"description":"UUID of the Ingress to request the issuance for.","in":"path","name":"ingressId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Request the ACME certificate issuance of an Ingress.","tags":["Domain"]}},"/v2/ingresses/{ingressId}/tls":{"put":{"operationId":"ingress-tls-deprecated","deprecated":true,"parameters":[{"in":"path","name":"ingressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.ingress.TlsAcme"},{"$ref":"#/components/schemas/de.mittwald.v1.ingress.TlsCertificate"}]}}},"description":""},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update an Ingresses tls settings.","tags":["Domain"]},"patch":{"operationId":"ingress-update-ingress-tls","parameters":[{"in":"path","name":"ingressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.ingress.TlsAcme"},{"$ref":"#/components/schemas/de.mittwald.v1.ingress.TlsCertificate"}]}}},"description":""},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the tls settings of an Ingress.","tags":["Domain"]}},"/v2/invoices/{invoiceId}":{"get":{"operationId":"invoice-detail","parameters":[{"example":"154219e9-bf4a-4f41-9c72-0449a98db62f","in":"path","name":"invoiceId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.Invoice"}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get details of an Invoice.","tags":["Contract"]}},"/v2/customers/{customerId}/invoice-settings":{"get":{"operationId":"invoice-get-detail-of-invoice-settings","parameters":[{"example":"edefeee4-e8e9-4e2d-ab95-9a2eb6104cfb","in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.InvoiceSettings"}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get InvoiceSettings of a Customer.","tags":["Contract"]},"put":{"operationId":"invoice-update-invoice-settings","parameters":[{"example":"edefeee4-e8e9-4e2d-ab95-9a2eb6104cfb","in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"additionalEmailRecipients":{"example":["hallo@test.de"],"items":{"format":"email","type":"string"},"type":"array"},"invoicePeriod":{"example":1,"minimum":0,"type":"integer"},"paymentSettings":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.PaymentSettings"},"printedInvoices":{"type":"boolean"},"recipient":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.Recipient"},"recipientSameAsOwner":{"type":"boolean"},"targetDay":{"example":15,"maximum":28,"minimum":0,"type":"integer"}},"required":["invoicePeriod","paymentSettings"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.InvoiceSettings"}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update InvoiceSettings of a Customer.","tags":["Contract"]}},"/v2/customers/{customerId}/invoices/{invoiceId}/file-access-token":{"get":{"operationId":"invoice-get-file-access-token","parameters":[{"example":"edefeee4-e8e9-4e2d-ab95-9a2eb6104cfb","in":"path","name":"customerId","required":true,"schema":{"type":"string"}},{"example":"154219e9-bf4a-4f41-9c72-0449a98db62f","in":"path","name":"invoiceId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"accessToken":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"}},"required":["accessToken","expiresAt"],"type":"object"}}},"description":"The File Access Token required to access the Invoice file."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Request an Access Token for the Invoice file.","tags":["Contract"]}},"/v2/customers/{customerId}/invoices":{"get":{"operationId":"invoice-list-customer-invoices","parameters":[{"example":"ac3c8bbe-4c44-4f34-b6c7-1e6af48c3a7c","in":"path","name":"customerId","required":true,"schema":{"type":"string"}},{"example":["REGULAR","CORRECTION"],"in":"query","name":"invoiceTypes","required":false,"schema":{"items":{"enum":["REGULAR","REISSUE","CORRECTION","CANCELLATION"],"type":"string"},"type":"array"}},{"example":1000,"in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"example":0,"in":"query","name":"skip","required":false,"schema":{"type":"integer"}},{"example":1,"in":"query","name":"page","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.Invoice"},"type":"array"}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List Invoices of a Customer.","tags":["Contract"]}},"/v2/projects/{projectId}/deliveryboxes":{"post":{"parameters":[{"description":"ID of the Project to create the DeliveryBox in.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"type":"string"},"password":{"type":"string"}},"required":["description","password"],"type":"object"}}},"description":"DeliveryBox"},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create a DeliveryBox.","tags":["Mail"],"deprecated":true},"get":{"parameters":[{"description":"ID of the Project to list DeliveryBoxes for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List DeliveryBoxes belonging to a Project.","tags":["Mail"],"deprecated":true}},"/v2/projects/{projectId}/delivery-boxes":{"post":{"operationId":"mail-create-deliverybox","parameters":[{"description":"ID of the Project to create the DeliveryBox in.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"type":"string"},"password":{"type":"string"}},"required":["description","password"],"type":"object"}}},"description":"DeliveryBox"},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"uuid","type":"string"}},"required":["id"],"type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create a DeliveryBox.","tags":["Mail"]},"get":{"operationId":"mail-list-delivery-boxes","parameters":[{"description":"ID of the Project to list DeliveryBoxes for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.mail.Deliverybox"},"type":"array"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List DeliveryBoxes belonging to a Project.","tags":["Mail"]}},"/v2/projects/{projectId}/mailaddresses":{"post":{"parameters":[{"description":"ID of the project to create a MailAddress for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.mail.CreateForwardAddress"},{"$ref":"#/components/schemas/de.mittwald.v1.mail.CreateMailAddress"}]}}}},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create a MailAddress.","tags":["Mail"],"deprecated":true},"get":{"parameters":[{"description":"ID of the Project to list MailAddresses for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List MailAddresses belonging to a Project.","tags":["Mail"],"deprecated":true}},"/v2/projects/{projectId}/mail-addresses":{"post":{"operationId":"mail-create-mail-address","parameters":[{"description":"ID of the project to create a MailAddress for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.mail.CreateForwardAddress"},{"$ref":"#/components/schemas/de.mittwald.v1.mail.CreateMailAddress"}]}}}},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"uuid","type":"string"}},"required":["id"],"type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create a MailAddress.","tags":["Mail"]},"get":{"operationId":"mail-list-mail-addresses","parameters":[{"description":"ID of the Project to list MailAddresses for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.mail.MailAddress"},"type":"array"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List MailAddresses belonging to a Project.","tags":["Mail"]}},"/v2/deliveryboxes/{deliveryBoxId}":{"delete":{"parameters":[{"description":"ID of the DeliveryBox to be deleted.","in":"path","name":"deliveryBoxId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a DeliveryBox.","tags":["Mail"],"deprecated":true},"get":{"parameters":[{"description":"ID of the DeliveryBox to be retrieved.","in":"path","name":"deliveryBoxId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a DeliveryBox.","tags":["Mail"],"deprecated":true}},"/v2/delivery-boxes/{deliveryBoxId}":{"delete":{"operationId":"mail-delete-delivery-box","parameters":[{"description":"ID of the DeliveryBox to be deleted.","in":"path","name":"deliveryBoxId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a DeliveryBox.","tags":["Mail"]},"get":{"operationId":"mail-get-delivery-box","parameters":[{"description":"ID of the DeliveryBox to be retrieved.","in":"path","name":"deliveryBoxId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.mail.Deliverybox"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a DeliveryBox.","tags":["Mail"]}},"/v2/mailaddresses/{mailAddressId}":{"delete":{"parameters":[{"description":"ID of the MailAddress to be deleted.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a MailAddress.","tags":["Mail"],"deprecated":true},"get":{"parameters":[{"description":"ID of the MailAddress to be retrieved.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a MailAddress.","tags":["Mail"],"deprecated":true}},"/v2/mail-addresses/{mailAddressId}":{"delete":{"operationId":"mail-delete-mail-address","parameters":[{"description":"ID of the MailAddress to be deleted.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a MailAddress.","tags":["Mail"]},"get":{"operationId":"mail-get-mail-address","parameters":[{"description":"ID of the MailAddress to be retrieved.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.mail.MailAddress"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a MailAddress.","tags":["Mail"]}},"/v2/deliveryboxes/{id}/description":{"put":{"operationId":"mail-deliverybox-update-description-deprecated","deprecated":true,"parameters":[{"description":"ID of the deliverybox","in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"type":"string"}},"required":["description"]}}},"description":"Description of the deliverybox"},"responses":{"200":{"description":"OK"},"403":{"description":"You do not have the permissions to access this content"},"404":{"description":"A deliverybox with the specified id was not found"},"500":{"description":"Internal server error"},"503":{"description":"The service is unavailable."}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the description of an deliverybox","tags":["Mail"]}},"/v2/deliveryboxes/{id}/password":{"put":{"operationId":"mail-deliverybox-update-password-deprecated","deprecated":true,"parameters":[{"description":"ID of the deliverybox","in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"password":{"type":"string"}},"required":["password"]}}}},"responses":{"200":{"description":"OK"},"403":{"description":"You do not have the permissions to access this content"},"404":{"description":"A deliverybox with the specified id was not found"},"500":{"description":"Internal server error"},"503":{"description":"The service is unavailable."}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the password for a specific deliverybox","tags":["Mail"]}},"/v2/projects/{projectId}/mailsettings":{"get":{"parameters":[{"description":"ID of the Project to list mail settings for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List mail settings of a Project.","tags":["Mail"],"deprecated":true}},"/v2/projects/{projectId}/mail-settings":{"get":{"operationId":"mail-list-project-mail-settings","parameters":[{"description":"ID of the Project to list mail settings for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"blacklist":{"items":{"format":"idn-email","type":"string"},"type":"array"},"projectId":{"type":"string"},"whitelist":{"items":{"format":"idn-email","type":"string"},"type":"array"}},"required":["projectId","blacklist","whitelist"],"type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List mail settings of a Project.","tags":["Mail"]}},"/v2/mailaddresses/{id}/address":{"put":{"operationId":"mail-mailaddress-update-address-deprecated","deprecated":true,"parameters":[{"description":"ID of the mail address","in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"address":{"format":"idn-email","type":"string"}},"required":["address"]}}},"description":"set mail-address"},"responses":{"200":{"description":"OK"},"403":{"description":"You do not have the permissions to access this content"},"404":{"description":"A mailaddress with the specified id was not found"},"500":{"description":"Internal server error"},"503":{"description":"The service is unavailable."}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update mail-address","tags":["Mail"]}},"/v2/projects/{projectId}/mailsettings/blacklist":{"put":{"operationId":"mail-projectsetting-update-blacklist-deprecated","deprecated":true,"parameters":[{"description":"ID of the project you want to update blacklist for","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"blacklist":{"items":{"format":"idn-email","type":"string"},"type":"array"}},"required":["blacklist"],"type":"object"}}}},"responses":{"200":{"description":"OK"},"403":{"description":"You do not have the permissions to access this content"},"404":{"description":"A projectsetting with the specified id was not found"},"500":{"description":"Internal server error"},"503":{"description":"The service is unavailable."}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update blacklist for a given project ID","tags":["Mail"]}},"/v2/projects/{projectId}/mailsettings/whitelist":{"put":{"operationId":"mail-projectsetting-update-whitelist-deprecated","deprecated":true,"parameters":[{"description":"ID of the project you want to update whitelist for","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"whitelist":{"items":{"format":"idn-email","type":"string"},"type":"array"}},"required":["whitelist"],"type":"object"}}}},"responses":{"200":{"description":"OK"},"403":{"description":"You do not have the permissions to access this content"},"404":{"description":"A projectsetting with the specified id was not found"},"500":{"description":"Internal server error"},"503":{"description":"The service is unavailable."}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update whitelist for a given project ID","tags":["Mail"]}},"/v2/delivery-boxes/{deliveryBoxId}/description":{"patch":{"operationId":"mail-update-delivery-box-description","parameters":[{"description":"ID of the DeliveryBox to update the description for.","in":"path","name":"deliveryBoxId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"type":"string"}},"required":["description"]}}},"description":"Description of the DeliveryBox."},"responses":{"204":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the description of a DeliveryBox.","tags":["Mail"]}},"/v2/delivery-boxes/{deliveryBoxId}/password":{"patch":{"operationId":"mail-update-delivery-box-password","parameters":[{"description":"ID of the DeliveryBox to update the password for.","in":"path","name":"deliveryBoxId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"password":{"type":"string"}},"required":["password"]}}}},"responses":{"204":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the password of a DeliveryBox.","tags":["Mail"]}},"/v2/mail-addresses/{mailAddressId}/address":{"patch":{"operationId":"mail-update-mail-address-address","parameters":[{"description":"ID of the MailAddress to update the address for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"address":{"format":"idn-email","type":"string"}},"required":["address"]}}}},"responses":{"204":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a MailAddress.","tags":["Mail"]}},"/v2/mail-addresses/{mailAddressId}/autoresponder":{"patch":{"operationId":"mail-update-mail-address-autoresponder","parameters":[{"description":"ID of the MailAddress to update the autoresponder for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"autoResponder":{"nullable":true,"properties":{"active":{"type":"boolean"},"expiresAt":{"format":"date-time","type":"string"},"message":{"type":"string"},"startsAt":{"format":"date-time","type":"string"}},"required":["message","active"],"type":"object"}},"required":["autoResponder"]}}},"description":"Autoresponder for the MailAddress."},"responses":{"204":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the autoresponder of a MailAddress.","tags":["Mail"]},"put":{"operationId":"mail-update-mail-address-autoresponder-v2-deprecated","deprecated":true,"parameters":[{"description":"ID of the MailAddress to update the autoresponder for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"autoResponder":{"nullable":true,"properties":{"active":{"type":"boolean"},"expiresAt":{"format":"date-time","type":"string"},"message":{"type":"string"},"startsAt":{"format":"date-time","type":"string"}},"required":["message","active"],"type":"object"}},"required":["autoResponder"]}}},"description":"Autoresponder for the MailAddress."},"responses":{"200":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the autoresponder of a MailAddress.","tags":["Mail"]}},"/v2/mailaddresses/{mailAddressId}/autoResponder":{"put":{"deprecated":true,"parameters":[{"description":"ID of the MailAddress to update the autoresponder for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"autoResponder":{"nullable":true,"properties":{"active":{"type":"boolean"},"expiresAt":{"format":"date-time","type":"string"},"message":{"type":"string"},"startsAt":{"format":"date-time","type":"string"}},"required":["message","active"],"type":"object"}},"required":["autoResponder"]}}},"description":"Autoresponder for the MailAddress."},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the autoresponder of a MailAddress.","tags":["Mail"]}},"/v2/mail-addresses/{mailAddressId}/catch-all":{"patch":{"operationId":"mail-update-mail-address-catch-all","parameters":[{"description":"ID of the MailAddress to update the catchall for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"active":{"type":"boolean"}},"required":["active"]}}},"description":"Catchall of the MailAddress."},"responses":{"204":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the catchall of a MailAddress.","tags":["Mail"]}},"/v2/mailaddresses/{mailAddressId}/catchAll":{"put":{"deprecated":true,"parameters":[{"description":"ID of the MailAddress to update the catchall for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"active":{"type":"boolean"}},"required":["active"]}}},"description":"Catchall of the MailAddress."},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the catchall of a MailAddress.","tags":["Mail"]}},"/v2/mail-addresses/{mailAddressId}/catchall":{"put":{"operationId":"mail-update-mail-address-catchall-v2-deprecated","deprecated":true,"parameters":[{"description":"ID of the MailAddress to update the catchall for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"active":{"type":"boolean"}},"required":["active"]}}},"description":"Catchall of the MailAddress."},"responses":{"200":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the catchall of a MailAddress.","tags":["Mail"]}},"/v2/mail-addresses/{mailAddressId}/forward-addresses":{"patch":{"operationId":"mail-update-mail-address-forward-addresses","parameters":[{"description":"ID of the MailAddress to update the forward addresses for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"forwardAddresses":{"items":{"format":"idn-email","type":"string"},"type":"array"}},"required":["forwardAddresses"]}}}},"responses":{"204":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the forward addresses of a MailAddresses.","tags":["Mail"]},"put":{"operationId":"mail-update-mail-address-forward-addresses-v2-deprecated","deprecated":true,"parameters":[{"description":"ID of the MailAddress to update the forward addresses for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"forwardAddresses":{"items":{"format":"idn-email","type":"string"},"type":"array"}},"required":["forwardAddresses"]}}}},"responses":{"200":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the forward addresses of a MailAddresses.","tags":["Mail"]}},"/v2/mailaddresses/{mailAddressId}/forwardaddresses":{"put":{"deprecated":true,"parameters":[{"description":"ID of the MailAddress to update the forward addresses for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"forwardAddresses":{"items":{"format":"idn-email","type":"string"},"type":"array"}},"required":["forwardAddresses"]}}}},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the forward addresses of a MailAddresses.","tags":["Mail"]}},"/v2/mail-addresses/{mailAddressId}/password":{"patch":{"operationId":"mail-update-mail-address-password","parameters":[{"description":"ID of the MailAddress to update the password for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"password":{"type":"string"}},"required":["password"]}}}},"responses":{"204":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the password for a MailAddress.","tags":["Mail"]},"put":{"operationId":"mail-update-mail-address-password-v2-deprecated","deprecated":true,"parameters":[{"description":"ID of the MailAddress to update the password for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"password":{"type":"string"}},"required":["password"]}}}},"responses":{"200":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the password for a MailAddress.","tags":["Mail"]}},"/v2/mailaddresses/{mailAddressId}/password":{"put":{"deprecated":true,"parameters":[{"description":"ID of the MailAddress to update the password for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"password":{"type":"string"}},"required":["password"]}}}},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the password for a MailAddress.","tags":["Mail"]}},"/v2/mail-addresses/{mailAddressId}/quota":{"patch":{"operationId":"mail-update-mail-address-quota","parameters":[{"description":"ID of the MailAddress to update the quota for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"quotaInBytes":{"description":"2 GB","example":2147483648,"minimum":-1,"type":"number"}},"required":["quotaInBytes"]}}}},"responses":{"204":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the quota of a MailAddress.","tags":["Mail"]},"put":{"operationId":"mail-update-mail-address-quota-v2-deprecated","deprecated":true,"parameters":[{"description":"ID of the MailAddress to update the quota for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"quotaInBytes":{"description":"2 GB","example":2147483648,"minimum":-1,"type":"number"}},"required":["quotaInBytes"]}}}},"responses":{"200":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the quota of a MailAddress.","tags":["Mail"]}},"/v2/mailaddresses/{mailAddressId}/quota":{"put":{"deprecated":true,"parameters":[{"description":"ID of the MailAddress to update the quota for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"quotaInBytes":{"description":"2 GB","example":2147483648,"minimum":-1,"type":"number"}},"required":["quotaInBytes"]}}}},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the quota of a MailAddress.","tags":["Mail"]}},"/v2/mail-addresses/{mailAddressId}/spam-protection":{"patch":{"operationId":"mail-update-mail-address-spam-protection","parameters":[{"description":"ID of the MailAddress to update the spam protection for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"spamProtection":{"properties":{"active":{"type":"boolean"},"autoDeleteSpam":{"type":"boolean"},"folder":{"enum":["inbox","spam"],"type":"string"},"relocationMinSpamScore":{"maximum":10,"type":"integer"}},"required":["active","folder","relocationMinSpamScore","autoDeleteSpam"],"type":"object"}},"required":["spamProtection"]}}}},"responses":{"204":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the spam protection of a MailAddress.","tags":["Mail"]},"put":{"operationId":"mail-update-mail-address-spam-protection-v2-deprecated","deprecated":true,"parameters":[{"description":"ID of the MailAddress to update the spam protection for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"spamProtection":{"properties":{"active":{"type":"boolean"},"autoDeleteSpam":{"type":"boolean"},"folder":{"enum":["inbox","spam"],"type":"string"},"relocationMinSpamScore":{"maximum":10,"type":"integer"}},"required":["active","folder","relocationMinSpamScore","autoDeleteSpam"],"type":"object"}},"required":["spamProtection"]}}}},"responses":{"200":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the spam protection of a MailAddress.","tags":["Mail"]}},"/v2/mailaddresses/{mailAddressId}/spamprotection":{"put":{"deprecated":true,"parameters":[{"description":"ID of the MailAddress to update the spam protection for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"spamProtection":{"properties":{"active":{"type":"boolean"},"autoDeleteSpam":{"type":"boolean"},"folder":{"enum":["inbox","spam"],"type":"string"},"relocationMinSpamScore":{"maximum":10,"type":"integer"}},"required":["active","folder","relocationMinSpamScore","autoDeleteSpam"],"type":"object"}},"required":["spamProtection"]}}}},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the spam protection of a MailAddress.","tags":["Mail"]}},"/v2/projects/{projectId}/mail-settings/{mailSetting}":{"patch":{"operationId":"mail-update-project-mail-setting","parameters":[{"description":"ID of the Project to update a mail setting for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"description":"The mail setting to update.","in":"path","name":"mailSetting","required":true,"schema":{"enum":["blacklist","whitelist"],"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"blacklist":{"items":{"format":"idn-email","type":"string"},"type":"array"}},"required":["blacklist"],"type":"object"},{"properties":{"whitelist":{"items":{"format":"idn-email","type":"string"},"type":"array"}},"required":["whitelist"],"type":"object"}]}}}},"responses":{"204":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a mail setting of a Project.","tags":["Mail"]}},"/v2/projects/{projectId}/mail-settings/{setting}":{"put":{"operationId":"mail-update-project-mail-setting-v2-deprecated","deprecated":true,"parameters":[{"description":"ID of the Project to update a mail setting for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"description":"The setting to update.","in":"path","name":"setting","required":true,"schema":{"enum":["blacklist","whitelist"],"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"blacklist":{"items":{"format":"idn-email","type":"string"},"type":"array"}},"required":["blacklist"],"type":"object"},{"properties":{"whitelist":{"items":{"format":"idn-email","type":"string"},"type":"array"}},"required":["whitelist"],"type":"object"}]}}}},"responses":{"200":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a mail setting of a Project.","tags":["Mail"]}},"/v2/newsletter-subscriptions/self":{"get":{"operationId":"newsletter-get-info","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"active":{"example":true,"type":"boolean"},"email":{"example":"a.lovelace@example.com","type":"string"},"registered":{"example":true,"type":"boolean"}},"required":["email","active","registered"],"type":"object"}}},"description":"Status information about the subscription."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Getting the subscription status of the subscription.","tags":["Notification"]},"delete":{"operationId":"newsletter-unsubscribe-user","responses":{"204":{"description":"User has been unsubscribed."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Unsubscribe a user from the mStudio newsletter.","tags":["Notification"]}},"/v2/notifications/unread-counts":{"get":{"description":"The user is determined by the access token used.\nLighter weight route instead of getting all unread notifications and count yourself.\n","parameters":[],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get the counts for unread notifications of the user.","tags":["Notification"],"deprecated":true}},"/v2/notification-unread-counts":{"get":{"operationId":"notifications-count-unread-notifications","description":"The user is determined by the access token used.\nLighter weight route instead of getting all unread notifications and count yourself.\n","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"error":{"minimum":0,"type":"integer"},"info":{"minimum":0,"type":"integer"},"success":{"minimum":0,"type":"integer"},"total":{"minimum":0,"type":"integer"},"warning":{"minimum":0,"type":"integer"}},"required":["total","success","info","warning","error"],"type":"object"}}},"description":"Counts of unread notifications"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get the counts for unread notifications of the user.","tags":["Notification"]}},"/v2/notifications":{"get":{"operationId":"notifications-list-notifications","description":"","parameters":[{"in":"query","name":"status","required":false,"schema":{"enum":["unread","read"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.messaging.Notification"},"type":"array"}}},"description":"List of notifications"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List all unread notifications.","tags":["Notification"]}},"/v2/notifications/status":{"put":{"operationId":"notifications-read-all-notifications-deprecated","deprecated":true,"description":"Deprecated route. Please use /v2/notifications/actions/read-all instead.","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"status":{"$ref":"#/components/schemas/de.mittwald.v1.messaging.NotificationStatus"}},"required":["status"],"type":"object"}}},"description":"OK"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Mark all notifications as read (deprecated).","tags":["Notification"]}},"/v2/notifications/actions/read-all":{"post":{"operationId":"notifications-read-all-notifications","description":"Mark all notifications for the authenticated user as read.","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"status":{"$ref":"#/components/schemas/de.mittwald.v1.messaging.NotificationStatus"}},"required":["status"],"type":"object"}}},"description":"OK"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Mark all notifications as read.","tags":["Notification"]}},"/v2/notifications/{notificationId}/status":{"put":{"operationId":"notifications-read-notification","parameters":[{"in":"path","name":"notificationId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"status":{"$ref":"#/components/schemas/de.mittwald.v1.messaging.NotificationStatus"}},"required":["status"],"type":"object"}}},"description":"","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"status":{"$ref":"#/components/schemas/de.mittwald.v1.messaging.NotificationStatus"}},"required":["status"],"type":"object"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Mark notification as read.","tags":["Notification"]}},"/v2/orders":{"post":{"operationId":"order-create-order","description":"","requestBody":{"content":{"application/json":{"schema":{"properties":{"orderData":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.order.ProjectHostingOrder"},{"$ref":"#/components/schemas/de.mittwald.v1.order.ServerOrder"},{"$ref":"#/components/schemas/de.mittwald.v1.order.DomainOrder"}]},"orderType":{"enum":["domain","projectHosting","server"],"type":"string"}},"type":"object"}}},"description":"The Order to create.","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"orderId":{"type":"string"}},"required":["orderId"]}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create an Order.","tags":["Contract"]},"get":{"operationId":"order-list-orders","description":"The list of Orders the User has access to.","parameters":[{"example":1000,"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"example":0,"in":"query","name":"skip","required":false,"schema":{"minimum":0,"type":"integer"}},{"example":1,"in":"query","name":"page","required":false,"schema":{"minimum":0,"type":"integer"}},{"example":[],"in":"query","name":"includesStatus","required":false,"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.order.OrderStatus"},"type":"array"}},{"example":[],"in":"query","name":"excludesStatus","required":false,"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.order.OrderStatus"},"type":"array"}},{"example":["PS23-BASIC-0001"],"in":"query","name":"templateNames","required":false,"schema":{"items":{"type":"string"},"type":"array"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.order.CustomerOrder"},"type":"array"}}},"description":""},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get list of Orders.","tags":["Contract"]}},"/v2/tariff-changes":{"post":{"operationId":"order-create-tariff-change","description":"","requestBody":{"content":{"application/json":{"schema":{"properties":{"tariffChangeData":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.order.ProjectHostingTariffChange"},{"$ref":"#/components/schemas/de.mittwald.v1.order.ServerTariffChange"}]},"tariffChangeType":{"enum":["projectHosting","server"],"type":"string"}},"type":"object"}}},"description":"The Order to create.","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"orderId":{"type":"string"}},"required":["orderId"]}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create TariffChange Order.","tags":["Contract"]}},"/v2/orders/{orderId}":{"get":{"operationId":"order-get-order","description":"Get details of a single Order, User must have access to the Order/Customer.","parameters":[{"example":"123e4567-e89b-12d3-a456-426614174000","in":"path","name":"orderId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.order.CustomerOrder"}}},"description":""},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get Order for Customer.","tags":["Contract"]}},"/v2/customers/{customerId}/orders":{"get":{"operationId":"order-list-customer-orders","description":"The list of Orders of a Customer the User has access to, can be filtered by orderStatus, articleTemplate and count.","parameters":[{"example":"154219e9-bf4a-4f41-9c72-0449a98db62f","in":"path","name":"customerId","required":true,"schema":{"type":"string"}},{"example":1000,"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"example":0,"in":"query","name":"skip","required":false,"schema":{"minimum":0,"type":"integer"}},{"example":1,"in":"query","name":"page","required":false,"schema":{"minimum":0,"type":"integer"}},{"example":[],"in":"query","name":"includesStatus","required":false,"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.order.OrderStatus"},"type":"array"}},{"example":[],"in":"query","name":"excludesStatus","required":false,"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.order.OrderStatus"},"type":"array"}},{"example":["PS23-BASIC-0001"],"in":"query","name":"templateNames","required":false,"schema":{"items":{"type":"string"},"type":"array"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.order.CustomerOrder"},"type":"array"}}},"description":""},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get list of Orders of a Customer.","tags":["Contract"]}},"/v2/projects/{projectId}/orders":{"get":{"operationId":"order-list-project-orders","description":"The list of Order of a Project the User has access to, can be filtered by orderStatus, articleTemplate and count.","parameters":[{"example":"e7c4b2e6-e38f-4c9b-8583-08bd627ff4d8","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}},{"example":1000,"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"example":0,"in":"query","name":"skip","required":false,"schema":{"minimum":0,"type":"integer"}},{"example":1,"in":"query","name":"page","required":false,"schema":{"minimum":0,"type":"integer"}},{"example":[],"in":"query","name":"includesStatus","required":false,"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.order.OrderStatus"},"type":"array"}},{"example":[],"in":"query","name":"excludesStatus","required":false,"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.order.OrderStatus"},"type":"array"}},{"example":["PS23-BASIC-0001"],"in":"query","name":"templateNames","required":false,"schema":{"items":{"type":"string"},"type":"array"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.order.CustomerOrder"},"type":"array"}}},"description":""},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get list of Orders of a Project.","tags":["Contract"]}},"/v2/order-previews":{"post":{"operationId":"order-preview-order","requestBody":{"content":{"application/json":{"schema":{"properties":{"orderData":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.order.ProjectHostingOrderPreview"},{"$ref":"#/components/schemas/de.mittwald.v1.order.ServerOrderPreview"},{"$ref":"#/components/schemas/de.mittwald.v1.order.DomainOrderPreview"}]},"orderType":{"enum":["domain","projectHosting","server"],"type":"string"}},"type":"object"}}},"description":"Your order information","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.order.HostingOrderPreviewResponse"},{"$ref":"#/components/schemas/de.mittwald.v1.order.DomainOrderPreviewResponse"}]}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"422":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"object"}}}}},"description":"Unprocessable Content"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[],"summary":"Preview Order.","tags":["Contract"]}},"/v2/tariff-change-previews":{"post":{"operationId":"order-preview-tariff-change","description":"","requestBody":{"content":{"application/json":{"schema":{"properties":{"tariffChangeData":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.order.ProjectHostingTariffChange"},{"$ref":"#/components/schemas/de.mittwald.v1.order.ServerTariffChange"}]},"tariffChangeType":{"enum":["projectHosting","server"],"type":"string"}},"type":"object"}}},"description":"Your order information","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"machineTypePrice":{"example":100,"type":"number"},"storagePrice":{"example":900,"type":"number"},"totalPrice":{"example":1000,"type":"number"}},"required":["totalPrice","storagePrice","machineTypePrice"]}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"422":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"object"}}}}},"description":"Unprocessable Content"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Preview TariffChange.","tags":["Contract"]}},"/v2/pageinsights":{"get":{"parameters":[{"description":"A domain or subdomain.","example":"mittwald.de","in":"query","name":"domain","required":true,"schema":{"type":"string"}},{"description":"A path of the domain.","example":"/","in":"query","name":"path","required":true,"schema":{"type":"string"}},{"description":"Query data for a specific date, defaults to date today.","example":"2017-07-21","in":"query","name":"date","required":false,"schema":{"format":"date","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get detailed performance data for a given domain and path.","tags":["Page Insights"],"deprecated":true}},"/v2/page-insights":{"get":{"operationId":"pageinsights-get-performance-data","parameters":[{"description":"A domain or subdomain.","example":"mittwald.de","in":"query","name":"domain","required":true,"schema":{"type":"string"}},{"description":"A path of the domain.","example":"/","in":"query","name":"path","required":true,"schema":{"type":"string"}},{"description":"Query data for a specific date, defaults to date today.","example":"2017-07-21","in":"query","name":"date","required":false,"schema":{"format":"date","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"createdAt":{"format":"date-time","type":"string"},"domain":{"type":"string"},"metrics":{"items":{"properties":{"createdAt":{"format":"date-time","type":"string"},"name":{"type":"string"},"score":{"format":"double","nullable":true,"type":"number"},"value":{"format":"double","type":"number"}},"required":["name","value","createdAt"],"type":"object"},"type":"array"},"moreDataAvailable":{"items":{"format":"date","type":"string"},"type":"array"},"path":{"type":"string"},"performanceScore":{"format":"double","type":"number"},"screenshot":{"properties":{"createdAt":{"format":"date-time","type":"string"},"fileRef":{"type":"string"}},"required":["fileRef","createdAt"],"type":"object"}},"required":["domain","path","performanceScore"],"type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get detailed performance data for a given domain and path.","tags":["Page Insights"]}},"/v2/projects/{projectId}/straces/{straceId}":{"get":{"operationId":"pageinsights-get-strace-data","parameters":[{"description":"ID of the strace to get the data for.","in":"path","name":"straceId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"ID of the project the strace belongs to.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"executedAt":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"result":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.strace.Error"},{"$ref":"#/components/schemas/de.mittwald.v1.strace.Data"}]}},"required":["id","executedAt","result"],"type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get all data for a given strace.","tags":["Page Insights"]}},"/v2/projects/{projectId}/pageinsights":{"get":{"parameters":[{"description":"ID of the Project to list domains for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"Filter for a specific domain.","example":"mittwald.de","in":"query","name":"domain","required":false,"schema":{"type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List websites (specified as domain and path) from a project where performance data is available.","tags":["Page Insights"],"deprecated":true}},"/v2/projects/{projectId}/page-insights":{"get":{"operationId":"pageinsights-list-performance-data-for-project","parameters":[{"description":"ID of the Project to list domains for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"Filter for a specific domain.","example":"mittwald.de","in":"query","name":"domain","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"domain":{"type":"string"},"paths":{"items":{"properties":{"createdAt":{"format":"date-time","type":"string"},"path":{"type":"string"},"performanceScore":{"type":"integer"},"screenshotFileRef":{"type":"string"}},"required":["path","performanceScore","createdAt"],"type":"object"},"type":"array"}},"required":["domain","paths"],"type":"object"},"type":"array"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List websites (specified as domain and path) from a project where performance data is available.","tags":["Page Insights"]}},"/v2/projects/{projectId}/straces":{"post":{"operationId":"pageinsights-schedule-strace","parameters":[{"description":"ID of a project to own the created strace. It must exist a ingress with the same hostname as in the url to be measured.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"url":{"description":"A call to this URL is measured via strace.","example":"https://example.com","type":"string"}},"required":["url"],"type":"object"}}},"description":""},"responses":{"202":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"uuid","type":"string"}},"required":["id"],"type":"object"}}},"description":"Scheduled"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Schedule a strace measurement for a single http request.","tags":["Page Insights"]}},"/v2/password-policies/{passwordPolicy}":{"get":{"operationId":"password-validation-get-password-policy","parameters":[{"description":"The name of the PasswordPolicy to be retrieved.","examples":{"default":{"description":"The default PasswordPolicy of mittwald.","value":"mittwald"},"example":{"description":"An example policy showcasing possible rule definitions.","value":"examplePolicy"}},"in":"path","name":"passwordPolicy","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.policy.Policy"}}},"description":"The PasswordPolicy to be retrieved."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get a PasswordPolicy.","tags":["User"]}},"/v2/password/policies/{path}":{"get":{"operationId":"password-validation-get-password-policy-v2-deprecated","deprecated":true,"parameters":[{"in":"path","name":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.policy.Policy"}}},"description":"The requested password policy"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get a password policy.","tags":["User"]}},"/v2/project-invites/{projectInviteId}/actions/accept":{"post":{"operationId":"project-accept-project-invite","parameters":[{"description":"ID of the ProjectInvite to be accepted.","in":"path","name":"projectInviteId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"invitationToken":{"description":"Token contained in the invite for authentication.","type":"string"}},"type":"object"}}},"required":true},"responses":{"204":{"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Accept a ProjectInvite.","tags":["Project"]}},"/v2/project/{projectId}/invites":{"post":{"parameters":[{"description":"ID of the Project to create a ProjectInvite for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"mailAddress":{"description":"Mail-address of the person to be invited.","format":"email","type":"string"},"membershipExpiresAt":{"description":"Time the resulting ProjectMembership should expire at.","format":"date-time","type":"string"},"message":{"description":"Message contained in the ProjectInvite.","type":"string"},"role":{"$ref":"#/components/schemas/de.mittwald.v1.membership.ProjectRoles"}},"required":["mailAddress","role"],"type":"object"}}},"required":true},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create a ProjectInvite.","tags":["Project"],"deprecated":true}},"/v2/projects/{projectId}/invites":{"post":{"operationId":"project-create-project-invite","parameters":[{"description":"ID of the Project to create a ProjectInvite for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"mailAddress":{"description":"Mail-address of the person to be invited.","format":"email","type":"string"},"membershipExpiresAt":{"description":"Time the resulting ProjectMembership should expire at.","format":"date-time","type":"string"},"message":{"description":"Message contained in the ProjectInvite.","type":"string"},"role":{"$ref":"#/components/schemas/de.mittwald.v1.membership.ProjectRoles"}},"required":["mailAddress","role"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.membership.ProjectInvite"}}},"description":"Created"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"409":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create a ProjectInvite.","tags":["Project"]},"get":{"operationId":"project-list-invites-for-project","parameters":[{"description":"ID of the Project to list invites for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.membership.ProjectInvite"},"type":"array"}}},"description":"OK","headers":{"X-Pagination-Limit":{"schema":{"type":"number"}},"X-Pagination-Skip":{"schema":{"type":"number"}},"X-Pagination-TotalCount":{"schema":{"type":"number"}}}},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List Invites belonging to a Project.","tags":["Project"]}},"/v2/servers/{serverId}/projects":{"post":{"operationId":"project-create-project","parameters":[{"description":"ID of the Server to create the Project for.","in":"path","name":"serverId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"description":"Name of the Project as it is displayed in the mStudio.","example":"My first Project!","type":"string"}},"required":["description"],"type":"object"}}},"description":""},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"uuid","type":"string"}},"required":["id"],"type":"object"}}},"description":"Created"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create a Project belonging to a Server.","tags":["Project"]}},"/v2/project-invites/{projectInviteId}/actions/decline":{"post":{"operationId":"project-decline-project-invite","parameters":[{"description":"ID of the ProjectInvite to be declined.","in":"path","name":"projectInviteId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{}}}},"responses":{"204":{"description":""},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Decline a ProjectInvite.","tags":["Project"]}},"/v2/projects/{projectId}/avatar":{"delete":{"operationId":"project-delete-project-avatar","parameters":[{"description":"ID of the Project the avatar should be deleted for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a Project's avatar.","tags":["Project"]},"post":{"operationId":"project-request-project-avatar-upload","parameters":[{"description":"ID of the Project you want to request an avatar upload for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"refId":{"format":"uuid","type":"string"},"rules":{"$ref":"#/components/schemas/de.mittwald.v1.project.AvatarRules"}},"required":["refId","rules"],"type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Request a Project avatar upload.","tags":["Project"]}},"/v2/project-invites/{projectInviteId}":{"delete":{"operationId":"project-delete-project-invite","parameters":[{"description":"ID of the ProjectInvite to be deleted.","in":"path","name":"projectInviteId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":""},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a ProjectInvite.","tags":["Project"]},"get":{"operationId":"project-get-project-invite","parameters":[{"description":"ID of the ProjectInvite to be retrieved.","in":"path","name":"projectInviteId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.membership.ProjectInvite"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a ProjectInvite.","tags":["Project"]}},"/v2/project-memberships/{projectMembershipId}":{"delete":{"operationId":"project-delete-project-membership","parameters":[{"description":"ID of the ProjectMembership to be deleted.","in":"path","name":"projectMembershipId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"OK"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a ProjectMembership.","tags":["Project"]},"get":{"operationId":"project-get-project-membership","parameters":[{"description":"ID of the ProjectMembership to be retrieved.","in":"path","name":"projectMembershipId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.membership.ProjectMembership"}}},"description":""},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a ProjectMembership","tags":["Project"]},"patch":{"operationId":"project-update-project-membership","parameters":[{"description":"ID of the ProjectMembership to be updated.","in":"path","name":"projectMembershipId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"expiresAt":{"description":"Time the ProjectMembership should expire at.","format":"date-time","type":"string"},"role":{"$ref":"#/components/schemas/de.mittwald.v1.membership.ProjectRoles"}},"required":["role"],"type":"object"}}},"required":true},"responses":{"204":{"description":""},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a ProjectMembership.","tags":["Project"]}},"/v2/projects/{projectId}":{"delete":{"operationId":"project-delete-project","parameters":[{"description":"The ID of the Project.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a Project.","tags":["Project"]},"get":{"operationId":"project-get-project","parameters":[{"description":"ID of the Project to be retrieved.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.project.Project"}}},"description":"OK"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a Project.","tags":["Project"]}},"/v2/servers/{serverId}/avatar":{"delete":{"operationId":"project-delete-server-avatar","parameters":[{"description":"ID of the Server to delete the avatar for.","in":"path","name":"serverId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a Server's avatar.","tags":["Project"]},"post":{"operationId":"project-request-server-avatar-upload","parameters":[{"description":"ID of the Server to request an avatar upload for.","in":"path","name":"serverId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"refId":{"format":"uuid","type":"string"},"rules":{"$ref":"#/components/schemas/de.mittwald.v1.project.AvatarRules"}},"required":["refId","rules"],"type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Request a Server avatar upload.","tags":["Project"]}},"/v2/projects/{projectId}/filesystem/directories":{"get":{"parameters":[{"description":"ID of the Project to list the directories for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"description":"The directory to start listing subdirectories from.","in":"query","name":"directory","required":false,"schema":{"type":"string"}},{"description":"Search for specific filenames, only. The name may be a glob expression.","in":"query","name":"name","required":false,"schema":{"type":"string"}},{"description":"The nesting depth for recursively listing directory contents.","in":"query","name":"max_depth","required":false,"schema":{"type":"integer"}},{"description":"One of file or directory (may be specified multiple times), to restrict results to directory items of this specific type.","in":"query","name":"type","required":false,"schema":{"items":{"type":"string"},"type":"array"}},{"description":"Set to true to constrain search results to executable files.","in":"query","name":"executable","required":false,"schema":{"type":"boolean"}},{"description":"Set to true to include hidden files. (with . prefix in the search results).","in":"query","name":"hidden","required":false,"schema":{"type":"boolean"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List directories belonging to a Project.","tags":["Project File System"],"deprecated":true}},"/v2/projects/{projectId}/filesystem-directories":{"get":{"operationId":"project-file-system-get-directories","parameters":[{"description":"ID of the Project to list the directories for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"description":"The directory to start listing subdirectories from.","in":"query","name":"directory","required":false,"schema":{"type":"string"}},{"description":"Search for specific filenames, only. The name may be a glob expression.","in":"query","name":"name","required":false,"schema":{"type":"string"}},{"description":"The nesting depth for recursively listing directory contents.","in":"query","name":"max_depth","required":false,"schema":{"type":"integer"}},{"description":"One of file or directory (may be specified multiple times), to restrict results to directory items of this specific type.","in":"query","name":"type","required":false,"schema":{"items":{"type":"string"},"type":"array"}},{"description":"Set to true to constrain search results to executable files.","in":"query","name":"executable","required":false,"schema":{"type":"boolean"}},{"description":"Set to true to include hidden files. (with . prefix in the search results).","in":"query","name":"hidden","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.project.FilesystemDirectoryListing"}}},"description":"OK"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List directories belonging to a Project.","tags":["Project File System"]}},"/v2/projects/{projectId}/filesystem/usages/disk":{"get":{"parameters":[{"description":"ID of the Project.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"Starting directory for the disk usage calculation.","in":"query","name":"directory","required":false,"schema":{"example":"/home/example.log","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a Project directory filesystem usage.","tags":["Project File System"],"deprecated":true}},"/v2/projects/{projectId}/filesystem-disk-usage":{"get":{"operationId":"project-file-system-get-disk-usage","parameters":[{"description":"ID of the Project.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"Starting directory for the disk usage calculation.","in":"query","name":"directory","required":false,"schema":{"example":"/home/example.log","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.project.FilesystemUsagesDisk"}}},"description":"OK"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a Project directory filesystem usage.","tags":["Project File System"]}},"/v2/projects/{projectId}/filesystem/files/raw":{"get":{"parameters":[{"description":"ID of the Project.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"Name of the file.","in":"query","name":"file","required":false,"schema":{"example":"/home/example.log","type":"string"}},{"description":"Set to true to serve the file with Content-Disposition: inline. Otherwise, it will be served with Content-Disposition: attachment. filename=...","in":"query","name":"inline","required":false,"schema":{"type":"boolean"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a Project file's content.","tags":["Project File System"],"deprecated":true}},"/v2/projects/{projectId}/filesystem-file-content":{"get":{"operationId":"project-file-system-get-file-content","parameters":[{"description":"ID of the Project.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"Name of the file.","in":"query","name":"file","required":false,"schema":{"example":"/home/example.log","type":"string"}},{"description":"Set to true to serve the file with Content-Disposition: inline. Otherwise, it will be served with Content-Disposition: attachment. filename=...","in":"query","name":"inline","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"text/plain":{"schema":{"type":"string"}}},"description":"OK"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a Project file's content.","tags":["Project File System"]}},"/v2/projects/{projectId}/jwt":{"get":{"operationId":"project-file-system-get-jwt","parameters":[{"description":"ID of the Project to retrieve an authorization token for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.project.FsApiJwt"}}},"description":"OK"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a Project's file/filesystem authorization token.","tags":["Project File System"]}},"/v2/projects/{projectId}/filesystem/files":{"get":{"parameters":[{"description":"ID of the Project.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"Name of the file to retrieve.","in":"query","name":"file","required":false,"schema":{"example":"/home/example.log","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a Project file's information.","tags":["Project File System"],"deprecated":true}},"/v2/projects/{projectId}/filesystem-files":{"get":{"operationId":"project-file-system-list-files","parameters":[{"description":"ID of the Project.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"Name of the file to retrieve.","in":"query","name":"file","required":false,"schema":{"example":"/home/example.log","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.project.FilesystemDirectoryListing"}}},"description":"OK"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a Project file's information.","tags":["Project File System"]}},"/v2/project-token-invite":{"get":{"operationId":"project-get-project-token-invite","parameters":[{"description":"Token of the ProjectInvite to be retrieved.","in":"header","name":"token","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.membership.ProjectInvite"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a ProjectInvite by token.","tags":["Project"]}},"/v2/projects/{projectId}/memberships/self":{"get":{"operationId":"project-get-self-membership-for-project","parameters":[{"description":"ID of the Project to get the membership for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.membership.ProjectMembership"}}},"description":"OK"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get the executing user's membership in a Project.","tags":["Project"]}},"/v2/servers/{serverId}":{"get":{"operationId":"project-get-server","parameters":[{"description":"ID of the Server to be retrieved.","in":"path","name":"serverId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.project.Server"}}},"description":"OK"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a Server.","tags":["Project"]}},"/v2/projects/{projectId}/leave":{"post":{"operationId":"project-leave-project","parameters":[{"description":"ID of the Project to be left.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{}}}},"responses":{"204":{"description":""},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Leave a Project.","tags":["Project"]}},"/v2/projects/{projectId}/memberships":{"get":{"operationId":"project-list-memberships-for-project","parameters":[{"description":"ID of the Project to list memberships for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.membership.ProjectMembership"},"type":"array"}}},"description":"OK","headers":{"X-Pagination-Limit":{"schema":{"type":"number"}},"X-Pagination-Skip":{"schema":{"type":"number"}},"X-Pagination-TotalCount":{"schema":{"type":"number"}}}},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List Memberships belonging to a Project.","tags":["Project"]}},"/v2/project-invites":{"get":{"operationId":"project-list-project-invites","parameters":[{"in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.membership.ProjectInvite"},"type":"array"}}},"description":"OK","headers":{"X-Pagination-Limit":{"schema":{"type":"number"}},"X-Pagination-Skip":{"schema":{"type":"number"}},"X-Pagination-TotalCount":{"schema":{"type":"number"}}}},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List ProjectInvites belonging to the executing user.","tags":["Project"]}},"/v2/project-memberships":{"get":{"operationId":"project-list-project-memberships","parameters":[{"in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.membership.ProjectMembership"},"type":"array"}}},"description":"OK","headers":{"X-Pagination-Limit":{"schema":{"type":"number"}},"X-Pagination-Skip":{"schema":{"type":"number"}},"X-Pagination-TotalCount":{"schema":{"type":"number"}}}},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List ProjectMemberships belonging to the executing user.","tags":["Project"]}},"/v2/projects":{"get":{"operationId":"project-list-projects","parameters":[{"description":"ID of the Organization to list Projects for.","in":"query","name":"customerId","required":false,"schema":{"example":"15b8a787-8d46-43b0-907e-01af35032c0a","type":"string"}},{"description":"ID of the Server to list Projects for.","in":"query","name":"serverId","required":false,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"createdAt":{"format":"date-time","type":"string"},"customerId":{"type":"string"},"customerMeta":{"properties":{"id":{"type":"string"}},"required":["id"],"type":"object"},"description":{"type":"string"},"disableReason":{"$ref":"#/components/schemas/de.mittwald.v1.project.DisableReason"},"disabledAt":{"format":"date-time","type":"string"},"enabled":{"type":"boolean"},"id":{"type":"string"},"imageRefId":{"type":"string"},"isReady":{"deprecated":true,"description":"deprecated","type":"boolean"},"projectHostingId":{"format":"uuid","type":"string"},"readiness":{"$ref":"#/components/schemas/de.mittwald.v1.project.DeprecatedProjectReadinessStatus"},"serverId":{"type":"string"},"shortId":{"type":"string"},"status":{"$ref":"#/components/schemas/de.mittwald.v1.project.ProjectStatus"},"statusSetAt":{"format":"date-time","type":"string"},"webStorageUsageInBytes":{"type":"integer"},"webStorageUsageInBytesSetAt":{"format":"date-time","type":"string"}},"required":["id","shortId","description","enabled","customerMeta","customerId","createdAt","isReady","readiness","status","statusSetAt","webStorageUsageInBytes","webStorageUsageInBytesSetAt"],"type":"object"},"type":"array"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List Projects belonging to the executing user.","tags":["Project"]}},"/v2/servers":{"get":{"operationId":"project-list-servers","parameters":[{"description":"ID of the Organization to list PlacementGroups for. If no ID is provided, the ID of the executing User is used instead.","in":"query","name":"customerId","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"page","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.project.Server"},"type":"array"}}},"description":"OK"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List Servers belonging to the executing user.","tags":["Project"]}},"/v2/project-invites/{projectInviteId}/actions/resend":{"post":{"operationId":"project-resend-project-invite-mail","parameters":[{"description":"ID of the ProjectInvite to resend the mail for.","in":"path","name":"projectInviteId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{}}}},"responses":{"204":{"description":""},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Resend the mail for a ProjectInvite.","tags":["Project"]}},"/v2/projects/{projectId}/description":{"patch":{"operationId":"project-update-project-description","parameters":[{"description":"ID of the Project to update the description for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"example":"My new description!","type":"string"}},"required":["description"]}}}},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a Project's description.","tags":["Project"]}},"/v2/servers/{serverId}/description":{"patch":{"operationId":"project-update-server-description","parameters":[{"description":"ID of the Server to update the description of.","in":"path","name":"serverId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"example":"My first Server!","type":"string"}},"required":["description"]}}}},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a Servers's description.","tags":["Project"]}},"/v2/legacy-tariff-change":{"post":{"operationId":"relocation-create-legacy-tariff-change","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"properties":{"pAccount":{"pattern":"^[pr][0-9]{2,8}$","type":"string"},"targetTariff":{"minLength":1,"type":"string"}},"required":["pAccount","targetTariff"],"type":"object"}}},"description":"","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"messageId":{"format":"uuid","type":"string"}},"required":["messageId"],"type":"object"}}},"description":""},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[],"summary":"Register a tariff change for a legacy tariff.","tags":["Relocation"]}},"/v2/relocation":{"post":{"operationId":"relocation-create-relocation","description":"Give mittwald access to your Provider and let them move your Project to mittwald.","requestBody":{"content":{"application/json":{"schema":{"properties":{"allDomains":{"description":"Should all project releated domains should be transferred to mittwald?","type":"boolean"},"allowPasswordChange":{"description":"Has to be true. Do you accept that our mittwald team can change and get password from your current provider?","type":"boolean"},"contact":{"properties":{"email":{"format":"email","minLength":1,"type":"string"},"firstName":{"minLength":1,"type":"string"},"lastName":{"minLength":1,"type":"string"},"phoneNumber":{"pattern":"|^\\+([0-9]{2,3}|1)-[0-9]{2,5}-[0-9]+$","type":"string"}},"required":["firstName","lastName","email"],"type":"object"},"domains":{"description":"List of domains which should be transferred (when allDomains is not checked).","items":{"$ref":"#/components/schemas/de.mittwald.v1.directus.Domain"},"type":"array"},"notes":{"description":"Anything our customer service needs to know for the relocation process.","type":"string"},"provider":{"properties":{"loginUrl":{"description":"Url to the control panel of the provider","minLength":1,"type":"string"},"name":{"description":"Name of your provider","oneOf":[{"minLength":1,"type":"string"},{"enum":["1und1","strato"],"type":"string"}]},"password":{"minLength":1,"type":"string"},"sourceAccount":{"description":"Which account of your provider should be moved?","minLength":1,"type":"string"},"userName":{"description":"Login name to your provider","minLength":1,"type":"string"}},"required":["name","loginUrl","userName","password","sourceAccount"],"type":"object"},"target":{"properties":{"organisation":{"description":"Your customer or organisation number","minLength":1,"type":"string"},"product":{"description":"Help our customer service finding your target account","oneOf":[{"minLength":1,"type":"string"},{"enum":["Space-Server","proSpace","Agentur-Server","CMS-Hosting","Shop-Hosting"],"type":"string"}],"type":"string"},"projectName":{"description":"In which p-account or short project id your project should be moved.","minLength":1,"type":"string"},"system":{"description":"Which mittwald system does the targetProject use?","enum":["kc","mstudio"],"type":"string"}},"required":["organisation","projectName","system","product"],"type":"object"}},"required":["provider","contact","target","allowPasswordChange"],"type":"object"}}},"description":"","required":true},"responses":{"204":{"description":"No content"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[],"summary":"Relocate an external Project to mittwald.","tags":["Relocation"]}},"/v2/service/{accessKeyId}/actions/authenticate":{"post":{"parameters":[{"in":"path","name":"accessKeyId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"secretAccessKey":{"type":"string"}},"required":["secretAccessKey"],"type":"object"}}},"required":true},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Obtain a service token.","tags":[],"deprecated":true}},"/v2/services/{accessKeyId}/actions/authenticate":{"post":{"operationId":"servicetoken-authenticate-service","parameters":[{"in":"path","name":"accessKeyId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"secretAccessKey":{"type":"string"}},"required":["secretAccessKey"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"accessToken":{"properties":{"id":{"type":"string"},"jwtClaims":{"properties":{"exp":{"type":"string"},"iat":{"type":"string"},"iss":{"type":"string"},"sub":{"type":"string"}},"required":["iat","iss","sub","exp"],"type":"object"},"publicToken":{"type":"string"}},"required":["id","jwtClaims","publicToken"],"type":"object"}},"required":["accessToken"],"type":"object"}}},"description":"Authentication has been successful."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Obtain a service token.","tags":[]}},"/v2/projects/{projectId}/sftp-users":{"post":{"operationId":"sftp-user-create-sftp-user","parameters":[{"description":"ID of the Project to create an SFTPUser for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"accessLevel":{"enum":["read","full"],"type":"string"},"authentication":{"$ref":"#/components/schemas/de.mittwald.v1.sshuser.Authentication"},"description":{"type":"string"},"directories":{"items":{"type":"string"},"minItems":1,"type":"array"},"expiresAt":{"format":"date-time","type":"string"}},"required":["description","authentication","directories"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.sshuser.SftpUser"}}},"description":"Created"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create an SFTPUser for a Project.","tags":["SSH/SFTP User"]},"get":{"operationId":"sftp-user-list-sftp-users","parameters":[{"description":"ID of the Project to request SFTPUsers for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.sshuser.SftpUser"},"type":"array"}}},"description":"OK","headers":{"X-Pagination-Limit":{"schema":{"type":"number"}},"X-Pagination-Skip":{"schema":{"type":"number"}},"X-Pagination-TotalCount":{"schema":{"type":"number"}}}},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get all SFTPUsers for a Project.","tags":["SSH/SFTP User"]}},"/v2/sftp-users/{sftpUserId}":{"delete":{"operationId":"sftp-user-delete-sftp-user","parameters":[{"description":"ID of the SFTPUser to be deleted.","in":"path","name":"sftpUserId","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"NoContent"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete an SFTPUser.","tags":["SSH/SFTP User"]},"get":{"operationId":"sftp-user-get-sftp-user","parameters":[{"description":"ID of the SFTPUser to get.","in":"path","name":"sftpUserId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.sshuser.SftpUser"}}},"description":"OK"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get an SFTPUser.","tags":["SSH/SFTP User"]},"patch":{"operationId":"sftp-user-update-sftp-user","parameters":[{"description":"ID of the SFTPUser to be updated.","in":"path","name":"sftpUserId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"accessLevel":{"enum":["read","full"],"type":"string"},"active":{"type":"boolean"},"description":{"type":"string"},"directories":{"items":{"type":"string"},"minItems":1,"type":"array"},"expiresAt":{"format":"date-time","type":"string"},"password":{"maxLength":72,"type":"string"},"publicKeys":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.sshuser.PublicKey"},"type":"array"}},"type":"object"}}}},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update an SFTPUser.","tags":["SSH/SFTP User"]}},"/v2/project/{projectId}/sftp-users":{"get":{"parameters":[{"description":"ID of the Project to request SFTPUsers for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"type":"integer"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get all SFTPUsers for a Project.","tags":["SSH/SFTP User"],"deprecated":true}},"/v2/projects/{projectId}/ssh-users":{"post":{"operationId":"ssh-user-create-ssh-user","parameters":[{"description":"ID of the Project to create an SSHUser for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"authentication":{"$ref":"#/components/schemas/de.mittwald.v1.sshuser.Authentication"},"description":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"}},"required":["description","authentication"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.sshuser.SshUser"}}},"description":"Created"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create an SSHUser for a Project.","tags":["SSH/SFTP User"]},"get":{"operationId":"ssh-user-list-ssh-users","parameters":[{"description":"ID of the Project to retrieve SSHUsers for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.sshuser.SshUser"},"type":"array"}}},"description":"OK","headers":{"X-Pagination-Limit":{"schema":{"type":"number"}},"X-Pagination-Skip":{"schema":{"type":"number"}},"X-Pagination-TotalCount":{"schema":{"type":"number"}}}},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get all SSHUsers for a Project.","tags":["SSH/SFTP User"]}},"/v2/ssh-users/{sshUserId}":{"delete":{"operationId":"ssh-user-delete-ssh-user","parameters":[{"description":"ID of the SSHUser to be deleted.","in":"path","name":"sshUserId","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"NoContent"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete an SSHUser.","tags":["SSH/SFTP User"]},"get":{"operationId":"ssh-user-get-ssh-user","parameters":[{"description":"ID of the SSHUser to be retrieved.","in":"path","name":"sshUserId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.sshuser.SshUser"}}},"description":"OK"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get an SSHUser.","tags":["SSH/SFTP User"]},"patch":{"operationId":"ssh-user-update-ssh-user","parameters":[{"description":"ID of the SSHUser to be updated.","in":"path","name":"sshUserId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"active":{"type":"boolean"},"description":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"password":{"maxLength":72,"type":"string"},"publicKeys":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.sshuser.PublicKey"},"type":"array"}},"type":"object"}}}},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update an SSHUser.","tags":["SSH/SFTP User"]}},"/v2/sshusers/{sshUserId}":{"patch":{"parameters":[{"description":"ID of the SSHUser to be updated.","in":"path","name":"sshUserId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"active":{"type":"boolean"},"description":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"password":{"maxLength":72,"type":"string"},"publicKeys":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.sshuser.PublicKey"},"type":"array"}},"type":"object"}}}},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update an SSHUser.","tags":["SSH/SFTP User"],"deprecated":true}},"/v2/users/{userId}/phone":{"post":{"operationId":"user-add-phone-number","parameters":[{"description":"`self` or the id of a user.","examples":{"self":{"summary":"You","value":"self"},"userId":{"summary":"ID of a user.","value":"10203040-1234-5678-abcd-badc0de01234"}},"in":"path","name":"userId","required":true,"schema":{"oneOf":[{"enum":["self"],"type":"string"},{"format":"uuid","type":"string"}]}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"phoneNumber":{"example":"+491701234567","type":"string"}},"required":["phoneNumber"],"type":"object"}}},"required":true},"responses":{"204":{"description":"Phone number was added successfully. Now, it can be verified via /v2/users/:userId/actions/verify-phone."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"409":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Add phone number and start verification process.","tags":["User"]},"delete":{"operationId":"user-remove-phone-number","parameters":[{"description":"`self` or the id of a user.","examples":{"self":{"summary":"You","value":"self"},"userId":{"summary":"ID of a user.","value":"10203040-1234-5678-abcd-badc0de01234"}},"in":"path","name":"userId","required":true,"schema":{"oneOf":[{"enum":["self"],"type":"string"},{"format":"uuid","type":"string"}]}}],"responses":{"204":{"description":"PhoneNumber removal was successful"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Remove phone number.","tags":["User"]}},"/v2/signup/authentication/mfa":{"post":{"requestBody":{"content":{"application/json":{"schema":{"properties":{"email":{"description":"The email of the user.","example":"a.lovelace@example.com","format":"email","type":"string"},"multiFactorCode":{"description":"The second factor - otp code or recovery code.","example":"123456","maxLength":16,"minLength":6,"type":"string"},"password":{"description":"The password of the user.","type":"string"}},"required":["multiFactorCode"],"type":"object"}}},"required":true},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"summary":"Validate your second factor.","tags":["User"],"deprecated":true}},"/v2/authenticate-mfa":{"post":{"operationId":"user-authenticate-mfa","requestBody":{"content":{"application/json":{"schema":{"properties":{"email":{"description":"The email of the user.","example":"a.lovelace@example.com","format":"email","type":"string"},"multiFactorCode":{"description":"The second factor - otp code or recovery code.","example":"123456","maxLength":16,"minLength":6,"type":"string"},"password":{"description":"The password of the user.","type":"string"}},"required":["multiFactorCode"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"expires":{"description":"The expiration date of the token.","format":"date-time","type":"string"},"refreshToken":{"description":"Refresh token to refresh your access token even after it has expired.","type":"string"},"token":{"description":"Public token to identify yourself against the api gateway.","type":"string"}},"required":["token","refreshToken","expires"],"type":"object"}}},"description":"Your authentication request was successful and you've got an access token."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values do not meet our requirements.\nPossible your multiFactorCode is not valid\n"},"408":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/de.mittwald.v1.signup.DomainError"},{"properties":{"name":{"enum":["FirstAuthenticationFactorExpired"],"type":"string"}},"type":"object"}]}}},"description":"Your first factor has been expired. Please call '/authentication' again\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Validate your second factor.","tags":["User"]}},"/v2/signup/authentication":{"post":{"requestBody":{"content":{"application/json":{"schema":{"properties":{"email":{"description":"The users Email-Address.","example":"a.lovelace@example.com","type":"string"},"password":{"description":"Password of the User.","type":"string"}},"required":["email","password"],"type":"object"}}},"required":true},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"summary":"Authenticate yourself to get an access token.","tags":["User"],"deprecated":true}},"/v2/authenticate":{"post":{"operationId":"user-authenticate","requestBody":{"content":{"application/json":{"schema":{"properties":{"email":{"description":"The users Email-Address.","example":"a.lovelace@example.com","type":"string"},"password":{"description":"Password of the User.","type":"string"}},"required":["email","password"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"expires":{"description":"The expiration date of the token.","format":"date-time","type":"string"},"refreshToken":{"description":"Refresh token to refresh your access token even after it has expired.","type":"string"},"token":{"description":"Public token to identify yourself against the api gateway.","type":"string"}},"required":["token","refreshToken","expires"],"type":"object"}}},"description":"Your authentication request was successfull and you've got an access token."},"202":{"content":{"application/json":{"schema":{"properties":{"name":{"enum":["SecondFactorRequired"],"type":"string"}},"type":"object"}}},"description":"Multi factor authentication is activated for this user. After calling this, you need to call '/authentication/mfa' with a valid multi factor code.\n"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Authentication failed because of wrong credentials.\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Authenticate yourself to get an access token.","tags":["User"]}},"/v2/authenticate-token-retrieval-key":{"post":{"operationId":"user-authenticate-with-access-token-retrieval-key","requestBody":{"content":{"application/json":{"schema":{"properties":{"accessTokenRetrievalKey":{"maxLength":37,"minLength":37,"type":"string"},"userId":{"format":"uuid","type":"string"}},"required":["userId","accessTokenRetrievalKey","refreshToken"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"expiresAt":{"description":"The expiration date of the token.","format":"date-time","type":"string"},"refreshToken":{"description":"Refresh token to refresh your access token even after it has expired.","type":"string"},"token":{"description":"Public token to identify yourself against the public api.","type":"string"}},"required":["token","refreshToken","expiresAt"],"type":"object"}}},"description":"Your authentication request was successful and you've got an access token."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Authenticate an user with an access token retrieval key.","tags":["User"]}},"/v2/users/self/credentials/email":{"put":{"operationId":"user-change-email","requestBody":{"content":{"application/json":{"schema":{"properties":{"email":{"description":"The new Email-Address","example":"ada.lovelace@example.com","format":"email","type":"string"}},"required":["email"],"type":"object"}}},"required":true},"responses":{"204":{"description":"Your email has been added, but needs to be verfied. Check your mails and\ncall /email/verify with the verification code sent with the mail.\n"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values does not meet our requirements.\nPossible domain specific `type` values are:\n * EmailInUse\n * EmailBlacklisted\n * EmailMXInvalid\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Change your Email-Address.","tags":["User"]},"get":{"operationId":"user-get-own-email","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"email":{"example":"a.lovelace@example.com","format":"email","type":"string"}},"required":["email"],"type":"object"}}},"description":"Your Email-Address."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get your verified Email-Address.","tags":["User"]}},"/v2/signup/password":{"put":{"requestBody":{"content":{"application/json":{"schema":{"properties":{"multiFactorCode":{"description":"Multi Factor Code to confirm MFA.\nThis is optional, depending on the MFA activation status of the profile.\n","example":"123456","maxLength":16,"minLength":6,"type":"string"},"newPassword":{"description":"The new password.","type":"string"},"oldPassword":{"description":"The old password.","type":"string"}},"required":["oldPassword","newPassword"],"type":"object"}}},"required":true},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Change your password.","tags":["User"],"deprecated":true},"get":{"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":false},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"The timestamp of your latest password change.","tags":["User"],"deprecated":true}},"/v2/users/self/credentials/password":{"put":{"operationId":"user-change-password","requestBody":{"content":{"application/json":{"schema":{"properties":{"multiFactorCode":{"description":"Multi Factor Code to confirm MFA.\nThis is optional, depending on the MFA activation status of the profile.\n","example":"123456","maxLength":16,"minLength":6,"type":"string"},"newPassword":{"description":"The new password.","type":"string"},"oldPassword":{"description":"The old password.","type":"string"}},"required":["oldPassword","newPassword"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"expires":{"description":"The expiration date of the token.","format":"date-time","type":"string"},"token":{"description":"Public token to identify yourself against the api gateway.","type":"string"}},"required":["token","expires"],"type":"object"}}},"description":"Your password has been changed."},"202":{"$ref":"#/components/responses/de.mittwald.v1.signup.SecondFactorRequiredError"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values does not meet our requirements.\nPossible domain specific `type` values are:\n * EmailAddressNotVerified\n * WrongPassword\n * SamePassword\n * PasswordIsLeaked\n * MfaCodeNotValid\n * PasswordEqualsEmail\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Change your password.","tags":["User"]}},"/v2/signup/token/check":{"post":{"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":false},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Check token for validity.","tags":["User"],"deprecated":true}},"/v2/users/self/credentials/token":{"post":{"operationId":"user-check-token","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"uuid","type":"string"},"publicToken":{"type":"string"}},"required":["id","publicToken"],"type":"object"}}},"description":"Your token is valid."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Check token for validity.","tags":["User"]}},"/v2/signup/mfa/confirm":{"post":{"requestBody":{"content":{"application/json":{"schema":{"properties":{"multiFactorCode":{"description":"Multi Factor Code to confirm MFA.","example":"123456","maxLength":16,"minLength":6,"type":"string"}},"required":["multiFactorCode"],"type":"object"}}},"required":true},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Confirm Multi Factor Authentication.","tags":["User"],"deprecated":true}},"/v2/users/self/credentials/mfa":{"post":{"operationId":"user-confirm-mfa","requestBody":{"content":{"application/json":{"schema":{"properties":{"multiFactorCode":{"description":"Multi Factor Code to confirm MFA.","example":"123456","maxLength":16,"minLength":6,"type":"string"}},"required":["multiFactorCode"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"recoveryCodesList":{"items":{"example":1234123412341234,"maxLength":16,"minLength":16,"type":"string"},"maxItems":20,"minItems":20,"type":"array"}},"required":["recoveryCodesList"],"type":"object"}}},"description":"Mfa is now activated and recovery codes are in the response body."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values does not meet our requirements.\nPossible domain specific `type` values are:\n * EmailAddressNotVerified\n * MfaNotInitialized\n * MfaAlreadyConfirmed\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Confirm Multi Factor Authentication.","tags":["User"]},"delete":{"operationId":"user-disable-mfa","requestBody":{"content":{"application/json":{"schema":{"properties":{"multiFactorCode":{"description":"Multi Factor Code to confirm MFA.","maxLength":16,"minLength":6,"type":"string"}},"required":["multiFactorCode"],"type":"object"}}},"required":true},"responses":{"204":{"description":"Multi Factor Authentication was disabled."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values does not meet our requirements.\nPossible domain specific `type` values are:\n * MultiFactorCodeNotValid\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Disable Multi Factor Authentication.","tags":["User"]},"get":{"operationId":"user-get-mfa-status","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"confirmed":{"type":"boolean"},"initialized":{"type":"boolean"}},"required":["initialized","confirmed"],"type":"object"}}},"description":"Multi factor auth status"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get your current multi factor auth status.","tags":["User"]},"put":{"operationId":"user-reset-recoverycodes","requestBody":{"content":{"application/json":{"schema":{"properties":{"multiFactorCode":{"description":"Multi Factor Code to authorize your request.","example":"123456","maxLength":16,"minLength":6,"type":"string"}},"required":["multiFactorCode"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"recoveryCodesList":{"items":{"example":1234123412341234,"maxLength":16,"minLength":16,"type":"string"},"maxItems":20,"minItems":20,"type":"array"}},"required":["recoveryCodesList"],"type":"object"}}},"description":"Recovery-Codes are reset now. The new Recovery-Codes are in the response body."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values does not meet our requirements.\nPossible domain specific `type` values are:\n * MultiFactorCodeNotValid\n * MfaNotInitialized\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Reset RecoveryCodes for MFA.","tags":["User"]}},"/v2/users/self/credentials/password/confirm-reset":{"post":{"operationId":"user-confirm-password-reset","requestBody":{"content":{"application/json":{"schema":{"properties":{"password":{"description":"The new password.","type":"string"},"token":{"description":"Password reset token","maxLength":6,"minLength":6,"type":"string"},"userId":{"description":"UserId of the user to reset the password for.","format":"uuid","type":"string"}},"required":["userId","token","password"],"type":"object"}}},"required":true},"responses":{"204":{"description":"Password reset was successful."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values do not meet our requirements.\nPossible domain specific `type` values are:\n * WrongPasswordResetToken\n * EmailAddressNotVerified\n * PasswordIsLeaked\n * ValidationError\n * PasswordEqualsEmail\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Confirm password reset.","tags":["User"]}},"/v2/signup/token/api":{"post":{"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"example":"Api Token - read","type":"string"},"expiresAt":{"format":"date-time","type":"string"},"roles":{"description":"Determines the access rights of the ApiToken.","example":{"value":["api_read"]},"items":{"enum":["api_read","api_write"],"type":"string"},"minItems":1,"type":"array","uniqueItems":true}},"required":["roles","description"],"type":"object"}}},"required":true},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Store a new ApiToken.","tags":["User"],"deprecated":true},"get":{"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List all of your ApiTokens.","tags":["User"],"deprecated":true}},"/v2/users/self/api-tokens":{"post":{"operationId":"user-create-api-token","requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"example":"Api Token - read","type":"string"},"expiresAt":{"format":"date-time","type":"string"},"roles":{"description":"Determines the access rights of the ApiToken.","example":{"value":["api_read"]},"items":{"enum":["api_read","api_write"],"type":"string"},"minItems":1,"type":"array","uniqueItems":true}},"required":["roles","description"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"token":{"description":"The `ApiToken`.","type":"string"}},"required":["token"],"type":"object"}}},"description":"ApiToken was added."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Store a new ApiToken.","tags":["User"]},"get":{"operationId":"user-list-api-tokens","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.signup.ApiToken"},"type":"array"}}},"description":"A list of ApiTokens."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List all of your ApiTokens.","tags":["User"]}},"/v2/users/self/feedback":{"post":{"operationId":"user-create-feedback","requestBody":{"content":{"application/json":{"schema":{"properties":{"message":{"description":"Personal feedback message.","maxLength":5000,"type":"string"},"origin":{"description":"Origin of the feedback.","example":"https://studio.mittwald.de/app/dashboard","maxLength":1000,"type":"string"},"subject":{"description":"Descriptive subject.","maxLength":100,"type":"string"},"type":{"description":"Type of feedback.","enum":["feedback","bug"],"type":"string"},"vote":{"description":"Feedback rating from bad to good. Set to 0 or skip this field to not vote at all.","maximum":10,"minimum":0,"type":"number"}},"required":["subject"],"type":"object"}}},"description":"The feedback to give."},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Feedback successfully submitted."},"401":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Submit your user feedback.","tags":["User"]}},"/v2/signup/ssh":{"post":{"requestBody":{"content":{"application/json":{"schema":{"properties":{"expiresAt":{"format":"date-time","type":"string"},"publicKey":{"example":"ssh-rsa ...","type":"string"}},"required":["publicKey"],"type":"object"}}},"required":true},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Store a new ssh-key.","tags":["User"],"deprecated":true},"get":{"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get your stored ssh-keys.","tags":["User"],"deprecated":true}},"/v2/users/self/ssh-keys":{"post":{"operationId":"user-create-ssh-key","requestBody":{"content":{"application/json":{"schema":{"properties":{"expiresAt":{"format":"date-time","type":"string"},"publicKey":{"example":"ssh-rsa ...","type":"string"}},"required":["publicKey"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"The ssh-key was stored."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Store a new ssh-key.","tags":["User"]},"get":{"operationId":"user-list-ssh-keys","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"sshKeys":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.signup.SshKey"},"type":"array"}},"type":"object"}}},"description":"The list of stored ssh-keys."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get your stored ssh-keys.","tags":["User"]}},"/v2/users/self/api-tokens/{apiTokenId}":{"delete":{"operationId":"user-delete-api-token","parameters":[{"description":"The uuid of an ApiToken.","in":"path","name":"apiTokenId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"The `ApiToken` has been deleted."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Deletes an ApiToken.","tags":["User"]},"put":{"operationId":"user-edit-api-token","parameters":[{"in":"path","name":"apiTokenId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"example":"Api Token for ...","type":"string"},"expiresAt":{"format":"date-time","type":"string"}},"required":["description"],"type":"object"}}},"required":true},"responses":{"204":{"description":"ApiToken was updated."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update an existing `ApiToken`.","tags":["User"]},"get":{"operationId":"user-get-api-token","parameters":[{"description":"The id of an ApiToken.","in":"path","name":"apiTokenId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.signup.ApiToken"}}},"description":"The ApiToken."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a specific ApiToken.","tags":["User"]}},"/v2/users/self/ssh-keys/{sshKeyId}":{"delete":{"operationId":"user-delete-ssh-key","parameters":[{"in":"path","name":"sshKeyId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"The ssh-key has been removed."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Remove a ssh-key.","tags":["User"]},"put":{"operationId":"user-edit-ssh-key","parameters":[{"in":"path","name":"sshKeyId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"comment":{"example":"a.lovelace@example.com","type":"string"},"expiresAt":{"format":"date-time","type":"string"}},"required":["comment"],"type":"object"}}},"required":true},"responses":{"204":{"description":"The ssh-key has been edited."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Edit a stored ssh-key.","tags":["User"]},"get":{"operationId":"user-get-ssh-key","parameters":[{"in":"path","name":"sshKeyId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"sshKey":{"$ref":"#/components/schemas/de.mittwald.v1.signup.SshKey"}},"required":["sshKey"],"type":"object"}}},"description":"The requested ssh-key."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a specific stored ssh-key.","tags":["User"]}},"/v2/users/self":{"delete":{"operationId":"user-delete-user","requestBody":{"content":{"application/json":{"schema":{"properties":{"multiFactorCode":{"description":"Multi Factor Code to authorize your request.","example":"123456","maxLength":16,"minLength":6,"type":"string"},"password":{"type":"string"}},"required":["password"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Your user has been deleted."},"202":{"$ref":"#/components/responses/de.mittwald.v1.signup.SecondFactorRequiredError"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values does not meet our requirements.\nPossible domain specific `type` values are:\n * WrongPassword\n * MfaCodeNotValid\n"},"409":{"$ref":"#/components/responses/de.mittwald.v1.signup.RemovingLastOwnerNotAllowedError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete your account and all your personal data.","tags":["User"]}},"/v2/users/self/personal-information":{"get":{"operationId":"user-get-own-account","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.signup.Account"}}},"description":"Account information."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get your account information.","tags":["User"]},"put":{"operationId":"user-update-account","requestBody":{"content":{"application/json":{"schema":{"properties":{"person":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Person"}},"required":["person"],"type":"object"}}},"required":true},"responses":{"204":{"description":"Account has been updated."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values does not meet our requirements.\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update your account information.","tags":["User"]}},"/v2/users/self/credentials/password-updated-at":{"get":{"operationId":"user-get-password-updated-at","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"passwordUpdatedAt":{"format":"date-time","type":"string"}},"required":["passwordUpdatedAt"],"type":"object"}}},"description":"Timestamp of latest password change."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"The timestamp of your latest password change.","tags":["User"]}},"/v2/users/{userId}/settings":{"get":{"operationId":"user-get-personalized-settings","parameters":[{"description":"`self` or the id of a user.","examples":{"self":{"summary":"You","value":"self"},"userId":{"summary":"ID of a user.","value":"10203040-1234-5678-abcd-badc0de01234"}},"in":"path","name":"userId","required":true,"schema":{"oneOf":[{"enum":["self"],"type":"string"},{"format":"uuid","type":"string"}]}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"settingsString":{"example":"eyJvbmJvYXJkaW5nIjp7ImNvbXBsZXRlZCI6W119LCJyZWNlbnRWaXNpdHMiOnsicmVjZW50VmlzaXRzIjp7fSwicmVjZW50VmlzaXRlZFBhdGhzIjp7fX0sImNoYW5nZWxvZ3MiOnsicmVhZElkcyI6WzIsMSwzLDQsNSw2LDgsNyw5XX19","format":"base64","type":"string"}},"type":"object"}}},"description":"Personal settings of the user."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get personalized settings.","tags":["User"]},"put":{"operationId":"user-update-personalized-settings","parameters":[{"description":"`self` or the id of a user.","examples":{"self":{"summary":"You","value":"self"},"userId":{"summary":"ID of a user.","value":"10203040-1234-5678-abcd-badc0de01234"}},"in":"path","name":"userId","required":true,"schema":{"oneOf":[{"enum":["self"],"type":"string"},{"format":"uuid","type":"string"}]}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"settingsString":{"example":"eyJvbmJvYXJkaW5nIjp7ImNvbXBsZXRlZCI6W119LCJyZWNlbnRWaXNpdHMiOnsicmVjZW50VmlzaXRzIjp7fSwicmVjZW50VmlzaXRlZFBhdGhzIjp7fX0sImNoYW5nZWxvZ3MiOnsicmVhZElkcyI6WzIsMSwzLDQsNSw2LDgsNyw5XX19","format":"base64","type":"string"}},"required":["settingsString"],"type":"object"}}},"required":true},"responses":{"204":{"description":"PersonalSettings have been updated"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update personalized GUI settings.","tags":["User"]}},"/v2/poll-settings/{userId}":{"get":{"operationId":"user-get-poll-status","parameters":[{"in":"path","name":"userId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.poll.UserPollSettings"}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get poll settings for the specified user.","tags":["User"]},"post":{"operationId":"user-post-poll-status","parameters":[{"in":"path","name":"userId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"status":{"enum":["completed","muted","ignored"],"type":"string"},"userId":{"type":"string"}},"required":["userId","status"],"type":"object"}}},"description":"","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.poll.UserPollSettings"}}},"description":"The updated poll settings."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Store new or update poll settings.","tags":["User"]}},"/v2/users/self/sessions/{tokenId}":{"get":{"operationId":"user-get-session","parameters":[{"description":"TokenId to identify a specific session.","in":"path","name":"tokenId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.signup.UserSession"}}},"description":"The session."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a specific session.","tags":["User"]},"delete":{"operationId":"user-terminate-session","parameters":[{"description":"The sessionId is the id of the token used to create the session.","in":"path","name":"tokenId","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Session terminated."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Terminate a specific Session.","tags":["User"]}},"/v2/users/{userId}":{"get":{"operationId":"user-get-user","parameters":[{"description":"`self` or the id of a user.","examples":{"self":{"summary":"You","value":"self"},"userId":{"summary":"ID of a user.","value":"10203040-1234-5678-abcd-badc0de01234"}},"in":"path","name":"userId","required":true,"schema":{"oneOf":[{"enum":["self"],"type":"string"},{"format":"uuid","type":"string"}]}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.user.User"}}},"description":"The user profile."},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get profile information for a user.","tags":["User"]},"put":{"operationId":"user-update-personal-information","parameters":[{"description":"`self` or the id of a user.","examples":{"self":{"summary":"You","value":"self"},"userId":{"summary":"ID of a user.","value":"10203040-1234-5678-abcd-badc0de01234"}},"in":"path","name":"userId","required":true,"schema":{"oneOf":[{"enum":["self"],"type":"string"},{"format":"uuid","type":"string"}]}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"person":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Person"}},"required":["person"],"type":"object"}}},"required":true},"responses":{"204":{"description":"Your personal information has been changed"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Change personal information.","tags":["User"]}},"/v2/users/self/credentials/init-mfa":{"post":{"operationId":"user-init-mfa","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"barcode":{"description":"base64 encoded barcode content to scan from your mfa app. e.g. `iVBORw0KGgoAAAANSUhEUgAAAMgAAADIEAAAAADYoy...`. You\ncan display it with ``\n","type":"string"},"url":{"description":"Same as barcode, but in URL form.\n","example":"otpauth://totp/mStudio:test@gmail.com?algorithm=SHA1&digits=6&issuer=mStudio&period=30&secret=HTXT7KJFVNAJUPYWQRWMNVQE5AF5YZI2","type":"string"}},"required":["barcode","url"],"type":"object"}}},"description":"The process of activating Multi Factor Authentication is initialized."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values does not meet our requirements.\nPossible domain specific `type` values are:\n * EmailAddressNotVerified\n * MfaAlreadyConfirmed\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Initialize Multi Factor Authentication. If successful, it needs to be confirmed, before usage of mfa.","tags":["User"]}},"/v2/users/self/credentials/actions/init-password-reset":{"post":{"operationId":"user-init-password-reset","requestBody":{"content":{"application/json":{"schema":{"properties":{"email":{"description":"Email address to reset the password for.","example":"a.lovelace@example.com","format":"email","type":"string"}},"required":["email"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"The password reset process has been initialized and an email with confirmation code has been sent.\n"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values do not meet our requirements.\n"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Initialize password reset process.","tags":["User"]}},"/v2/users/{userId}/feedback":{"get":{"operationId":"user-list-feedback","parameters":[{"description":"`self` or the id of a user.","examples":{"self":{"summary":"You","value":"self"},"userId":{"summary":"ID of a user.","value":"10203040-1234-5678-abcd-badc0de01234"}},"in":"path","name":"userId","required":true,"schema":{"oneOf":[{"enum":["self"],"type":"string"},{"format":"uuid","type":"string"}]}},{"description":"Filter for subject content.","in":"query","name":"subject","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.user.UserFeedback"},"type":"array"}}},"description":"Feedback submitted by the user."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Submitted feedback of the given user.","tags":["User"]}},"/v2/users/self/sessions":{"get":{"operationId":"user-list-sessions","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.signup.UserSession"},"type":"array"}}},"description":"List of all sessions."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List all sessions.","tags":["User"]},"put":{"operationId":"user-refresh-session","requestBody":{"content":{"application/json":{"schema":{"properties":{"refreshToken":{"type":"string"}},"required":["refreshToken"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"expiresAt":{"description":"The expiration date of the token.","format":"date-time","type":"string"},"refreshToken":{"description":"Refresh token to refresh your access token even after it has expired.","type":"string"},"token":{"description":"Public token to identify yourself against the public api.","type":"string"}},"required":["token","refreshToken","expiresAt"],"type":"object"}}},"description":"Your token refresh was successful and you've got new a new access token. The used one in this call is no longer valid."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Refresh a session.","tags":["User"]},"delete":{"operationId":"user-terminate-all-sessions","responses":{"204":{"description":"All sessions terminated."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Terminate all sessions, except the current session.","tags":["User"]}},"/v2/logout":{"put":{"operationId":"user-logout","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":false},"responses":{"204":{"description":"You've been logged out. The access token has been removed and invalidated."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values do not meet our requirements.\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Terminate session and invalidate access token.","tags":["User"]}},"/v2/oauth2/authorize":{"get":{"operationId":"user-oauth-get-authorization","description":"The OAuth 2.0 client requests authorization from the resource owner according to\n[RFC6749](https://datatracker.ietf.org/doc/html/rfc6749). The\nauthorization request is made indirectly via the authorization\nserver as an intermediary.\n","parameters":[{"description":"Access Token of the Resource Owner.\n","in":"cookie","name":"x-access-token","required":false,"schema":{"type":"string"}},{"description":"Can be set in combination with `Authorization`-Header to grant consent for the requested scopes.\nIf set to `true`, the scopes will be marked as consented and the authorization server will\nredirect the user-agent back to the client.\nIf set to `false`, the authorization server will redirect the user-agent back to the client with an\naccess denied error.\nIf not set and `Authorization`-Header is set, the user will be asked for consent.\n","in":"query","name":"grant_consent","required":false,"schema":{"type":"boolean"}},{"description":"The grant type. Must be set to `authorization_code` for this endpoint.\n","in":"query","name":"grant_type","required":false,"schema":{"enum":["authorization_code"],"type":"string"}},{"description":"The response type. Must be set to `code` for this endpoint.\n","in":"query","name":"response_type","required":true,"schema":{"enum":["code"],"type":"string"}},{"description":"The client identifier as described in\n[RFC6749](https://datatracker.ietf.org/doc/html/rfc6749#section-2.2).\n","in":"query","name":"client_id","required":true,"schema":{"type":"string"}},{"description":"The redirection URI to which the authorization server\ndirects the user-agent back after the authorization\nendpoint. Must be a valid URI.\n","in":"query","name":"redirect_uri","required":false,"schema":{"format":"uri","type":"string"}},{"description":"The scope of the access request as described by\n[RFC6749](https://datatracker.ietf.org/doc/html/rfc6749#section-3.3).\n","in":"query","name":"scope","required":false,"schema":{"type":"string"}},{"description":"An opaque value used by the client to maintain state\nbetween the request and callback. The authorization server\nincludes this value when redirecting the user-agent back to\nthe client. The parameter SHOULD be used for preventing\ncross-site request forgery as described in\n[RFC6749](https://datatracker.ietf.org/doc/html/rfc6749#section-10.12).\n","in":"query","name":"state","required":false,"schema":{"type":"string"}},{"description":"The code challenge as described by\n[RFC7636](https://datatracker.ietf.org/doc/html/rfc7636#section-4.2).\nIf the authorization code flow should be used with Proof Key for Code Exchange (PKCE), this parameter\n must be set and the code verifier has to be given to the token endpoint.\n","in":"query","name":"code_challenge","required":false,"schema":{"type":"string"}},{"description":"The code challenge method as described in\n[RFC7636](https://datatracker.ietf.org/doc/html/rfc7636#section-4.3).\nIf used, the code_challenge must be set as well and the code verifier\nhas to be given to the token endpoint\n","in":"query","name":"code_challenge_method","required":false,"schema":{"enum":["S256"],"type":"string"}}],"responses":{"302":{"description":"The authorization server redirects the user-agent by\nsending the HTTP response with status code 302 and the HTTP\n`Location`-Header field containing the authorization endpoint URI\nwith either the query parameters `code` added, if successful or `error`\nand `error_description` added, if not. Fore more Information see\n[Authorization Response](https://datatracker.ietf.org/doc/html/rfc6749#section-4.1.2).\n"},"400":{"content":{"application/json":{"schema":{"properties":{"error":{"enum":["invalid_request"],"type":"string"},"error_description":{"type":"string"}},"required":["error"],"type":"object"}}},"description":"The request is missing a required parameter, includes an\ninvalid parameter value, includes a parameter more than\nonce, or is otherwise malformed.\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Obtain authorization from the resource owner.","tags":["User"]}},"/v2/oauth2/token":{"post":{"operationId":"user-oauth-retrieve-access-token","description":"The OAuth 2.0 client retrieves an Access Token from an existing authorization code according to\n[RFC6749](https://datatracker.ietf.org/doc/html/rfc6749).\n","parameters":[{"description":"The client credentials (`client_id` and `client_secret`), separated with a colon\nand base64 encoded as described in\n[RFC6749](https://datatracker.ietf.org/doc/html/rfc6749#section-2.3.1).\nSubmitting the `client_id` and `client_secret` as request-body as suggested is forbidden.\n","in":"header","name":"Authorization","required":false,"schema":{"example":"Basic Y2xpZW50X2lkOmNsaWVudF9zZWNyZXQ=","type":"string"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"properties":{"code":{"description":"The authorization code received from the authorization server.\n","type":"string"},"code_verifier":{"description":"The code verifier used to generate the code challenge as described in\n[RFC7636](https://datatracker.ietf.org/doc/html/rfc7636#section-4.1).\nIf the authorization flow was initiated with a code challenge, this parameter is required.\n","type":"string"},"grant_type":{"description":"The grant type as described in\n[RFC6749](https://datatracker.ietf.org/doc/html/rfc6749#section-4.1.3).\n","enum":["authorization_code"],"type":"string"},"redirect_uri":{"description":"The redirection URI used in the authorization request.\nMust be a valid URI.\n","format":"uri","type":"string"}},"required":["grant_type","redirect_uri","code"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"access_token":{"description":"The access token issued by the authorization server.\n","type":"string"},"expires_in":{"description":"The lifetime in seconds of the access token. For\nexample, the value \"3600\" denotes that the access\ntoken will expire in one hour from the time the\nresponse was generated.\n","type":"integer"},"refresh_token":{"description":"The refresh token issued by the authorization server.\n","type":"string"},"scope":{"description":"The scope of the access token as described by\n[RFC6749](https://datatracker.ietf.org/doc/html/rfc6749#section-3.3).\n","type":"string"},"token_type":{"description":"The type of the token issued as described in\n[RFC6749](https://datatracker.ietf.org/doc/html/rfc6749#section-7.1).\n","enum":["bearer"],"type":"string"}},"required":["access_token","refresh_token","token_type","expires_in"],"type":"object"}}},"description":"The authorization server issues an access token as described in\n[RFC6749](https://datatracker.ietf.org/doc/html/rfc6749#section-5.1).\n"},"400":{"content":{"application/json":{"schema":{"properties":{"error":{"enum":["invalid_request","invalid_client","invalid_grant","unauthorized_client","unsupported_grant_type","invalid_scope"],"type":"string"},"error_description":{"type":"string"}},"required":["error"],"type":"object"}}},"description":"The request of an access token is invalid as described in\n[RFC6749](https://datatracker.ietf.org/doc/html/rfc6749#section-5.2).\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Retrieve Access Token from Authorization Code.","tags":["User"]}},"/v2/signup/registration":{"post":{"requestBody":{"content":{"application/json":{"schema":{"properties":{"email":{"description":"The users email address","format":"email","type":"string"},"password":{"description":"The users password.","type":"string"},"person":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Person"}},"required":["email","password","person"],"type":"object"}}},"required":true},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"summary":"Register with email and password.","tags":["User"],"deprecated":true}},"/v2/register":{"post":{"operationId":"user-register","requestBody":{"content":{"application/json":{"schema":{"properties":{"email":{"description":"The users email address","format":"email","type":"string"},"password":{"description":"The users password.","type":"string"},"person":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Person"}},"required":["email","password","person"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"userId":{"format":"uuid","type":"string"}},"required":["userId"],"type":"object"}}},"description":"Registration was successfull. A verification email will be sent to the specified email address.\nThe users can be used as soon as the verification link was opened\n"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values does not meet our requirements.\nPossible domain specific `type` values are:\n * EmailInUse\n * PasswordIsLeaked\n * ValidationError\n * PasswordEqualsEmail\n"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Register with email and password.","tags":["User"]}},"/v2/users/{userId}/avatar":{"delete":{"operationId":"user-remove-avatar","parameters":[{"description":"`self` or the id of a user.","examples":{"self":{"summary":"You","value":"self"},"userId":{"summary":"ID of a user.","value":"10203040-1234-5678-abcd-badc0de01234"}},"in":"path","name":"userId","required":true,"schema":{"oneOf":[{"enum":["self"],"type":"string"},{"format":"uuid","type":"string"}]}}],"responses":{"204":{"description":"Avatar removal was successful."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Remove Avatar.","tags":["User"]},"post":{"operationId":"user-request-avatar-upload","parameters":[{"description":"`self` or the id of a user.","examples":{"self":{"summary":"You","value":"self"},"userId":{"summary":"ID of a user.","value":"10203040-1234-5678-abcd-badc0de01234"}},"in":"path","name":"userId","required":true,"schema":{"oneOf":[{"enum":["self"],"type":"string"},{"format":"uuid","type":"string"}]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"refId":{"description":"The `refId` to be used to upload your avatar to the /v2/files/:refId route.","format":"uuid","type":"string"},"rules":{"description":"Contstraints for the avatar image upload.","properties":{"maxSizeInKB":{"description":"Maximum size in kilobytes of the avatar image.","example":3000,"type":"integer"},"mimeTypes":{"description":"List of supported mime types.","items":{"example":"image/png","type":"string"},"type":"array"},"properties":{"properties":{"imageDimensions":{"description":"Supported range of dimensions for the avatar image.","properties":{"max":{"properties":{"height":{"type":"integer"},"width":{"type":"integer"}},"type":"object"},"min":{"properties":{"height":{"type":"integer"},"width":{"type":"integer"}},"type":"object"}},"type":"object"}},"type":"object"}},"required":["mimeTypes","maxSizeInKB"],"type":"object"}},"required":["refId","rules"],"type":"object"}}},"description":"Avatar upload request was successful."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Request a new avatar image upload.","tags":["User"]}},"/v2/users/self/credentials/email/actions/resend-email":{"post":{"operationId":"user-resend-verification-email","requestBody":{"content":{"application/json":{"schema":{"properties":{"email":{"example":"ada.lovelace@example.com","format":"email","type":"string"},"userId":{"format":"uuid","type":"string"}},"required":["userId","email"],"type":"object"}}},"required":true},"responses":{"204":{"description":"New Email-Address verification email was sent."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values do not meet our requirements.\n"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Resend the Email-Address verification email.","tags":["User"]}},"/v2/signup/mfa/reset-recoverycodes":{"put":{"requestBody":{"content":{"application/json":{"schema":{"properties":{"multiFactorCode":{"description":"Multi Factor Code to authorize your request.","example":"123456","maxLength":16,"minLength":6,"type":"string"}},"required":["multiFactorCode"],"type":"object"}}},"required":true},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Reset RecoveryCodes for MFA.","tags":["User"],"deprecated":true}},"/v2/signup/supportcode":{"get":{"parameters":[{"in":"query","name":"forceRecreate","required":false,"schema":{"type":"boolean"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Request a support code.","tags":["User"],"deprecated":true}},"/v2/signup/supportcodes":{"get":{"parameters":[{"in":"query","name":"forceRecreate","required":false,"schema":{"type":"boolean"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Request a support code.","tags":["User"],"deprecated":true}},"/v2/users/self/credentials/support-code":{"get":{"operationId":"user-support-code-request","parameters":[{"in":"query","name":"forceRecreate","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"expiresAt":{"description":"Expiration of the support code","format":"date-time","type":"string"},"supportCode":{"description":"support code to authenticate yourself against the mittwald support via telephone","example":"123456","type":"string"}},"required":["supportCode","expiresAt"],"type":"object"}}},"description":"The requested support code and the expiry."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Request a support code.","tags":["User"]}},"/v2/users/self/credentials/email/actions/verify-email":{"post":{"operationId":"user-verify-email","requestBody":{"content":{"application/json":{"schema":{"properties":{"email":{"description":"The Email-Address to verify.","example":"ada.lovelace@example.com","format":"email","type":"string"},"token":{"description":"The token found in the verification email.","example":"123456","type":"string"}},"required":["email"],"type":"object"}}},"required":true},"responses":{"204":{"description":"Email has been verified."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values do not meet our requirements.\nPossible domain specific `type` values are:\n * WrongVerificationToken\n * EmailNotFound\n * WrongVerificationToken\n * EmailAddressAlreadyVerified\n"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Verify an added Email-Address.","tags":["User"]}},"/v2/users/{userId}/phone/verify":{"post":{"parameters":[{"description":"`self` or the id of a user.","examples":{"self":{"summary":"You","value":"self"},"userId":{"summary":"ID of a user.","value":"10203040-1234-5678-abcd-badc0de01234"}},"in":"path","name":"userId","required":true,"schema":{"oneOf":[{"enum":["self"],"type":"string"},{"format":"uuid","type":"string"}]}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"code":{"example":"123456","maxLength":6,"minLength":6,"type":"string"},"phoneNumber":{"example":"+491701234567","type":"string"}},"required":["phoneNumber","code"],"type":"object"}}},"required":true},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Verify phone number.","tags":["User"],"deprecated":true}},"/v2/users/{userId}/actions/verify-phone":{"post":{"operationId":"user-verify-phone-number","parameters":[{"description":"`self` or the id of a user.","examples":{"self":{"summary":"You","value":"self"},"userId":{"summary":"ID of a user.","value":"10203040-1234-5678-abcd-badc0de01234"}},"in":"path","name":"userId","required":true,"schema":{"oneOf":[{"enum":["self"],"type":"string"},{"format":"uuid","type":"string"}]}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"code":{"example":"123456","maxLength":6,"minLength":6,"type":"string"},"phoneNumber":{"example":"+491701234567","type":"string"}},"required":["phoneNumber","code"],"type":"object"}}},"required":true},"responses":{"204":{"description":"The phone number has been verified."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"409":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Verify phone number.","tags":["User"]}},"/v2/signup/registration/verification":{"post":{"requestBody":{"content":{"application/json":{"schema":{"properties":{"email":{"description":"The users email address.","format":"email","type":"string"},"token":{"description":"The token that was send to your email address","example":123456,"maxLength":16,"minLength":6,"type":"string"},"userId":{"description":"UUID of the registered user.","format":"uuid","type":"string"}},"required":["email","token","userId"],"type":"object"}}},"required":true},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"summary":"Verify your registration.","tags":["User"],"deprecated":true}},"/v2/verify-registration":{"post":{"operationId":"user-verify-registration","requestBody":{"content":{"application/json":{"schema":{"properties":{"email":{"description":"The users email address.","format":"email","type":"string"},"token":{"description":"The token that was send to your email address","example":123456,"maxLength":16,"minLength":6,"type":"string"},"userId":{"description":"UUID of the registered user.","format":"uuid","type":"string"}},"required":["email","token","userId"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"User is verified and you can now login to your user account.\n"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values do not meet our requirements.\nPossible domain specific `type` values are:\n * UserRegistrationAlreadyVerified\n * WrongVerificationToken\n"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Verify your registration.","tags":["User"]}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}]}
\ No newline at end of file
+{"openapi":"3.0.0","info":{"title":"Mittwald API","description":"## Introduction\n\nThis OpenAPI spec documents the mittwald API. It follows the\n[OpenAPI 3.0.0 specification](https://spec.openapis.org/oas/v3.0.0.html).\n\n## Authentication\n\nYou will need an API token to access the API. You can obtain one by logging into the\n[mStudio](https://studio.mittwald.de) and navigating to the\n[\"API Tokens\" section in the user menu](https://studio.mittwald.de/app/profile/api-tokens).\n\nWhen making requests to the API, you can authenticate by passing your API token in the `X-Access-Token` header or as a\nbearer token.\n\n## Rate Limiting\n\nPlease note that usage of the API is rate-limited to prevent abuse. You can inspect the rate limiting for your current\nuser by observing the `X-Ratelimit-*` headers included in each response.\n\n## mStudio\n\nA main consumer of the mittwald API is the management interface for our customers, the\n[mStudio](https://studio.mittwald.de).\n\n## Contact and support\n\nFor support, please use the [mStudio support area](https://studio.mittwald.de/app/support/conversations) or drop us an\nemail at [support@mittwald.de](mailto:support@mittwald.de).\n\nFor security issues, please report to [security@mittwald.de](mailto:security@mittwald.de).\n","contact":{"name":"Mittwald CM Service GmbH & Co. KG"},"version":"2.0"},"tags":[{"name":"Project","description":"The project API allows you to manage your projects, and also any kinds of user memberships concerning these projects."},{"name":"Backup","description":"The backup API allows you to manage your project backups."},{"name":"SSH/SFTP User","description":"The SSH/SFTP User API allows you to manage your SSH/SFTP users within a project."},{"name":"Cronjob","description":"The cronjob API allows you to manage cronjobs within a project."},{"name":"App","description":"The App API allows you to manage your apps within a project, and all the system softwares that are installed as dependencies."},{"name":"Project File System","description":"The filesystem API allows you to directly access the filesystem of your project."},{"name":"Contract","description":"The contract API allows you to manage your contracts and orders"},{"name":"Database","description":"The database API allows you to manage your databases, like MySQL and Redis databases."},{"name":"Domain","description":"The domain API allows you to manage your domains, DNS records and ingress resources."},{"name":"Conversation","description":"The conversation API allows you to manage your support conversations."},{"name":"Customer","description":"The customer API allows you to manage your own organizations and users."},{"name":"User","description":"The user API allows you to manage your own user and access information of other users that might be visible to you."},{"name":"Notification","description":"The notification API allows you to manage your notifications."},{"name":"File","description":"The file API allows you to manage your files, for example for conversations attachments and avatar uploads."},{"name":"Mail","description":"The mail API allows you to manage your mail accounts."},{"name":"Article","description":"The article API allows you to read article information."},{"name":"Container","description":"The container API allows you to manage your stacks, containers, volumes and registries."},{"name":"Page Insights","description":"The page insights API allows you to get page insights information."},{"name":"Relocation","description":"The relocation API allows you to manage your relocations."},{"name":"Marketplace","description":"The marketplace API allows you to manage extensions and more information regaring the marketplace."}],"components":{"callbacks":{},"examples":{},"headers":{},"links":{},"parameters":{},"requestBodies":{},"responses":{"de.mittwald.v1.app.GenericResponse":{"content":{"application/json":{"schema":{"type":"object"}}},"description":""},"de.mittwald.v1.customer.GenericResponse":{"content":{"application/json":{"schema":{"type":"object"}}},"description":""},"de.mittwald.v1.customer.FailedPreconditionError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Error"}}},"description":"Failed Precondition"},"de.mittwald.v1.dns.GenericResponse":{"content":{"application/json":{"schema":{"type":"object"}}},"description":""},"de.mittwald.v1.domain.SuccessResponse":{"content":{"application/json":{"schema":{"properties":{"isAsync":{"type":"boolean"},"transactionId":{"type":"string"}},"type":"object"}}},"description":"OK"},"de.mittwald.v1.domain.TransferabilityResponse":{"content":{"application/json":{"schema":{"properties":{"reasons":{"properties":{"domainAgeTooSmall":{"type":"boolean"},"domainDoesNotExist":{"type":"boolean"},"transferLock":{"type":"boolean"},"wrongAuthCode":{"type":"boolean"}},"required":["domainDoesNotExist","wrongAuthCode","transferLock","domainAgeTooSmall"],"type":"object"},"transferable":{"type":"boolean"}},"required":["transferable","reasons"],"type":"object"}}},"description":"OK"},"de.mittwald.v1.invoice.EmptyResponse":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Empty response"},"de.mittwald.v1.mail.EmptyResponse":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Empty response"},"de.mittwald.v1.order.GenericResponse":{"content":{"application/json":{"schema":{"type":"object"}}},"description":""},"de.mittwald.v1.order.NotFoundError":{"content":{"application/json":{"schema":{"type":"object"}}},"description":""},"de.mittwald.v1.signup.InternalServerError":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/de.mittwald.v1.signup.DomainError"},{"properties":{"name":{"enum":["InternalServerError"],"type":"string"}},"type":"object"}]}}},"description":"Something in our infrastructure went wrong\n"},"de.mittwald.v1.signup.NoValidAccessTokenError":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/de.mittwald.v1.signup.DomainError"},{"properties":{"name":{"enum":["NoAccessTokenProvided"],"type":"string"}},"type":"object"}]}}},"description":"No valid access token was provided"},"de.mittwald.v1.signup.RemovingLastOwnerNotAllowedError":{"content":{"application/json":{"schema":{"properties":{"info":{"description":"A json object, given further information about the error","example":{"customerId":"xyz"},"type":"object"},"message":{"description":"more information about the error","example":"The user cannot be removed because it is the last owner of the customer with the id 'xyz'","type":"string"},"name":{"enum":["RemovingLastOwnerNotAllowedError"],"example":"RemovingLastOwnerNotAllowedError","type":"string"}},"required":["name","message"],"type":"object"}}},"description":"Deleting the last owner of a customer is not allowed"},"de.mittwald.v1.signup.SecondFactorRequiredError":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/de.mittwald.v1.signup.DomainError"},{"properties":{"name":{"enum":["SecondFactorRequired"],"type":"string"}},"type":"object"}]}}},"description":"An additional second factor code is necessary to process the request."},"de.mittwald.v1.commons.DefaultError":{"description":"An unexpected Error that occurred while handling the request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Error"}}}},"de.mittwald.v1.commons.NotFoundError":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Error"}}}},"de.mittwald.v1.commons.RateLimitError":{"description":"Your request ran into a rate limit. You have to wait until rate limit expires\n","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"too many requests"},"type":{"type":"string","example":"RateLimitError"}}}}}},"de.mittwald.v1.commons.ValidationError":{"description":"Validation Error caused by invalid input data in the request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}}}},"schemas":{"de.mittwald.v1.app.Action":{"description":"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.","enum":["start","stop","restart"],"type":"string"},"de.mittwald.v1.app.ActionCapabilities":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.Action"},"type":"array"},"de.mittwald.v1.app.App":{"description":"An App is to be understood as a manifest for AppInstallations. E.g. 'WordPress' only exists inside our ecosystem, because there is an App -Manifest for it.","properties":{"actionCapabilities":{"$ref":"#/components/schemas/de.mittwald.v1.app.ActionCapabilities"},"id":{"type":"string"},"name":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"}},"required":["id","name","tags"],"type":"object"},"de.mittwald.v1.app.AppInstallationStatus":{"description":"AppInstallationStatus describes the overall runtime status of an AppInstallation.","properties":{"lastExitCode":{"type":"number"},"logFileLocation":{"type":"string"},"state":{"enum":["running","stopped","exited"],"type":"string"},"uptimeSeconds":{"type":"number"}},"required":["state","logFileLocation"],"type":"object"},"de.mittwald.v1.app.AppJobImage":{"properties":{"imageTemplate":{"type":"string"}},"required":["imageTemplate"],"type":"object"},"de.mittwald.v1.app.AppJobImages":{"properties":{"reconfigureImage":{"$ref":"#/components/schemas/de.mittwald.v1.app.AppJobImage"},"setupImage":{"$ref":"#/components/schemas/de.mittwald.v1.app.AppJobImage"},"uninstallImage":{"$ref":"#/components/schemas/de.mittwald.v1.app.AppJobImage"},"upgradeImage":{"$ref":"#/components/schemas/de.mittwald.v1.app.AppJobImage"}},"required":["setupImage","upgradeImage","uninstallImage","reconfigureImage"],"type":"object"},"de.mittwald.v1.app.AppUpdatePolicy":{"description":"AppUpdatePolicy describes which updates should be applied automatically by our systems.","enum":["none","patchLevel","all"],"type":"string"},"de.mittwald.v1.app.AppInstallation":{"description":"An AppInstallation is a concrete manifestation of an App in a specific AppVersion.","properties":{"appId":{"format":"uuid","type":"string"},"appVersion":{"$ref":"#/components/schemas/de.mittwald.v1.app.VersionStatus"},"customDocumentRoot":{"type":"string"},"description":{"type":"string"},"disabled":{"default":false,"type":"boolean"},"id":{"format":"uuid","type":"string"},"installationPath":{"type":"string"},"linkedDatabases":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.LinkedDatabase"},"type":"array"},"processes":{"items":{"format":"uuid","type":"string"},"type":"array"},"projectId":{"format":"uuid","type":"string"},"screenshotId":{"format":"uuid","type":"string"},"screenshotRef":{"type":"string"},"shortId":{"example":"a-XXXXXX","type":"string"},"systemSoftware":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.InstalledSystemSoftware"},"type":"array"},"updatePolicy":{"$ref":"#/components/schemas/de.mittwald.v1.app.AppUpdatePolicy"},"userInputs":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.SavedUserInput"},"type":"array"}},"required":["id","appId","shortId","appVersion","description","installationPath","disabled"],"type":"object"},"de.mittwald.v1.app.AppInstallationLifecycle":{"description":"The AppInstallationLifecycle can be used to express a specific point in the AppInstallation Lifecycle, e.g. while installing a new AppInstallation.","enum":["installation","update","reconfigure"],"type":"string"},"de.mittwald.v1.app.AppVersion":{"description":"An AppVersion is an officially supported version of an App, containing the necessary and recommended configuration und dependencies.","properties":{"appId":{"type":"string"},"breakingNote":{"$ref":"#/components/schemas/de.mittwald.v1.app.BreakingNote"},"databases":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.DatabaseDependency"},"type":"array"},"docRoot":{"type":"string"},"docRootUserEditable":{"type":"boolean"},"externalVersion":{"type":"string"},"id":{"format":"uuid","type":"string"},"internalVersion":{"type":"string"},"recommended":{"type":"boolean"},"requestHandler":{"$ref":"#/components/schemas/de.mittwald.v1.app.RequestHandlerRequirement"},"systemSoftwareDependencies":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.SystemSoftwareDependency"},"type":"array","uniqueItems":true},"userInputs":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.UserInput"},"type":"array","uniqueItems":true}},"required":["id","externalVersion","internalVersion","docRoot","docRootUserEditable","appId"],"type":"object"},"de.mittwald.v1.app.BreakingNote":{"description":"A BreakingNote is a hint that something serious has changed in the AppVersion containing it, so an automatic update is not possible.","properties":{"faqLink":{"format":"uri","type":"string"}},"required":["faqLink"],"type":"object"},"de.mittwald.v1.app.DatabaseDependency":{"description":"A DatabaseDependency is a generic description of need for a database, used by AppVersions.","properties":{"description":{"type":"string"},"kind":{"enum":["mysql"],"type":"string"},"parameters":{"additionalProperties":{"type":"string"},"type":"object"},"version":{"format":"uuid","type":"string"}},"required":["version","description","kind"],"type":"object"},"de.mittwald.v1.app.Error":{"properties":{"message":{"type":"string"},"type":{"type":"string"}},"required":["type","message"],"type":"object"},"de.mittwald.v1.app.InstalledSystemSoftware":{"description":"InstalledSystemSoftware describes the currently configured and installed SystemSoftwareVersion of a SystemSoftware besides the desired SystemSoftwareUpdatePolicy inside an AppInstallation.","properties":{"systemSoftwareId":{"format":"uuid","type":"string"},"systemSoftwareVersion":{"$ref":"#/components/schemas/de.mittwald.v1.app.VersionStatus"},"updatePolicy":{"$ref":"#/components/schemas/de.mittwald.v1.app.SystemSoftwareUpdatePolicy"}},"required":["systemSoftwareId","updatePolicy","systemSoftwareVersion"],"type":"object"},"de.mittwald.v1.app.LinkedDatabase":{"description":"LinkedDatabase is a reference to a concrete Database and DatabaseUsers.","properties":{"databaseId":{"format":"uuid","type":"string"},"databaseUserIds":{"additionalProperties":{"type":"string"},"type":"object"},"kind":{"enum":["mysql","redis"],"type":"string"},"purpose":{"enum":["primary","cache","custom"],"type":"string"}},"required":["databaseId","purpose","kind"],"type":"object"},"de.mittwald.v1.app.RequestHandlerRequirement":{"description":"RequestHandlerRequirement describes the necessary properties to internally resolve the request handler or process to start.","properties":{"exampleValues":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.SavedUserInput"},"type":"array"},"name":{"type":"string"},"namespace":{"type":"string"},"parametersTemplate":{"type":"string"}},"required":["name","namespace","parametersTemplate"],"type":"object"},"de.mittwald.v1.app.SavedUserInput":{"description":"A SavedUserInput is an entered value for a desired UserInput of an AppVersion or SystemSoftwareVersion.","properties":{"name":{"type":"string"},"value":{"type":"string"}},"required":["name","value"],"type":"object"},"de.mittwald.v1.app.SystemSoftwareDependency":{"description":"A SystemSoftwareDependency is a description of a need for a specific SystemSoftware in a semver versionRange.","properties":{"systemSoftwareId":{"format":"uuid","type":"string"},"versionRange":{"type":"string"}},"required":["systemSoftwareId","versionRange"],"type":"object"},"de.mittwald.v1.app.SystemSoftwareUpdatePolicy":{"description":"SystemSoftwareUpdatePolicy describes which updates should be applied automatically by our systems.","enum":["none","inheritedFromApp","patchLevel","all"],"type":"string"},"de.mittwald.v1.app.SystemSoftware":{"description":"A SystemSoftware is a software that can be installed for an AppInstallation but mostly is not itself externally reachable and/or deliverable.","properties":{"id":{"type":"string"},"meta":{"additionalProperties":{"type":"string"},"type":"object"},"name":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"}},"required":["id","name","tags"],"type":"object"},"de.mittwald.v1.app.SystemSoftwareVersion":{"description":"A SystemSoftwareVersion is an officially supported version of a SystemSoftware, containing the necessary and recommended configuration und dependencies.","properties":{"expiryDate":{"format":"date-time","type":"string"},"externalVersion":{"type":"string"},"fee":{"$ref":"#/components/schemas/de.mittwald.v1.fee.FeeStrategy"},"id":{"format":"uuid","type":"string"},"internalVersion":{"type":"string"},"recommended":{"type":"boolean"},"systemSoftwareDependencies":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.SystemSoftwareDependency"},"type":"array"},"userInputs":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.UserInput"},"type":"array"}},"required":["id","internalVersion","externalVersion"],"type":"object"},"de.mittwald.v1.app.UserInput":{"description":"A UserInput is a description of an information which cannot be determined or estimated by mittwald, but has to be given by the person who is requesting an AppInstallation or SystemSoftware.","properties":{"dataSource":{"description":"Optional field to tell the frontend, which data to put into the select.","type":"string"},"dataType":{"$ref":"#/components/schemas/de.mittwald.v1.app.UserInputDataType"},"defaultValue":{"type":"string"},"format":{"$ref":"#/components/schemas/de.mittwald.v1.app.UserInputFormat"},"lifecycleConstraint":{"$ref":"#/components/schemas/de.mittwald.v1.app.AppInstallationLifecycle"},"name":{"type":"string"},"positionMeta":{"$ref":"#/components/schemas/de.mittwald.v1.app.UserInputPositionMeta"},"required":{"type":"boolean"},"validationSchema":{"description":"JSON Schema formatted (https://json-schema.org/).","type":"string"}},"required":["name","dataType","validationSchema","lifecycleConstraint","required"],"type":"object"},"de.mittwald.v1.app.UserInputDataType":{"description":"UserInputDataType is an enum, describing the possible data types of a UserInput.","enum":["text","number","boolean","select"],"type":"string"},"de.mittwald.v1.app.UserInputFormat":{"description":"UserInputFormat is an enum, describing the possible data formats of a UserInput, the given values can be validated against.","enum":["email","password","url","uri"],"type":"string"},"de.mittwald.v1.app.UserInputPositionMeta":{"description":"UserInputPositionMeta is a utility information, helping to position the UserInput properly on the frontend.","properties":{"index":{"type":"number"},"section":{"type":"string"},"step":{"type":"string"}},"type":"object"},"de.mittwald.v1.app.VersionStatus":{"description":"VersionStatus describes the current and desired version of something like the AppVersion of an AppInstallation. If diverging, an internal process is going to assert, the current value will be aligned.","properties":{"current":{"type":"string"},"desired":{"type":"string"}},"required":["desired"],"type":"object"},"de.mittwald.v1.article.ArticleAddons":{"properties":{"hidden":{"type":"boolean"},"key":{"minLength":1,"type":"string"},"type":{"type":"string"},"value":{"type":"string"},"valueMergeType":{"enum":["add","set"],"type":"string"}},"required":["key","value"],"type":"object"},"de.mittwald.v1.article.ArticleAttributes":{"properties":{"customerEditable":{"type":"boolean"},"key":{"example":"cpu","minLength":1,"type":"string"},"mergeType":{"enum":["add","set"],"type":"string"},"readonly":{"type":"boolean"},"required":{"type":"boolean"},"unit":{"example":"GHz","type":"string"},"value":{"example":"4","type":"string"}},"required":["key"],"type":"object"},"de.mittwald.v1.article.ReadableBookableArticleOptions":{"properties":{"articleId":{"example":"PS23-BASIC-0001","minLength":1,"type":"string"},"info":{"properties":{"articleName":{"example":"proSpace lite","type":"string"},"articleTemplateName":{"example":"proSpace","type":"string"},"fromArticleTemplate":{"type":"boolean"}},"type":"object"},"maxArticleCount":{"example":10,"type":"number"}},"required":["articleId"],"type":"object"},"de.mittwald.v1.article.ReadableChangeArticleOptions":{"properties":{"articleId":{"minLength":1,"type":"string"},"info":{"properties":{"articleName":{"example":"proSpace lite","type":"string"},"articleTemplateName":{"example":"proSpace","type":"string"},"fromArticleTemplate":{"type":"boolean"}},"type":"object"}},"required":["articleId"],"type":"object"},"de.mittwald.v1.article.ReadableModifierArticleOptions":{"properties":{"articleId":{"minLength":1,"type":"string"},"info":{"properties":{"articleName":{"example":"proSpace lite","type":"string"},"articleTemplateName":{"example":"proSpace","type":"string"},"fromArticleTemplate":{"type":"boolean"}},"type":"object"},"maxArticleCount":{"minimum":1,"type":"number"}},"required":["articleId","maxArticleCount"],"type":"object"},"de.mittwald.v1.article.ArticleTag":{"properties":{"description":{"example":"CPU optimized","minLength":1,"type":"string"},"hexColor":{"example":"#ff0000","minLength":1,"type":"string"},"id":{"example":"58e39bbe-fcd1-4fde-887c-f49ff85b9df5","minLength":1,"type":"string"},"name":{"example":"cpu-optimized","minLength":1,"type":"string"}},"required":["id"],"type":"object"},"de.mittwald.v1.article.ArticleTemplate":{"properties":{"additionalArticles":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.article.ReadableBookableArticleOptions"},"type":"array"},"addons":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.article.ArticleAddons"},"type":"array"},"attributes":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.article.ArticleAttributes"},"type":"array"},"description":{"example":"Space-Storage","type":"string"},"id":{"example":"054e27e4-d3ed-4ffc-a472-fbb74a6a2ec1","minLength":1,"type":"string"},"isManagedByDomain":{"type":"boolean"},"isRecurring":{"type":"boolean"},"modifierArticles":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.article.ReadableModifierArticleOptions"},"type":"array"},"name":{"example":"Speicher für Space-Server aller Art","minLength":3,"type":"string"},"type":{"enum":["miscellaneous","base","additional","modifier","setup_fee"],"type":"string"}},"required":["name","isRecurring","type","isManagedByDomain"],"type":"object"},"de.mittwald.v1.article.ReadableArticle":{"properties":{"addons":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.article.ArticleAddons"},"type":"array"},"articleId":{"example":"PS23-BASIC-0001","minLength":3,"type":"string"},"attributes":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.article.ArticleAttributes"},"type":"array"},"balanceAddonKey":{"example":"inclusive_domains","type":"string"},"contractDurationInMonth":{"example":0,"maximum":42,"minimum":0,"type":"number"},"description":{"example":"proSpace without dedicated resources","type":"string"},"forcedInvoicingPeriodInMonth":{"example":0,"minimum":0,"type":"number"},"hasIndependentContractPeriod":{"type":"boolean"},"hideOnInvoice":{"type":"boolean"},"machineType":{"properties":{"cpu":{"example":1,"type":"string"},"memory":{"example":10,"type":"string"},"name":{"example":"psplus-shared","type":"string"}},"required":["name","cpu","memory"],"type":"object"},"modifierArticles":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.article.ReadableModifierArticleOptions"},"type":"array"},"name":{"example":"proSpace lite","minLength":3,"type":"string"},"orderable":{"enum":["forbidden","internal","beta_testing","full","deprecated"],"type":"string"},"possibleArticleChanges":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.article.ReadableChangeArticleOptions"},"type":"array"},"price":{"example":1000,"type":"number"},"tags":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.article.ArticleTag"},"type":"array"},"template":{"$ref":"#/components/schemas/de.mittwald.v1.article.ArticleTemplate"}},"required":["articleId","name","contractDurationInMonth","orderable","template"],"type":"object"},"de.mittwald.v1.backup.BackupTemplate":{"properties":{"expirationTime":{"format":"date-time","type":"string"},"ignoredSources":{"$ref":"#/components/schemas/de.mittwald.v1.backup.IgnoredSources"}},"required":["expirationTime"],"type":"object"},"de.mittwald.v1.backup.DatabaseReference":{"properties":{"kind":{"type":"string"},"name":{"type":"string"}},"required":["kind","name"],"type":"object"},"de.mittwald.v1.backup.IgnoredSources":{"properties":{"databases":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.backup.DatabaseReference"},"type":"array"},"files":{"type":"boolean"}},"required":["files"],"type":"object"},"de.mittwald.v1.backup.ProjectBackup":{"properties":{"createdAt":{"format":"date-time","type":"string"},"deletable":{"type":"boolean"},"description":{"example":"I'm a ProjectBackup","type":"string"},"expiresAt":{"format":"date-time","type":"string"},"export":{"$ref":"#/components/schemas/de.mittwald.v1.backup.ProjectBackupExport"},"id":{"format":"uuid","type":"string"},"parentId":{"format":"uuid","type":"string"},"projectId":{"format":"uuid","type":"string"},"status":{"example":"Completed","type":"string"}},"required":["id","projectId","status","deletable"],"type":"object"},"de.mittwald.v1.backup.ProjectBackupExport":{"properties":{"downloadURL":{"format":"url","type":"string"},"expiresAt":{"format":"date-time","type":"string"},"format":{"example":"tar","type":"string"},"phase":{"enum":["","Pending","Exporting","Failed","Completed","Expired"],"example":"Completed","type":"string"},"withPassword":{"type":"boolean"}},"required":["format","withPassword"],"type":"object"},"de.mittwald.v1.backup.ProjectBackupSchedule":{"properties":{"createdAt":{"format":"date-time","type":"string"},"description":{"description":"Description of this ProjectBackupSchedule.","example":"I'm a ProjectBackupSchedule","type":"string"},"id":{"description":"ID of this ProjectBackupSchedule.","format":"uuid","type":"string"},"isSystemBackup":{"description":"True if this ProjectBackupSchedule was created and is managed by mittwald.","type":"boolean"},"projectId":{"description":"ID of the Project this ProjectBackupSchedule belongs to.","format":"uuid","type":"string"},"schedule":{"description":"Execution schedule in crontab notation.","example":"5 4 * * *","type":"string"},"ttl":{"description":"TTL of the ProjectBackupSchedule as time string.","example":"7d","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","projectId","schedule","isSystemBackup"],"type":"object"},"de.mittwald.v1.contract.AggregateReference":{"properties":{"aggregate":{"example":"project","type":"string"},"domain":{"example":"project","type":"string"},"id":{"example":"a1b8f0e9-904f-4716-a1c0-81ccf5342a56","type":"string"}},"required":["id","domain","aggregate"],"type":"object"},"de.mittwald.v1.contract.Article":{"properties":{"amount":{"example":1,"minimum":1,"type":"integer"},"articleTemplateId":{"example":"a1b8f0e9-904f-4716-a1c0-81ccf5342a56","type":"string"},"description":{"example":"Musterbeschreibung","type":"string"},"id":{"example":"a1b8f0e9-904f-4716-a1c0-81ccf5342a56","type":"string"},"name":{"example":"Musterartikel","type":"string"},"unitPrice":{"$ref":"#/components/schemas/de.mittwald.v1.contract.Price"}},"required":["id","name","articleTemplateId","amount","unitPrice"],"type":"object"},"de.mittwald.v1.contract.Contact":{"properties":{"address":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Address"},"company":{"example":"Musterfirma","type":"string"},"emailAddress":{"format":"email","type":"string"},"firstName":{"example":"Ada","type":"string"},"lastName":{"example":"Lovelace","type":"string"},"phoneNumbers":{"items":{"example":"+49 123 4567890","type":"string"},"type":"array"},"salutation":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Salutation"},"title":{"example":"Dr.","type":"string"},"useFormalTerm":{"type":"boolean"}},"required":["address","salutation"],"type":"object"},"de.mittwald.v1.contract.ContractItem":{"properties":{"activationDate":{"format":"date-time","type":"string"},"aggregateReference":{"$ref":"#/components/schemas/de.mittwald.v1.contract.AggregateReference"},"articles":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.contract.Article"},"type":"array"},"contractPeriod":{"example":1,"minimum":0,"type":"number"},"description":{"example":"Space-Server: \"Mein Space-Server\"","type":"string"},"freeTrialDays":{"example":10,"type":"number"},"groupByProjectId":{"format":"uuid","type":"string"},"invoiceStop":{"description":"If this attribute is set, the contract item will currently only be invoiced until this date.","format":"date-time","type":"string"},"invoicingPeriod":{"example":1,"type":"number"},"isActivated":{"type":"boolean"},"isBaseItem":{"type":"boolean"},"isInFreeTrial":{"type":"boolean"},"isInclusive":{"type":"boolean"},"itemId":{"format":"uuid","type":"string"},"nextPossibleDowngradeDate":{"description":"If this attribute is not set, termination is not allowed.","format":"date-time","type":"string"},"nextPossibleTerminationDate":{"description":"If this attribute is not set, a tariff change is not allowed.","format":"date-time","type":"string"},"nextPossibleUpgradeDate":{"description":"If this attribute is not set, a tariff change is not allowed.","format":"date-time","type":"string"},"orderDate":{"format":"date-time","type":"string"},"orderId":{"format":"uuid","type":"string"},"replacedByItem":{"format":"uuid","type":"string"},"tariffChange":{"$ref":"#/components/schemas/de.mittwald.v1.contract.TariffChange"},"termination":{"$ref":"#/components/schemas/de.mittwald.v1.contract.Termination"},"totalPrice":{"$ref":"#/components/schemas/de.mittwald.v1.contract.Price"}},"required":["itemId","isActivated","contractPeriod","articles","totalPrice","description","isBaseItem"],"type":"object"},"de.mittwald.v1.contract.Contract":{"properties":{"additionalItems":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.contract.ContractItem"},"type":"array"},"baseItem":{"$ref":"#/components/schemas/de.mittwald.v1.contract.ContractItem"},"contractId":{"format":"uuid","type":"string"},"contractNumber":{"example":"V1234567","type":"string"},"customerId":{"example":"3a201faa-5160-47e0-a758-325ba794b543","type":"string"},"termination":{"$ref":"#/components/schemas/de.mittwald.v1.contract.Termination"}},"required":["contractId","contractNumber","customerId","baseItem"],"type":"object"},"de.mittwald.v1.contract.Error":{"properties":{"message":{"example":"Something went wrong","type":"string"},"type":{"example":"InternalServerError","type":"string"}},"required":["type","message"],"type":"object"},"de.mittwald.v1.contract.Price":{"properties":{"currency":{"enum":["EUR"],"type":"string"},"value":{"description":"The value of the price in the smallest currency unit (e.g. cents)","example":100,"type":"integer"}},"required":["value","currency"],"type":"object"},"de.mittwald.v1.contract.TariffChange":{"properties":{"newArticles":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.contract.Article"},"type":"array"},"scheduledAtDate":{"format":"date-time","type":"string"},"scheduledByUserId":{"type":"string"},"targetDate":{"format":"date-time","type":"string"}},"required":["scheduledAtDate","targetDate","newArticles"],"type":"object"},"de.mittwald.v1.contract.Termination":{"properties":{"reason":{"example":"Not needed anymore","type":"string"},"scheduledAtDate":{"format":"date-time","type":"string"},"scheduledByUserId":{"type":"string"},"targetDate":{"format":"date-time","type":"string"}},"required":["scheduledAtDate","targetDate"],"type":"object"},"de.mittwald.v1.conversation.AggregateReference":{"properties":{"aggregate":{"type":"string"},"domain":{"type":"string"},"id":{"type":"string"}},"required":["id","aggregate","domain"],"type":"object"},"de.mittwald.v1.conversation.CategoryReferenceType":{"items":{"enum":["unspecified","server","project","organisation"],"type":"string"},"type":"array"},"de.mittwald.v1.conversation.Category":{"properties":{"categoryId":{"format":"uuid","type":"string"},"name":{"type":"string"},"referenceType":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.CategoryReferenceType"}},"required":["categoryId","name","referenceType"],"type":"object"},"de.mittwald.v1.conversation.ConversationMembers":{"items":{"allOf":[{"$ref":"#/components/schemas/de.mittwald.v1.conversation.User"},{"properties":{"active":{"type":"boolean"}},"required":["active"],"type":"object"}]},"type":"array"},"de.mittwald.v1.conversation.ConversationPreferences":{"properties":{"customerId":{"format":"uuid","type":"string"},"preferredUsers":{"properties":{"categoryUserPairs":{"additionalProperties":{"format":"uuid","type":"string"},"type":"object"},"fallback":{"format":"uuid","type":"string"}},"type":"object"}},"required":["customerId","preferredUsers"],"type":"object"},"de.mittwald.v1.conversation.Conversation":{"properties":{"category":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.Category"},"conversationId":{"format":"uuid","type":"string"},"createdAt":{"format":"date-time","type":"string"},"createdBy":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.User"},"lastMessageAt":{"format":"date-time","type":"string"},"lastMessageBy":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.User"},"mainUser":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.User"},"relatedTo":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.AggregateReference"},"relations":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.AggregateReference"},"type":"array"},"sharedWith":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.AggregateReference"},"shortId":{"type":"string"},"status":{"enum":["open","closed","answered","inProgress"],"type":"string"},"title":{"type":"string"},"visibility":{"enum":["shared","private"],"type":"string"}},"required":["conversationId","shortId","title","createdAt","status","visibility","mainUser"],"type":"object"},"de.mittwald.v1.conversation.GetConversationIdResponse":{"properties":{"conversationId":{"format":"uuid","type":"string"},"shortId":{"type":"string"}},"required":["shortId","conversationId"],"type":"object"},"de.mittwald.v1.conversation.Department":{"enum":["development","mail","infra","marketing","network","dataCenter","accounting","customerService","cloudHosting","software","generic","security"],"type":"string"},"de.mittwald.v1.conversation.Error":{"properties":{"message":{"type":"string"},"type":{"type":"string"}},"required":["type","message"],"type":"object"},"de.mittwald.v1.conversation.RequestedFile":{"properties":{"id":{"format":"uuid","type":"string"},"status":{"enum":["requested"],"type":"string"}},"required":["id","status"],"type":"object"},"de.mittwald.v1.conversation.File":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.conversation.RequestedFile"},{"$ref":"#/components/schemas/de.mittwald.v1.conversation.UploadedFile"}]},"de.mittwald.v1.conversation.UploadedFile":{"properties":{"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"status":{"enum":["uploaded"],"type":"string"},"type":{"type":"string"}},"required":["id","status","name","type"],"type":"object"},"de.mittwald.v1.conversation.Message":{"properties":{"conversationId":{"format":"uuid","type":"string"},"createdAt":{"format":"date-time","type":"string"},"createdBy":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.User"},"files":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.File"},"type":"array"},"internal":{"type":"boolean"},"messageContent":{"type":"string"},"messageId":{"format":"uuid","type":"string"},"type":{"enum":["MESSAGE"],"type":"string"}},"required":["messageId","conversationId","createdAt","type"],"type":"object"},"de.mittwald.v1.conversation.ShareableAggregateReference":{"oneOf":[{"properties":{"aggregate":{"enum":["user"],"type":"string"},"domain":{"enum":["user"],"type":"string"},"id":{"type":"string"}},"required":["id","aggregate","domain"],"type":"object"},{"properties":{"aggregate":{"enum":["customer"],"type":"string"},"domain":{"enum":["customer"],"type":"string"},"id":{"type":"string"}},"required":["id","aggregate","domain"],"type":"object"},{"properties":{"aggregate":{"enum":["project"],"type":"string"},"domain":{"enum":["project"],"type":"string"},"id":{"type":"string"}},"required":["id","aggregate","domain"],"type":"object"},{"properties":{"aggregate":{"enum":["placementgroup"],"type":"string"},"domain":{"enum":["project"],"type":"string"},"id":{"type":"string"}},"required":["id","aggregate","domain"],"type":"object"}]},"de.mittwald.v1.conversation.StatusUpdate":{"properties":{"conversationId":{"type":"string"},"createdAt":{"type":"string"},"internal":{"type":"boolean"},"messageContent":{"type":"string"},"meta":{"properties":{"user":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.User"}},"type":"object"},"type":{"enum":["STATUS_UPDATE"],"type":"string"}},"required":["conversationId","messageContent","createdAt","type"],"type":"object"},"de.mittwald.v1.conversation.User":{"properties":{"active":{"type":"boolean"},"avatarRefId":{"type":"string"},"clearName":{"type":"string"},"department":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.Department"},"userId":{"type":"string"}},"required":["userId"],"type":"object"},"de.mittwald.v1.strace.Data":{"properties":{"actualUrl":{"example":"https://www.mittwald.de/~b","type":"string"},"dbQueries":{"items":{"properties":{"query":{"description":"The whole DB query.","example":"SELECT * FROM my_table;","type":"string"},"stats":{"$ref":"#/components/schemas/de.mittwald.v1.strace.Statistics"},"warnLevel":{"description":"Alerts when the time, syscall count or occurrence count of this group are abnormal.","enum":["NO","WARN","SEVERE"],"type":"string"}},"required":["query","stats","warnLevel"],"type":"object"},"type":"array"},"dbStats":{"$ref":"#/components/schemas/de.mittwald.v1.strace.Statistics"},"fileOps":{"items":{"properties":{"filename":{"example":"my_file.php","type":"string"},"filepath":{"example":"/html/my-project","type":"string"},"stats":{"$ref":"#/components/schemas/de.mittwald.v1.strace.Statistics"},"warnLevel":{"description":"Alerts when the time, syscall count or occurrence count of this group are abnormal.","enum":["NO","WARN","SEVERE"],"type":"string"}},"required":["stats","warnLevel"],"type":"object"},"type":"array"},"fileOpsStats":{"$ref":"#/components/schemas/de.mittwald.v1.strace.Statistics"},"miscStats":{"$ref":"#/components/schemas/de.mittwald.v1.strace.Statistics"},"networkingOps":{"items":{"properties":{"connectionType":{"enum":["UNKNOWN","PRIVATE","EXTERNAL"],"type":"string"},"description":{"description":"A short description of the network connection to provide additional context.","type":"string"},"ip":{"description":"IP address to which a connection was established.","type":"string"},"port":{"description":"Port to which a connection was established.","type":"integer"},"stats":{"$ref":"#/components/schemas/de.mittwald.v1.strace.Statistics"},"warnLevel":{"description":"Alerts when the time, syscall count or occurrence count of this group are abnormal.","enum":["NO","WARN","SEVERE"],"type":"string"}},"required":["ip","port","description","connectionType","stats","warnLevel"],"type":"object"},"type":"array"},"networkingStats":{"$ref":"#/components/schemas/de.mittwald.v1.strace.Statistics"},"slowdownFactor":{"description":"Shows how much slower the websites TTFB was when it got traced (1.0 = 100% = same TTFB).","example":1.5,"type":"number"},"ttfbMs":{"description":"Time to first byte in milliseconds while tracing the website.","example":1532,"type":"integer"}},"required":["actualUrl","ttfbMs","slowdownFactor","fileOpsStats","networkingStats","dbStats","miscStats","fileOps","networkingOps","dbQueries"],"type":"object"},"de.mittwald.v1.strace.Error":{"properties":{"errorMessage":{"example":"wrong PHP version","type":"string"}},"required":["errorMessage"],"type":"object"},"de.mittwald.v1.strace.Statistics":{"properties":{"kernelMs":{"description":"Elapsed kernel space time in milliseconds.","example":1.2345,"type":"number"},"occurrences":{"description":"The number of times this group occurred.","example":25,"type":"integer"},"syscallCount":{"description":"Syscall count.","example":4321,"type":"integer"},"userspaceMs":{"description":"Elapsed user space time in milliseconds.","example":1.2345,"type":"number"}},"required":["kernelMs","userspaceMs","syscallCount","occurrences"],"type":"object"},"de.mittwald.v1.cronjob.CronjobCommand":{"properties":{"interpreter":{"example":"/usr/bin/bash","type":"string"},"parameters":{"example":"--debug","type":"string"},"path":{"example":"/html/my-wordpress/script.sh","type":"string"}},"required":["interpreter","path"],"type":"object"},"de.mittwald.v1.cronjob.Cronjob":{"properties":{"active":{"type":"boolean"},"appId":{"format":"uuid","type":"string"},"createdAt":{"format":"date-time","type":"string"},"description":{"example":"i am a cronjob","type":"string"},"destination":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.cronjob.CronjobUrl"},{"$ref":"#/components/schemas/de.mittwald.v1.cronjob.CronjobCommand"}]},"email":{"format":"email","type":"string"},"id":{"format":"uuid","type":"string"},"interval":{"example":"*/5 * * * *","type":"string"},"latestExecution":{"$ref":"#/components/schemas/de.mittwald.v1.cronjob.CronjobExecution"},"nextExecutionTime":{"format":"date-time","type":"string"},"projectId":{"format":"uuid","type":"string"},"shortId":{"example":"cron-bd26li","type":"string"},"timeout":{"maximum":86400,"minimum":1,"type":"number"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","appId","shortId","interval","active","createdAt","updatedAt","description","destination","timeout"],"type":"object"},"de.mittwald.v1.cronjob.CronjobExecution":{"properties":{"abortedBy":{"properties":{"id":{"format":"uuid","type":"string"}},"type":"object"},"durationInMilliseconds":{"example":12374,"format":"int64","type":"integer"},"end":{"format":"date-time","type":"string"},"executionEnd":{"deprecated":true,"format":"date-time","type":"string"},"executionStart":{"deprecated":true,"format":"date-time","type":"string"},"id":{"example":"cron-bd26li-28027320","type":"string"},"logPath":{"example":"/var/log/cronjobs/cron-bd26li-28027320.log","type":"string"},"start":{"format":"date-time","type":"string"},"status":{"enum":["Complete","Failed","AbortedBySystem","Pending","Running","AbortedByUser","TimedOut"],"type":"string"},"successful":{"type":"boolean"},"triggeredBy":{"properties":{"id":{"format":"uuid","type":"string"}},"type":"object"}},"required":["id","status","successful"],"type":"object"},"de.mittwald.v1.cronjob.CronjobRequest":{"properties":{"active":{"type":"boolean"},"appId":{"format":"uuid","type":"string"},"description":{"example":"i am a cronjob","type":"string"},"destination":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.cronjob.CronjobUrl"},{"$ref":"#/components/schemas/de.mittwald.v1.cronjob.CronjobCommand"}]},"email":{"format":"email","type":"string"},"interval":{"example":"*/5 * * * *","type":"string"},"timeout":{"maximum":86400,"minimum":1,"type":"number"}},"required":["appId","description","destination","interval","active","timeout"],"type":"object"},"de.mittwald.v1.cronjob.CronjobUrl":{"properties":{"url":{"example":"https://mydomain.com","type":"string"}},"required":["url"],"type":"object"},"de.mittwald.v1.customer.Category":{"properties":{"id":{"type":"string"},"isPublic":{"type":"boolean"},"name":{"type":"string"},"useAgencyDomainPrices":{"type":"boolean"},"useAgencySslPrices":{"type":"boolean"}},"required":["id","name","isPublic","useAgencyDomainPrices","useAgencySslPrices"],"type":"object"},"de.mittwald.v1.customer.Contact":{"properties":{"address":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Address"},"company":{"type":"string"},"emailAddress":{"format":"email","type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"phoneNumbers":{"items":{"type":"string"},"type":"array"},"salutation":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Salutation"},"title":{"type":"string"},"useFormalTerm":{"type":"boolean"}},"required":["address","salutation"],"type":"object"},"de.mittwald.v1.customer.CustomerMeta":{"properties":{"avatarRefId":{"type":"string"},"customerId":{"type":"string"},"name":{"type":"string"}},"required":["customerId","name"],"type":"object"},"de.mittwald.v1.customer.Role":{"description":"the role within a customer","enum":["owner","member","accountant"],"type":"string"},"de.mittwald.v1.customer.Customer":{"properties":{"activeSuspension":{"properties":{"createdAt":{"format":"date-time","type":"string"}},"required":["createdAt"],"type":"object"},"avatarRefId":{"type":"string"},"categoryId":{"type":"string"},"creationDate":{"format":"date-time","type":"string"},"customerId":{"type":"string"},"customerNumber":{"type":"string"},"executingUserRoles":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.customer.Role"},"type":"array"},"isBanned":{"type":"boolean"},"isInDefaultOfPayment":{"type":"boolean"},"memberCount":{"minimum":0,"type":"integer"},"name":{"type":"string"},"owner":{"$ref":"#/components/schemas/de.mittwald.v1.customer.Contact"},"projectCount":{"minimum":0,"type":"integer"},"vatId":{"type":"string"},"vatIdValidationState":{"enum":["valid","invalid","pending","unspecified"],"type":"string"}},"required":["customerId","customerNumber","name","creationDate","memberCount","projectCount"],"type":"object"},"de.mittwald.v1.database.CreateMySqlDatabase":{"properties":{"characterSettings":{"$ref":"#/components/schemas/de.mittwald.v1.database.characterSettings"},"description":{"type":"string"},"projectId":{"format":"uuid","type":"string"},"version":{"type":"string"}},"required":["projectId","version","description"],"type":"object"},"de.mittwald.v1.database.CreateMySqlUser":{"properties":{"accessIpMask":{"type":"string"},"accessLevel":{"enum":["full","readonly"],"type":"string"},"databaseId":{"format":"uuid","type":"string"},"description":{"type":"string"},"externalAccess":{"type":"boolean"},"password":{"type":"string"}},"required":["databaseId","password","description","accessLevel"],"type":"object"},"de.mittwald.v1.database.CreateMySqlUserWithDatabase":{"properties":{"accessIpMask":{"type":"string"},"accessLevel":{"enum":["full","readonly"],"type":"string"},"externalAccess":{"type":"boolean"},"password":{"type":"string"}},"required":["password","accessLevel"],"type":"object"},"de.mittwald.v1.database.DatabaseStatus":{"enum":["pending","ready","migrating","importing","error"],"type":"string"},"de.mittwald.v1.database.MySqlCharacterSettings":{"properties":{"collations":{"example":["utf8_general_ci","utf8_bin","utf8_unicode_ci"],"items":{"type":"string"},"type":"array"},"name":{"example":"utf8","type":"string"},"versionId":{"example":"mysql57","type":"string"}},"required":["name","collations","versionId"],"type":"object"},"de.mittwald.v1.database.characterSettings":{"properties":{"characterSet":{"type":"string"},"collation":{"type":"string"}},"required":["characterSet","collation"],"type":"object"},"de.mittwald.v1.database.MySqlDatabase":{"properties":{"characterSettings":{"$ref":"#/components/schemas/de.mittwald.v1.database.characterSettings"},"createdAt":{"format":"date-time","type":"string"},"description":{"type":"string"},"finalizers":{"items":{"minLength":1,"type":"string"},"type":"array","uniqueItems":true},"hostname":{"type":"string"},"id":{"format":"uuid","type":"string"},"isReady":{"type":"boolean"},"isShared":{"type":"boolean"},"name":{"type":"string"},"projectId":{"format":"uuid","type":"string"},"status":{"$ref":"#/components/schemas/de.mittwald.v1.database.DatabaseStatus"},"statusSetAt":{"format":"date-time","type":"string"},"storageUsageInBytes":{"type":"integer"},"storageUsageInBytesSetAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"version":{"type":"string"}},"required":["id","createdAt","updatedAt","projectId","name","description","version","characterSettings","hostname","isShared","isReady","storageUsageInBytes","storageUsageInBytesSetAt","status","statusSetAt"],"type":"object"},"de.mittwald.v1.database.PhpMyAdminURL":{"properties":{"url":{"type":"string"}},"required":["url"],"type":"object"},"de.mittwald.v1.database.MySqlUser":{"properties":{"accessIpMask":{"type":"string"},"accessLevel":{"enum":["full","readonly"],"type":"string"},"createdAt":{"format":"date-time","type":"string"},"databaseId":{"format":"uuid","type":"string"},"description":{"type":"string"},"disabled":{"type":"boolean"},"externalAccess":{"type":"boolean"},"id":{"format":"uuid","type":"string"},"mainUser":{"type":"boolean"},"name":{"type":"string"},"passwordUpdatedAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","createdAt","updatedAt","databaseId","name","passwordUpdatedAt","mainUser","disabled","accessLevel","externalAccess"],"type":"object"},"de.mittwald.v1.database.MySqlVersion":{"properties":{"disabled":{"type":"boolean"},"id":{"type":"string"},"name":{"type":"string"},"number":{"type":"string"}},"required":["id","name","number","disabled"],"type":"object"},"de.mittwald.v1.database.RedisDatabaseConfiguration":{"description":"The configuration for a RedisDatabase.","properties":{"additionalFlags":{"description":"Additional flags passed to the database.","items":{"minLength":1,"type":"string"},"type":"array","uniqueItems":true},"maxMemory":{"description":"The database's maximum memory. This may be a number, optionally suffixed by one of the IEC binary suffixes `Ki`, `Mi` or `Gi`.","example":"64Mi","type":"string"},"maxMemoryPolicy":{"description":"The database's key eviction policy. See the [Redis documentation on key evictions](https://redis.io/docs/reference/eviction/) for more information.","example":"allkeys-lru","type":"string"},"persistent":{"description":"Persistent status of the database.","type":"boolean"}},"type":"object"},"de.mittwald.v1.database.RedisDatabase":{"example":{"configuration":{"additionalFlags":["--tcp-keepalive","300"],"maxMemory":"16Mi","maxMemoryPolicy":"allkeys-lru","persistent":"true"},"createdAt":"2023-03-28T13:15:00.000Z","description":"My first RedisDatabase!","finalizers":["app:appinstallation:28471edf-d266-4d79-8ca8-169e330746db"],"hostname":"redis-xxxxxx.pg-example.db.example.com","id":"fcfe9aea-84d5-46eb-ac6f-a0ccffa908b1","name":"redis_xxxxxx","port":6379,"projectId":"9f2bddf1-dea6-4441-b4fe-a22ff39caff8","status":"error","statusSetAt":"2024-03-05T9:26:32.000Z","storageUsageInBytes":10485760,"storageUsageInBytesSetAt":"2024-03-05T9:26:32.000Z","updatedAt":"2023-03-29T15:50:10.000Z","version":"7.0"},"properties":{"configuration":{"$ref":"#/components/schemas/de.mittwald.v1.database.RedisDatabaseConfiguration"},"createdAt":{"format":"date-time","type":"string"},"description":{"type":"string"},"finalizers":{"items":{"minLength":1,"type":"string"},"type":"array","uniqueItems":true},"hostname":{"type":"string"},"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"port":{"type":"integer"},"projectId":{"format":"uuid","type":"string"},"status":{"$ref":"#/components/schemas/de.mittwald.v1.database.DatabaseStatus"},"statusSetAt":{"format":"date-time","type":"string"},"storageUsageInBytes":{"type":"integer"},"storageUsageInBytesSetAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"version":{"type":"string"}},"required":["id","projectId","version","hostname","port","description","createdAt","updatedAt","name","storageUsageInBytes","storageUsageInBytesSetAt","status","statusSetAt"],"type":"object"},"de.mittwald.v1.database.RedisVersion":{"properties":{"disabled":{"type":"boolean"},"id":{"type":"string"},"name":{"type":"string"},"number":{"type":"string"}},"required":["id","name","number","disabled"],"type":"object"},"de.mittwald.v1.dns.RecordCNAME":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordUnset"},{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordCNAMEComponent"}]},"de.mittwald.v1.dns.RecordCNAMEComponent":{"properties":{"fqdn":{"format":"idn-dnsname","type":"string"},"settings":{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordSettings"}},"required":["settings","fqdn"],"type":"object"},"de.mittwald.v1.dns.RecordCombinedA":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordUnset"},{"$ref":"#/components/schemas/de.mittwald.v1.dns.CombinedACustom"},{"$ref":"#/components/schemas/de.mittwald.v1.dns.CombinedAManaged"}]},"de.mittwald.v1.dns.CombinedAManagedAAAARecord":{"format":"ipv6","type":"string"},"de.mittwald.v1.dns.CombinedAManagedARecord":{"format":"ipv4","type":"string"},"de.mittwald.v1.dns.CombinedACustom":{"properties":{"a":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.dns.CombinedAManagedARecord"},"maxItems":10,"type":"array"},"aaaa":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.dns.CombinedAManagedAAAARecord"},"maxItems":10,"type":"array"},"settings":{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordSettings"}},"required":["settings","a","aaaa"],"type":"object"},"de.mittwald.v1.dns.CombinedAManaged":{"properties":{"managedBy":{"oneOf":[{"properties":{"ingressId":{"format":"uuid","type":"string"}},"required":["ingressId"],"type":"object"}]}},"required":["managedBy"],"type":"object"},"de.mittwald.v1.dns.RecordMX":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordUnset"},{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordMXManaged"},{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordMXCustom"}]},"de.mittwald.v1.dns.RecordMXCustom":{"properties":{"records":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordMXRecord"},"maxItems":10,"minItems":1,"type":"array","uniqueItems":true},"settings":{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordSettings"}},"required":["settings","records"],"type":"object"},"de.mittwald.v1.dns.RecordMXManaged":{"properties":{"managed":{"type":"boolean"}},"required":["managed"],"type":"object"},"de.mittwald.v1.dns.RecordMXRecord":{"properties":{"fqdn":{"format":"idn-dnsname","maxLength":50,"minLength":1,"type":"string"},"priority":{"maximum":100,"minimum":0,"type":"integer"}},"required":["priority","fqdn"],"type":"object"},"de.mittwald.v1.dns.RecordSettings":{"properties":{"ttl":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.dns.TtlSeconds"},{"$ref":"#/components/schemas/de.mittwald.v1.dns.TtlAuto"}]}},"type":"object"},"de.mittwald.v1.dns.RecordSRV":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordUnset"},{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordSRVComponent"}]},"de.mittwald.v1.dns.RecordSRVComponent":{"additionalProperties":false,"properties":{"records":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordSRVRecord"},"minItems":1,"type":"array"},"settings":{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordSettings"}},"required":["settings","records"],"type":"object"},"de.mittwald.v1.dns.RecordSRVRecord":{"additionalProperties":false,"properties":{"fqdn":{"format":"idn-dnsname","maxLength":50,"minLength":1,"type":"string"},"port":{"maximum":65535,"minimum":0,"type":"integer"},"priority":{"maximum":65535,"minimum":0,"type":"integer"},"weight":{"maximum":65535,"minimum":0,"type":"integer"}},"required":["port","fqdn"],"type":"object"},"de.mittwald.v1.dns.RecordTXT":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordUnset"},{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordTXTComponent"}]},"de.mittwald.v1.dns.RecordTXTComponent":{"additionalProperties":false,"properties":{"entries":{"items":{"maxLength":2048,"type":"string"},"maxItems":20,"type":"array"},"settings":{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordSettings"}},"required":["settings","entries"],"type":"object"},"de.mittwald.v1.dns.RecordUnset":{"additionalProperties":false,"properties":{},"type":"object"},"de.mittwald.v1.dns.TtlAuto":{"properties":{"auto":{"description":"this will always be true","type":"boolean"}},"required":["auto"],"type":"object"},"de.mittwald.v1.dns.TtlSeconds":{"properties":{"seconds":{"maximum":86400,"minimum":300,"type":"integer"}},"required":["seconds"],"type":"object"},"de.mittwald.v1.dns.Zone":{"properties":{"domain":{"type":"string"},"id":{"format":"uuid","type":"string"},"recordSet":{"properties":{"cname":{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordCNAME"},"combinedARecords":{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordCombinedA"},"mx":{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordMX"},"srv":{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordSRV"},"txt":{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordTXT"}},"required":["combinedARecords","cname","mx","txt","srv"],"type":"object"}},"required":["id","domain","recordSet"],"type":"object"},"de.mittwald.v1.domain.AuthCode":{"properties":{"expires":{"format":"date-time","type":"string"},"value":{"type":"string"}},"required":["value"],"type":"object"},"de.mittwald.v1.domain.AuthCode2":{"properties":{"expires":{"format":"date-time","type":"string"}},"required":["expires"],"type":"object"},"de.mittwald.v1.domain.CreateDomainHandleData":{"properties":{"adminC":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.domain.HandleField"},"type":"array"},"ownerC":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.domain.HandleField"},"type":"array"}},"required":["ownerC"],"type":"object"},"de.mittwald.v1.domain.Domain":{"properties":{"authCode":{"$ref":"#/components/schemas/de.mittwald.v1.domain.AuthCode"},"authCode2":{"$ref":"#/components/schemas/de.mittwald.v1.domain.AuthCode2"},"connected":{"type":"boolean"},"deleted":{"type":"boolean"},"domain":{"format":"naked-domain","type":"string"},"domainId":{"format":"uuid","type":"string"},"handles":{"properties":{"adminC":{"$ref":"#/components/schemas/de.mittwald.v1.domain.HandleReadable"},"ownerC":{"$ref":"#/components/schemas/de.mittwald.v1.domain.HandleReadable"}},"required":["ownerC"],"type":"object"},"nameservers":{"items":{"format":"idn-hostname","type":"string"},"type":"array","uniqueItems":true},"processes":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.domain.Process"},"type":"array"},"projectId":{"format":"uuid","type":"string"},"transferInAuthCode":{"type":"string"},"usesDefaultNameserver":{"type":"boolean"}},"required":["domainId","domain","projectId","deleted","nameservers","handles","connected","usesDefaultNameserver","hasAuthCode"],"type":"object"},"de.mittwald.v1.domain.HandleData":{"properties":{"handleFields":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.domain.HandleField"},"type":"array"},"handleRef":{"type":"string"}},"type":"object"},"de.mittwald.v1.domain.HandleField":{"properties":{"name":{"type":"string"},"value":{"pattern":"^[0-9a-zA-ZÀ-ÖØ-öø-ÿ /&()+,.@_-]+$","type":"string"}},"required":["name","value"],"type":"object"},"de.mittwald.v1.domain.HandleReadable":{"properties":{"current":{"$ref":"#/components/schemas/de.mittwald.v1.domain.HandleData"},"desired":{"$ref":"#/components/schemas/de.mittwald.v1.domain.HandleData"}},"required":["current"],"type":"object"},"de.mittwald.v1.domain.Process":{"properties":{"error":{"type":"string"},"lastUpdate":{"format":"date-time","type":"string"},"processType":{"$ref":"#/components/schemas/de.mittwald.v1.domain.ProcessType"},"state":{"$ref":"#/components/schemas/de.mittwald.v1.domain.ProcessState"},"status":{"type":"string"},"statusCode":{"type":"string"},"transactionId":{"type":"string"}},"required":["transactionId","processType","state","lastUpdate"],"type":"object"},"de.mittwald.v1.domain.ProcessState":{"enum":["UNSPECIFIED","REQUESTED","FAILED"],"type":"string"},"de.mittwald.v1.domain.ProcessType":{"enum":["UNSPECIFIED","REGISTER","TRANSFER","DELETE","TRANSIT","RESTORE","UPDATE","TRANSFER_OUT","OWNER_CHANGE","DECLARE_REQUESTED"],"type":"string"},"de.mittwald.v1.domain.Registrar":{"enum":["INTERNETX","DENIC","HEXONET"],"type":"string"},"de.mittwald.v1.domain.TopLevel":{"properties":{"irtp":{"type":"boolean"},"rgpDays":{"minimum":0,"type":"integer"},"tld":{"type":"string"},"transferAuthCodeRequired":{"deprecated":true,"type":"boolean"},"transferAuthentication":{"$ref":"#/components/schemas/de.mittwald.v1.domain.TransferAuthentication"}},"required":["tld","rgpDays","irtp","transferAuthCodeRequired","transferAuthentication"],"type":"object"},"de.mittwald.v1.domain.TransferAuthentication":{"enum":["unspecified","code","email","push"],"type":"string"},"de.mittwald.v1.marketplace.Contributor":{"properties":{"customerId":{"format":"uuid","type":"string"},"email":{"type":"string"},"id":{"format":"uuid","type":"string"},"logoRefId":{"type":"string"},"name":{"type":"string"},"phone":{"type":"string"},"state":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ContributorState"},"url":{"type":"string"}},"required":["id","customerId","state","name"],"type":"object"},"de.mittwald.v1.marketplace.ContributorState":{"enum":["enabled","disabled"],"type":"string"},"de.mittwald.v1.marketplace.Extension":{"properties":{"blocked":{"type":"boolean"},"context":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.Context"},"contributorId":{"format":"uuid","type":"string"},"description":{"type":"string"},"detailedDescriptions":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.DetailedDescriptions"},"disabled":{"type":"boolean"},"frontendComponents":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ExternalComponent"},"type":"array"},"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"scopes":{"items":{"type":"string"},"type":"array"},"state":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ExtensionState"},"support":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.SupportMeta"},"tags":{"items":{"type":"string"},"minItems":0,"type":"array"}},"required":["id","contributorId","support","state","name","description","tags","context","scopes","disabled","blocked"],"type":"object"},"de.mittwald.v1.marketplace.Context":{"enum":["project","customer"],"type":"string"},"de.mittwald.v1.marketplace.ExtensionInstance":{"properties":{"aggregateReference":{"properties":{"aggregate":{"type":"string"},"domain":{"type":"string"},"id":{"format":"uuid","type":"string"}},"required":["id","domain","aggregate"],"type":"object"},"consentedScopes":{"items":{"type":"string"},"type":"array"},"createdAt":{"format":"date-time","type":"string"},"disabled":{"default":false,"type":"boolean"},"extensionId":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"}},"required":["id","extensionId","disabled","consentedScopes","aggregateReference"],"type":"object"},"de.mittwald.v1.marketplace.ExtensionState":{"deprecated":true,"description":"deprecated","enum":["enabled","blocked","disabled"],"type":"string"},"de.mittwald.v1.marketplace.ExternalComponent":{"properties":{"name":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"type":"object"},"de.mittwald.v1.marketplace.PublicKey":{"properties":{"algorithm":{"example":"Ed25519","type":"string"},"key":{"description":"base64 encoded public key","format":"byte","type":"string"},"serial":{"format":"uuid","type":"string"}},"required":["serial","algorithm","key"],"type":"object"},"de.mittwald.v1.marketplace.SupportMeta":{"properties":{"email":{"example":"a.lovelace@example.com","type":"string"},"phone":{"type":"string"}},"type":"object"},"de.mittwald.v1.fee.FeeStrategy":{"description":"A strategy for fees of resources.","oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.fee.OneTimePaymentFeeStrategy"},{"$ref":"#/components/schemas/de.mittwald.v1.fee.PeriodBasedFeeStrategy"}]},"de.mittwald.v1.fee.OneTimePaymentFeeStrategy":{"description":"A strategy for fees that occur once.","properties":{"price":{"description":"The one-time price in Euro Cents.","type":"number"}},"required":["price"],"type":"object"},"de.mittwald.v1.fee.PeriodBasedFeeStrategy":{"description":"A strategy for fees that occur periodically","properties":{"periods":{"items":{"properties":{"feeValidFrom":{"format":"date-time","type":"string"},"feeValidUntil":{"format":"date-time","type":"string"},"monthlyPrice":{"description":"The monthly price in Euro Cents.","type":"number"}},"required":["monthlyPrice"],"type":"object"},"type":"array"}},"required":["periods"],"type":"object"},"de.mittwald.v1.fee.ResourceFee":{"description":"A Fee of a Resource","properties":{"feeStrategy":{"$ref":"#/components/schemas/de.mittwald.v1.fee.FeeStrategy"},"id":{"description":"The id of the given Resource","example":"1241a1de-b633-4e6e-9aa5-7e878ccd6864","type":"string"}},"required":["id"],"type":"object"},"de.mittwald.v1.file.FileMeta":{"properties":{"friendlyURL":{"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6/me.jpeg","type":"string"},"id":{"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6","format":"uuid","type":"string"},"mimeType":{"example":"image/jpeg","type":"string"},"name":{"example":"me.jpeg","type":"string"},"sizeInBytes":{"example":300,"type":"integer"},"type":{"deprecated":true,"description":"deprecated, see mimeType","example":"image/jpeg","type":"string"}},"required":["id","name","type","friendlyURL","sizeInBytes","mimeType"],"type":"object"},"de.mittwald.v1.file.FileType":{"properties":{"extensions":{"items":{"example":[".jpe",".jpeg",".jpg"],"type":"string"},"type":"array"},"mimeType":{"example":"image/jpeg","type":"string"}},"required":["mimeType","extensions"],"type":"object"},"de.mittwald.v1.file.FileUploadRules":{"properties":{"extensions":{"items":{"example":[".png",".jpeg",".jpg"],"type":"string"},"type":"array"},"fileTypes":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.file.FileType"},"type":"array"},"maxSizeInBytes":{"example":1000000,"type":"integer"},"maxSizeInKB":{"deprecated":true,"description":"deprecated, see maxSizeInBytes","example":1000,"type":"integer"},"mimeTypes":{"items":{"example":["image/png","image/jpeg"],"type":"string"},"type":"array"},"properties":{"properties":{"imageDimensions":{"properties":{"max":{"properties":{"height":{"type":"integer"},"width":{"type":"integer"}},"type":"object"},"min":{"properties":{"height":{"type":"integer"},"width":{"type":"integer"}},"type":"object"}},"type":"object"}},"type":"object"}},"required":["maxSizeInBytes","maxSizeInKB","mimeTypes","fileTypes","extensions"],"type":"object"},"de.mittwald.v1.ingress.Ingress":{"properties":{"dnsValidationErrors":{"description":"A list of errors that occurred while validating the ingress's dns before requesting a certificate.","items":{"enum":["ERROR_UNSPECIFIED","ERROR_QUAD_A","ERROR_NO_A_RECORD","ERROR_ACME_CERTIFICATE_REQUEST_DEADLINE_EXCEEDED"],"type":"string"},"type":"array"},"hostname":{"format":"idn-hostname","type":"string"},"id":{"format":"uuid","type":"string"},"ips":{"properties":{"v4":{"items":{"format":"ipv4","type":"string"},"type":"array"}},"required":["v4"],"type":"object"},"isDefault":{"description":"Whether this ingress is the default ingress or not. A default ingress is automatically created, it cannot be deleted. There can be only one default ingress per project.","type":"boolean"},"isDomain":{"type":"boolean"},"isEnabled":{"type":"boolean"},"ownership":{"$ref":"#/components/schemas/de.mittwald.v1.ingress.Ownership"},"paths":{"description":"A list of paths. The default path `/` is always present and cannot be removed.","items":{"$ref":"#/components/schemas/de.mittwald.v1.ingress.Path"},"type":"array"},"projectId":{"format":"uuid","type":"string"},"tls":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.ingress.TlsAcme"},{"$ref":"#/components/schemas/de.mittwald.v1.ingress.TlsCertificate"}]}},"required":["id","hostname","projectId","isDefault","tls","paths","isEnabled","ips","dnsValidationErrors","ownership"],"type":"object"},"de.mittwald.v1.ingress.IngressDeprecated":{"properties":{"dnsValidationErrors":{"description":"A list of errors that occurred while validating the ingress's dns before requesting a certificate.","items":{"enum":["ERROR_UNSPECIFIED","ERROR_QUAD_A","ERROR_NO_A_RECORD","ERROR_ACME_CERTIFICATE_REQUEST_DEADLINE_EXCEEDED"],"type":"string"},"type":"array"},"hostname":{"format":"idn-hostname","type":"string"},"id":{"format":"uuid","type":"string"},"ips":{"properties":{"v4":{"items":{"format":"ipv4","type":"string"},"type":"array"}},"required":["v4"],"type":"object"},"isDefault":{"description":"Whether this ingress is the default ingress or not. A default ingress is automatically created, it cannot be deleted. There can be only one default ingress per project.","type":"boolean"},"isDomain":{"type":"boolean"},"isEnabled":{"type":"boolean"},"ownership":{"$ref":"#/components/schemas/de.mittwald.v1.ingress.Ownership"},"paths":{"description":"A list of paths. The default path `/` is always present and cannot be removed.","items":{"$ref":"#/components/schemas/de.mittwald.v1.ingress.Path"},"type":"array"},"projectId":{"format":"uuid","type":"string"},"tls":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.ingress.TlsAcmeDeprecated"},{"$ref":"#/components/schemas/de.mittwald.v1.ingress.TlsCertificate"}]}},"required":["id","hostname","projectId","isDefault","tls","paths","isEnabled","ips","dnsValidationErrors","ownership"],"type":"object"},"de.mittwald.v1.ingress.Ownership":{"properties":{"txtRecord":{"type":"string"},"verified":{"description":"Whether the domain ownership is verified or not.","type":"boolean"}},"required":["verified"],"type":"object"},"de.mittwald.v1.ingress.Path":{"properties":{"path":{"type":"string"},"target":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.ingress.TargetDirectory"},{"$ref":"#/components/schemas/de.mittwald.v1.ingress.TargetUrl"},{"$ref":"#/components/schemas/de.mittwald.v1.ingress.TargetInstallation"},{"$ref":"#/components/schemas/de.mittwald.v1.ingress.TargetUseDefaultPage"},{"$ref":"#/components/schemas/de.mittwald.v1.ingress.TargetContainer"}]}},"required":["path","target"],"type":"object"},"de.mittwald.v1.ingress.TargetContainer":{"properties":{"container":{"properties":{"id":{"format":"uuid","type":"string"},"portProtocol":{"description":"docker-compose port specification in format port/protocol (e.g. 8080/TCP)","format":"docker-network-port","type":"string"}},"required":["id","portProtocol"],"type":"object"}},"required":["container"],"type":"object"},"de.mittwald.v1.ingress.TargetDirectory":{"properties":{"directory":{"type":"string"}},"required":["directory"],"type":"object"},"de.mittwald.v1.ingress.TargetInstallation":{"properties":{"installationId":{"format":"uuid","type":"string"}},"required":["installationId"],"type":"object"},"de.mittwald.v1.ingress.TargetUrl":{"properties":{"url":{"format":"uri","type":"string"}},"required":["url"],"type":"object"},"de.mittwald.v1.ingress.TargetUseDefaultPage":{"properties":{"useDefaultPage":{"type":"boolean"}},"required":["useDefaultPage"],"type":"object"},"de.mittwald.v1.ingress.TlsAcme":{"additionalProperties":false,"properties":{"acme":{"description":"Has to be `true`, as ssl cannot be deactivated.","type":"boolean"},"isCreated":{"type":"boolean"},"requestDeadline":{"format":"date-time","type":"string"}},"required":["acme","isCreated"],"type":"object"},"de.mittwald.v1.ingress.TlsAcmeDeprecated":{"additionalProperties":false,"properties":{"acme":{"type":"boolean"}},"required":["acme"],"type":"object"},"de.mittwald.v1.ingress.TlsCertificate":{"additionalProperties":false,"properties":{"certificateId":{"format":"uuid","type":"string"}},"required":["certificateId"],"type":"object"},"de.mittwald.v1.invoice.BankingInformation":{"properties":{"accountHolder":{"example":"Ada Lovelace","type":"string"},"bic":{"example":"DEUTDEDB123","type":"string"},"iban":{"example":"DE12345678901234567890","type":"string"}},"required":["iban","accountHolder"],"type":"object"},"de.mittwald.v1.invoice.Cancellation":{"properties":{"cancellationId":{"format":"uuid","type":"string"},"cancelledAt":{"format":"date-time","type":"string"},"correctionNumber":{"example":"RG1234567","type":"string"},"pdfId":{"format":"uuid","type":"string"},"reason":{"example":"Kulanz","type":"string"}},"required":["pdfId","correctionNumber","cancelledAt","cancellationId"],"type":"object"},"de.mittwald.v1.invoice.ContractInvoiceDefinition":{"properties":{"contractId":{"format":"uuid","type":"string"},"items":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.ContractItemInvoiceDefinition"},"type":"array"}},"required":["contractId","items"],"type":"object"},"de.mittwald.v1.invoice.ContractItemInvoiceDefinition":{"properties":{"contractItemId":{"format":"uuid","type":"string"},"isDue":{"type":"boolean"},"serviceDate":{"format":"date-time","type":"string"},"servicePeriod":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.DatePeriod"},"vatRate":{"example":19,"type":"integer"}},"required":["contractItemId","vatRate","servicePeriod"],"type":"object"},"de.mittwald.v1.invoice.CorrectionDefinition":{"properties":{"contractItemId":{"format":"uuid","type":"string"},"creditPeriod":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.DatePeriod"}},"required":["contractItemId","creditPeriod"],"type":"object"},"de.mittwald.v1.invoice.DatePeriod":{"properties":{"end":{"format":"date-time","type":"string"},"start":{"format":"date-time","type":"string"}},"required":["start","end"],"type":"object"},"de.mittwald.v1.invoice.Error":{"properties":{"message":{"example":"Whoops, something went wrong.","type":"string"},"type":{"example":"InternalServerError","type":"string"}},"required":["type","message"],"type":"object"},"de.mittwald.v1.invoice.InvoiceItem":{"properties":{"additionalDescription":{"example":"Short-ID: \"s-123456\"","type":"string"},"contractItemId":{"format":"uuid","type":"string"},"description":{"example":"Space-Server: \"Mein Space-Server\"","type":"string"},"itemCancelledOrCorrectedBy":{"items":{"properties":{"sourceInvoiceId":{"format":"uuid","type":"string"},"sourceInvoiceItemId":{"format":"uuid","type":"string"}},"type":"object"},"type":"array"},"itemId":{"format":"uuid","type":"string"},"price":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.Price"},"reference":{"properties":{"sourceInvoiceId":{"format":"uuid","type":"string"},"sourceInvoiceItemId":{"format":"uuid","type":"string"}},"required":["sourceInvoiceId","sourceInvoiceItemId"],"type":"object"},"serviceDate":{"format":"date-time","type":"string"},"servicePeriod":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.DatePeriod"},"vatRate":{"example":19,"type":"number"}},"required":["itemId","price","vatRate","contractItemId","description"],"type":"object"},"de.mittwald.v1.invoice.Invoice":{"properties":{"amountPaid":{"example":500,"type":"number"},"cancellation":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.Cancellation"},"cancellationOf":{"description":"The ID of the invoice that this invoice cancels.","format":"uuid","type":"string"},"currency":{"example":"EUR","type":"string"},"customerId":{"example":"e0a3b0e0-0e0e-0e0e-0e0e-0e0e0e0e0e0e","type":"string"},"date":{"format":"date-time","type":"string"},"groups":{"items":{"properties":{"contractId":{"format":"uuid","type":"string"},"description":{"example":"Space-Server: \"Mein Space-Server\"","type":"string"},"items":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.InvoiceItem"},"type":"array"}},"required":["items"],"type":"object"},"type":"array"},"id":{"format":"uuid","type":"string"},"invoiceNumber":{"example":"RG1234567","type":"string"},"invoiceType":{"enum":["REGULAR","REISSUE","CORRECTION","CANCELLATION"],"type":"string"},"paymentSettings":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.PaymentSettings"},"pdfId":{"format":"uuid","type":"string"},"recipient":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.Recipient"},"status":{"enum":["NEW","CONFIRMED","DENIED","PAID","PARTIALLY_PAID","OVERPAID"],"type":"string"},"totalGross":{"example":595,"type":"number"},"totalNet":{"example":500,"type":"number"},"vatId":{"example":"DE123456789","type":"string"}},"required":["id","customerId","invoiceNumber","date","pdfId","groups","status","amountPaid","recipient","totalNet","totalGross","currency","invoiceType"],"type":"object"},"de.mittwald.v1.invoice.InvoiceSettings":{"properties":{"additionalEmailRecipients":{"items":{"format":"email","type":"string"},"type":"array"},"debitPaymentStopUntil":{"format":"date-time","type":"string"},"id":{"example":"5f9b9b9b-9b9b-9b9b-9b9b-9b9b9b9b9b9b","type":"string"},"invoicePeriod":{"example":1,"type":"integer"},"lastBankingInformation":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.BankingInformation"},"paymentSettings":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.PaymentSettings"},"printedInvoices":{"type":"boolean"},"recipient":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.Recipient"},"recipientSameAsOwner":{"type":"boolean"},"status":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.InvoiceSettingsStatus"},"type":"array"},"targetDay":{"example":15,"type":"integer"}},"required":["id"],"type":"object"},"de.mittwald.v1.invoice.InvoiceSettingsStatus":{"properties":{"message":{"example":"Unfortunately, we were unable to debit your account. Please update your account details.","type":"string"},"severity":{"enum":["success","info","warning","error"],"type":"string"},"type":{"enum":["returnDebitNote","returnDebitNoteWaitingForPayment"],"type":"string"}},"required":["severity","type","message"],"type":"object"},"de.mittwald.v1.invoice.PaymentSettingsDebit":{"properties":{"accountHolder":{"example":"Ada Lovelace","type":"string"},"bic":{"description":"Optional. Required for payments outside of the European Union.","example":"DEUTDEDB123","type":"string"},"iban":{"example":"DE12345678901234567890","type":"string"},"method":{"enum":["debit"],"type":"string"}},"required":["method","iban","accountHolder"],"type":"object"},"de.mittwald.v1.invoice.PaymentSettingsInvoice":{"properties":{"method":{"enum":["invoice"],"type":"string"}},"required":["method"],"type":"object"},"de.mittwald.v1.invoice.PaymentSettings":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.invoice.PaymentSettingsDebit"},{"$ref":"#/components/schemas/de.mittwald.v1.invoice.PaymentSettingsInvoice"}]},"de.mittwald.v1.invoice.Price":{"properties":{"currency":{"enum":["EUR"],"type":"string"},"value":{"example":1000,"type":"integer"}},"required":["value","currency"],"type":"object"},"de.mittwald.v1.invoice.Recipient":{"properties":{"address":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Address"},"company":{"example":"Mittwald CM Service GmbH & Co. KG","type":"string"},"emailAddress":{"format":"email","type":"string"},"firstName":{"example":"Ada","type":"string"},"lastName":{"example":"Lovelace","type":"string"},"phoneNumbers":{"items":{"example":"+49 123 4567890","type":"string"},"type":"array"},"salutation":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Salutation"},"title":{"example":"Dr.","type":"string"},"useFormalTerm":{"type":"boolean"}},"required":["address","salutation"],"type":"object"},"de.mittwald.v1.mail.CreateMailAddress":{"properties":{"address":{"format":"idn-email","type":"string"},"isCatchAll":{"type":"boolean"},"mailbox":{"properties":{"enableSpamProtection":{"type":"boolean"},"password":{"type":"string"},"quotaInBytes":{"description":"2 GB","example":2147483648,"minimum":-1,"type":"number"}},"required":["password","quotaInBytes","enableSpamProtection"],"type":"object"}},"required":["address","mailbox","isCatchAll"],"type":"object"},"de.mittwald.v1.mail.Deliverybox":{"properties":{"authenticationEnabled":{"type":"boolean"},"description":{"type":"string"},"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"passwordUpdatedAt":{"format":"date-time","type":"string"},"projectId":{"type":"string"},"sendingEnabled":{"type":"boolean"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","name","projectId","description","authenticationEnabled","sendingEnabled","passwordUpdatedAt","updatedAt"],"type":"object"},"de.mittwald.v1.mail.Error":{"properties":{"message":{"type":"string"},"type":{"type":"string"}},"required":["type","message"],"type":"object"},"de.mittwald.v1.mail.CreateForwardAddress":{"properties":{"address":{"format":"idn-email","type":"string"},"forwardAddresses":{"items":{"format":"idn-email","type":"string"},"type":"array"}},"required":["address","forwardAddresses"],"type":"object"},"de.mittwald.v1.mail.MailAddress":{"properties":{"address":{"format":"idn-email","type":"string"},"autoResponder":{"properties":{"active":{"type":"boolean"},"expiresAt":{"format":"date-time","type":"string"},"message":{"type":"string"},"startsAt":{"format":"date-time","type":"string"}},"required":["active"],"type":"object"},"forwardAddresses":{"items":{"format":"idn-email","type":"string"},"type":"array"},"id":{"format":"uuid","type":"string"},"isArchived":{"type":"boolean"},"isCatchAll":{"type":"boolean"},"mailbox":{"properties":{"name":{"type":"string"},"passwordUpdatedAt":{"format":"date-time","type":"string"},"sendingEnabled":{"type":"boolean"},"spamProtection":{"properties":{"active":{"type":"boolean"},"autoDeleteSpam":{"type":"boolean"},"folder":{"enum":["spam","inbox"],"type":"string"},"relocationMinSpamScore":{"maximum":10,"type":"integer"}},"required":["active","folder","relocationMinSpamScore","autoDeleteSpam"],"type":"object"},"storageInBytes":{"properties":{"current":{"properties":{"updatedAt":{"format":"date-time","type":"string"},"value":{"type":"number"}},"required":["value","updatedAt"],"type":"object"},"limit":{"type":"number"}},"required":["limit","current"],"type":"object"}},"required":["name","sendingEnabled","spamProtection","storageInBytes","passwordUpdatedAt"],"type":"object"},"projectId":{"type":"string"},"receivingDisabled":{"type":"boolean"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","receivingDisabled","address","isCatchAll","projectId","forwardAddresses","updatedAt","autoResponder","isArchived"],"type":"object"},"de.mittwald.v1.mail.MailsystemSettings":{"properties":{"imapClusterId":{"type":"string"},"mailDirectory":{"type":"string"},"rateLimitId":{"type":"string"}},"required":["imapClusterId","mailDirectory","rateLimitId"],"type":"object"},"de.mittwald.v1.mailmigration.AutoResponder":{"properties":{"active":{"type":"boolean"},"expiresAt":{"format":"date-time"},"message":{"type":"string"},"startsAt":{"format":"date-time"}},"required":["active","message"],"type":"object"},"de.mittwald.v1.mailmigration.MailSystemSettings":{"properties":{"imapClusterId":{"type":"string"},"mailDirectory":{"type":"string"},"rateLimitId":{"type":"string"}},"required":["imapClusterId","mailDirectory","rateLimitId"],"type":"object"},"de.mittwald.v1.mailmigration.Mailbox":{"properties":{"mailsystem":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.MailSystemSettings"},"name":{"type":"string"},"quotaInBytes":{"type":"integer"},"spamProtection":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.SpamProtection"}},"required":["name","quotaInBytes","mailsystem"],"type":"object"},"de.mittwald.v1.mailmigration.Migration":{"properties":{"aborted":{"type":"boolean"},"addresses":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.MigrationMailAddress"},"type":"array"},"finalizers":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.MigrationFinalizeJob"},"finished":{"type":"boolean"},"id":{"format":"uuid","type":"string"},"mailboxes":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.MigrationMailbox"},"type":"array"},"sourceCoabProjectId":{"type":"string"},"targetNexusProjectId":{"type":"string"}},"required":["id","targetNexusProjectId","sourceCoabProjectId","addresses","mailboxes","finalizers","finished","aborted"],"type":"object"},"de.mittwald.v1.mailmigration.MigrationFinalizeJob":{"properties":{"disableLegacyEntities":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.MigrationFinalizeJobDisableLegacyEntities"},"projectSettingMigrations":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.MigrationFinalizeJobProjectSetting"}},"type":"object"},"de.mittwald.v1.mailmigration.MigrationFinalizeJobDisableLegacyEntities":{"properties":{"addresses":{"items":{"type":"string"},"type":"array"},"mailboxNames":{"items":{"type":"string"},"type":"array"}},"required":["mailboxNames","addresses"],"type":"object"},"de.mittwald.v1.mailmigration.MigrationFinalizeJobProjectSetting":{"properties":{"blacklistEntries":{"items":{"type":"string"},"type":"array"},"whitelistEntries":{"items":{"type":"string"},"type":"array"}},"required":["blacklistEntries","whitelistEntries"],"type":"object"},"de.mittwald.v1.mailmigration.MigrationMailAddress":{"properties":{"address":{"type":"string"},"finished":{"type":"boolean"},"id":{"format":"uuid","type":"string"},"migrationJobs":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.MigrationMailAddressMigrationJob"},"preMigrationJobs":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.MigrationMailAddressPreMigrationJob"}},"required":["id","address","preMigrationJobs","migrationJobs","finished"],"type":"object"},"de.mittwald.v1.mailmigration.MigrateMailAddressCommandRequirements":{"properties":{"address":{"type":"string"},"autoResponder":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.AutoResponder"},"forwardAddresses":{"items":{"type":"string"},"type":"array"},"isCatchAll":{"type":"boolean"},"mailbox":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.Mailbox"},"projectId":{"type":"string"}},"required":["projectId"],"type":"object"},"de.mittwald.v1.mailmigration.MigrationMailAddressMigrationJob":{"properties":{"migrate":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.MigrationMailAddressMigrationJobMigrate"}},"required":["migrate"],"type":"object"},"de.mittwald.v1.mailmigration.MigrationMailAddressMigrationJobMigrate":{"properties":{"finished":{"type":"boolean"},"requirements":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.MigrateMailAddressCommandRequirements"}},"required":["requirements","finished"],"type":"object"},"de.mittwald.v1.mailmigration.MigrationMailAddressPreMigrationJob":{"properties":{"aliasSet":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.MigrationMailAddressPreMigrationJobAliasSet"},"type":"array"},"deliveryMigrations":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.MigrationMailAddressPreMigrationJobDeliveryMigration"},"type":"array"}},"required":["deliveryMigrations","aliasSet"],"type":"object"},"de.mittwald.v1.mailmigration.MigrationMailAddressPreMigrationJobAliasSet":{"properties":{"finished":{"type":"boolean"},"sourceCoabMailboxName":{"type":"string"}},"required":["sourceCoabMailboxName","finished"],"type":"object"},"de.mittwald.v1.mailmigration.MigrationMailAddressPreMigrationJobDeliveryMigration":{"properties":{"finished":{"type":"boolean"},"sourceCoabDeliveryMailbox":{"type":"string"},"sourceCoabDeliveryUid":{"type":"integer"},"targetDeliveryAddress":{"type":"string"}},"required":["sourceCoabDeliveryUid","sourceCoabDeliveryMailbox","targetDeliveryAddress","finished"],"type":"object"},"de.mittwald.v1.mailmigration.MigrationMailbox":{"properties":{"description":{"type":"string"},"finished":{"type":"boolean"},"id":{"format":"uuid","type":"string"},"migrationJobs":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.MigrationMailboxJob"},"name":{"type":"string"}},"required":["id","name","migrationJobs","finished"],"type":"object"},"de.mittwald.v1.mailmigration.MigrationMailboxJob":{"properties":{"migrate":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.MigrationMailboxJobMigrate"}},"required":["migrate"],"type":"object"},"de.mittwald.v1.mailmigration.MigrationMailboxJobMigrate":{"properties":{"requirements":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.MigrateMailboxCommandRequirements"}},"required":["requirements"],"type":"object"},"de.mittwald.v1.mailmigration.MigrateMailboxCommandRequirements":{"properties":{"mailbox":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.Mailbox"},"projectId":{"type":"string"}},"required":["projectId"],"type":"object"},"de.mittwald.v1.mailmigration.CheckMigrationIsPossibleErrorAlreadyExistingMailAddress":{"properties":{"address":{"type":"string"}},"required":["address"],"type":"object"},"de.mittwald.v1.mailmigration.CheckMigrationIsPossibleErrorAmbiguousMailAddressDelivery":{"properties":{"addresses":{"items":{"type":"string"},"type":"array"},"mailboxName":{"type":"string"}},"required":["mailboxName","addresses"],"type":"object"},"de.mittwald.v1.mailmigration.CheckMigrationIsPossibleErrorAmbiguousMailboxDelivery":{"properties":{"address":{"type":"string"},"mailboxes":{"items":{"type":"string"},"type":"array"}},"required":["address","mailboxes"],"type":"object"},"de.mittwald.v1.mailmigration.CheckMigrationIsPossibleErrorCatchAllMissingAddress":{"properties":{"address":{"type":"string"}},"required":["address"],"type":"object"},"de.mittwald.v1.mailmigration.CheckMigrationIsPossibleErrorCatchAllTargetWithoutAlias":{"properties":{"address":{"type":"string"},"mailboxName":{"type":"string"}},"required":["address","mailboxName"],"type":"object"},"de.mittwald.v1.mailmigration.CheckMigrationIsPossibleErrorMissingVerifiedIngress":{"properties":{"hostname":{"format":"idn-hostname","type":"string"}},"required":["hostname"],"type":"object"},"de.mittwald.v1.mailmigration.PossibleCheckErrors":{"properties":{"alreadyExistingMailAddress":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.CheckMigrationIsPossibleErrorAlreadyExistingMailAddress"},"type":"array"},"ambiguousMailAddressDelivery":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.CheckMigrationIsPossibleErrorAmbiguousMailAddressDelivery"},"type":"array"},"ambiguousMailboxDelivery":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.CheckMigrationIsPossibleErrorAmbiguousMailboxDelivery"},"type":"array"},"catchAllMissingAddress":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.CheckMigrationIsPossibleErrorCatchAllMissingAddress"},"type":"array"},"catchAllTargetWithoutAlias":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.CheckMigrationIsPossibleErrorCatchAllTargetWithoutAlias"},"type":"array"},"missingVerifiedIngress":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.CheckMigrationIsPossibleErrorMissingVerifiedIngress"},"type":"array"}},"required":["ambiguousMailAddressDelivery","ambiguousMailboxDelivery","catchAllMissingAddress","catchAllTargetWithoutAlias","missingVerifiedIngress","alreadyExistingMailAddress"],"type":"object"},"de.mittwald.v1.mailmigration.CheckMigrationIsPossibleErrorResponse":{"properties":{"errors":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.PossibleCheckErrors"}},"type":"object"},"de.mittwald.v1.mailmigration.SpamProtection":{"properties":{"active":{"type":"boolean"},"deleteSensitivity":{"type":"integer"},"folder":{"default":0,"description":"SPAM_FOLDER_INBOX_UNSPECIFIED = 0 SPAM_FOLDER_SPAM = 1","enum":[0,1],"type":"integer"},"keepDays":{"type":"integer"},"relocateSensitivity":{"type":"integer"}},"required":["active","folder","keepDays"],"type":"object"},"de.mittwald.v1.membership.CustomerInheritedRoles":{"enum":["notset","owner","member","accountant"],"type":"string"},"de.mittwald.v1.membership.CustomerInvite":{"properties":{"avatarRefId":{"description":"Reference to the Project's avatar.","format":"uuid","type":"string"},"customerId":{"description":"ID of the Customer the invite is for.","format":"uuid","type":"string"},"customerName":{"description":"Name of the Customer the user is invited to.","type":"string"},"id":{"description":"ID of the CustomerInvite.","format":"uuid","type":"string"},"information":{"$ref":"#/components/schemas/de.mittwald.v1.membership.InviteInformation"},"mailAddress":{"description":"Mail-address of the user the invite is for.","format":"email","type":"string"},"membershipExpiresAt":{"description":"Time the CustomerMembership should expire at.","format":"date-time","type":"string"},"message":{"description":"Message contained in the CustomerInvite.","type":"string"},"role":{"$ref":"#/components/schemas/de.mittwald.v1.membership.CustomerRoles"}},"required":["id","customerId","mailAddress","role","accepted","information","customerName"],"type":"object"},"de.mittwald.v1.membership.CustomerMembership":{"properties":{"customerId":{"description":"ID of the Customer the CustomerMembership is for.","format":"uuid","type":"string"},"email":{"description":"Email used by the invited user.","format":"email","type":"string"},"expiresAt":{"description":"Time the CustomerMembership should expire at.","format":"date-time","type":"string"},"id":{"description":"ID of the CustomerMembership.","format":"uuid","type":"string"},"inviteId":{"description":"ID of the CustomerInvite the membership was created from.","format":"uuid","type":"string"},"memberSince":{"description":"Date the CustomerMembership was created at.","format":"date-time","type":"string"},"mfa":{"description":"MFA activated by the user.","type":"boolean"},"role":{"$ref":"#/components/schemas/de.mittwald.v1.membership.CustomerRoles"},"userId":{"description":"ID of the user the CustomerMembership is for.","format":"uuid","type":"string"}},"required":["id","customerId","userId","role","email","mfa"],"type":"object"},"de.mittwald.v1.membership.CustomerRoles":{"enum":["notset","owner","member","accountant"],"type":"string"},"de.mittwald.v1.membership.InviteInformation":{"properties":{"invitationToken":{"description":"Token for authentication purposes.","type":"string"},"invitedBy":{"description":"ID of the user that created the invite.","format":"uuid","type":"string"},"userId":{"description":"ID of the user this invite is for.","format":"uuid","type":"string"}},"required":["invitedBy"],"type":"object"},"de.mittwald.v1.membership.ProjectInvite":{"properties":{"avatarRefId":{"description":"Reference to the Project's avatar.","format":"uuid","type":"string"},"id":{"description":"ID of the ProjectInvite.","format":"uuid","type":"string"},"information":{"$ref":"#/components/schemas/de.mittwald.v1.membership.InviteInformation"},"mailAddress":{"description":"Mail-address of the user the ProjectInvite is for.","format":"email","type":"string"},"membershipExpiresAt":{"description":"Time the ProjectMembership should expire at.","format":"date-time","type":"string"},"message":{"description":"Message contained in the ProjectInvite.","type":"string"},"projectDescription":{"description":"Description of the Project the invite is created for.","type":"string"},"projectId":{"description":"ID of the Project the invitation is for.","format":"uuid","type":"string"},"role":{"$ref":"#/components/schemas/de.mittwald.v1.membership.ProjectRoles"}},"required":["id","projectId","mailAddress","role","accepted","information","projectDescription"],"type":"object"},"de.mittwald.v1.membership.ProjectMembership":{"properties":{"email":{"description":"Email used by the invited user.","format":"email","type":"string"},"expiresAt":{"description":"Time the ProjectMembership should expire at.","format":"date-time","type":"string"},"id":{"description":"ID of the ProjectMembership.","format":"uuid","type":"string"},"inherited":{"description":"Whether the ProjectMembership was inherited from a CustomerMembership.","type":"boolean"},"inviteId":{"description":"ID of the ProjectInvite the membership was created from.","format":"uuid","type":"string"},"memberSince":{"description":"Date the projectMembership was created at.","format":"date-time","type":"string"},"mfa":{"description":"MFA activated by the user.","type":"boolean"},"projectId":{"description":"ID of the Project the membership is for.","format":"uuid","type":"string"},"role":{"$ref":"#/components/schemas/de.mittwald.v1.membership.ProjectRoles"},"userId":{"description":"ID of the user the ProjectMembership is for.","format":"uuid","type":"string"}},"required":["id","projectId","userId","role","inherited","email","mfa"],"type":"object"},"de.mittwald.v1.membership.ProjectRoles":{"enum":["notset","owner","emailadmin","external"],"type":"string"},"de.mittwald.v1.messaging.AggregateReference":{"properties":{"aggregate":{"type":"string"},"domain":{"type":"string"},"id":{"type":"string"},"parents":{"items":{"properties":{"aggregate":{"type":"string"},"domain":{"type":"string"},"id":{"type":"string"}},"required":["id","aggregate","domain"],"type":"object"},"type":"array"}},"required":["id","aggregate","domain"],"type":"object"},"de.mittwald.v1.messaging.Notification":{"properties":{"createdAt":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"read":{"type":"boolean"},"reference":{"$ref":"#/components/schemas/de.mittwald.v1.messaging.AggregateReference"},"severity":{"enum":["success","info","warning","error"],"type":"string"},"type":{"type":"string"}},"required":["id","type","reference","severity","read","createdAt"],"type":"object"},"de.mittwald.v1.messaging.NotificationStatus":{"enum":["read"],"type":"string"},"de.mittwald.v1.order.Addons":{"properties":{"hidden":{"type":"boolean"},"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"de.mittwald.v1.order.ArticleAddons":{"properties":{"hidden":{"type":"boolean"},"key":{"minLength":1,"type":"string"},"type":{"type":"string"},"value":{"minLength":1,"type":"string"},"valueMergeType":{"enum":["add","set"],"type":"string"}},"required":["key","value"],"type":"object"},"de.mittwald.v1.order.AttributeConfiguration":{"properties":{"key":{"example":"storage","type":"string"},"value":{"example":10,"type":"string"}},"required":["key"],"type":"object"},"de.mittwald.v1.order.CustomerOrder":{"properties":{"contractChangeContractId":{"format":"uuid","type":"string"},"customerId":{"example":"4317f5c5-1ea8-4084-a9f1-3a8e7e1c94ff","minLength":1,"type":"string"},"dueDate":{"format":"date-time","type":"string"},"invoicingPeriod":{"description":"Invoicing period in months","example":12,"type":"number"},"items":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.order.OrderItem"},"type":"array"},"orderDate":{"format":"date-time","type":"string"},"orderId":{"format":"uuid","type":"string"},"orderNumber":{"example":"5XXXXXX","minLength":1,"type":"string"},"profile":{"$ref":"#/components/schemas/de.mittwald.v1.order.Profile"},"status":{"$ref":"#/components/schemas/de.mittwald.v1.order.OrderStatus"},"summary":{"$ref":"#/components/schemas/de.mittwald.v1.order.OrderSummary"},"type":{"$ref":"#/components/schemas/de.mittwald.v1.order.OrderType"}},"required":["orderId","orderNumber","summary","customerId","invoicingPeriod","type","status","items"],"type":"object"},"de.mittwald.v1.order.DomainHandleField":{"properties":{"name":{"example":"name","type":"string"},"value":{"example":"Ada Lovelace","type":"string"}},"required":["name","value"],"type":"object"},"de.mittwald.v1.order.DomainOrderPreview":{"properties":{"authCode":{"example":"XXXXXXX","type":"string"},"domain":{"example":"mittwald.example","type":"string"},"projectId":{"format":"uuid","type":"string"}},"required":["domain"],"type":"object"},"de.mittwald.v1.order.DomainOrder":{"properties":{"authCode":{"example":"XXXXXXX","type":"string"},"domain":{"example":"mittwald.example","type":"string"},"handleData":{"properties":{"adminC":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.order.DomainHandleField"},"type":"array"},"ownerC":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.order.DomainHandleField"},"minItems":1,"type":"array"}},"required":["ownerC"],"type":"object"},"projectId":{"format":"uuid","type":"string"}},"required":["projectId","domain","handleData"],"type":"object"},"de.mittwald.v1.order.HardwareSpec":{"properties":{"ram":{"example":2,"type":"number"},"vcpu":{"example":1,"type":"number"}},"type":"object"},"de.mittwald.v1.order.MachineTypeSpec":{"properties":{"machineType":{"example":"prospace.2cpu.4gb","type":"string"}},"type":"object"},"de.mittwald.v1.order.OrderItem":{"properties":{"addons":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.order.Addons"},"type":"array"},"articleId":{"example":"PS23-PLUS-0004","type":"string"},"articleName":{"example":"proSpace","type":"string"},"articleTemplateName":{"example":"Pro-Space-Hosting","type":"string"},"attributeConfiguration":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.order.AttributeConfiguration"},"type":"array"},"isInclusive":{"type":"boolean"},"orderItemId":{"format":"uuid","type":"string"},"predefinedDomainAggregateId":{"example":"aa38d836-fe72-4c43-aad3-9472b51edf61","type":"string"},"price":{"example":1000,"type":"number"},"reference":{"$ref":"#/components/schemas/de.mittwald.v1.order.Reference"}},"required":["orderItemId","articleId","price","isInclusive"],"type":"object"},"de.mittwald.v1.order.Reference":{"properties":{"contractItemId":{"format":"uuid","type":"string"},"offerItemId":{"format":"uuid","type":"string"},"orderItemId":{"format":"uuid","type":"string"}},"type":"object"},"de.mittwald.v1.order.OrderStatus":{"enum":["NEW","CONFIRMED","REJECTED","ABORTED","EXECUTED"],"type":"string"},"de.mittwald.v1.order.OrderSummary":{"properties":{"nonRecurring":{"example":1000,"type":"number"},"recurring":{"example":9000,"type":"number"},"summary":{"description":"The total price of the order","example":10000,"type":"number"}},"required":["summary","recurring","nonRecurring"],"type":"object"},"de.mittwald.v1.order.OrderType":{"enum":["NEW_ORDER","CONTRACT_CHANGE"],"type":"string"},"de.mittwald.v1.order.DomainOrderPreviewResponse":{"properties":{"domainContractDuration":{"description":"Contract duration in months.","example":12,"type":"number"},"domainPrice":{"example":800,"type":"number"},"feePrice":{"example":100,"type":"number"},"totalPrice":{"example":900,"type":"number"}},"required":["totalPrice","domainPrice","feePrice","domainContractDuration"],"type":"object"},"de.mittwald.v1.order.HostingOrderPreviewResponse":{"properties":{"machineTypePrice":{"example":500,"type":"number"},"storagePrice":{"example":1000,"type":"number"},"totalPrice":{"example":1500,"type":"number"}},"required":["totalPrice","storagePrice","machineTypePrice"],"type":"object"},"de.mittwald.v1.order.Profile":{"properties":{"email":{"format":"email","type":"string"},"first_name":{"example":"Ada","type":"string"},"last_name":{"example":"Lovelace","type":"string"},"title":{"description":"the users title","enum":["other","mr","ms"],"type":"string"},"userId":{"format":"uuid","type":"string"}},"required":["userId","email"],"type":"object"},"de.mittwald.v1.order.ProjectHostingOrderPreview":{"properties":{"customerId":{"type":"string"},"description":{"example":"My first project","type":"string"},"diskspaceInGiB":{"example":10,"type":"number"},"spec":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.order.MachineTypeSpec"},{"$ref":"#/components/schemas/de.mittwald.v1.order.HardwareSpec"}]}},"required":["diskspaceInGiB","spec"],"type":"object"},"de.mittwald.v1.order.ProjectHostingOrder":{"properties":{"customerId":{"type":"string"},"description":{"example":"My first project","type":"string"},"diskspaceInGiB":{"example":10,"type":"number"},"promotionCode":{"example":"123456","type":"string"},"spec":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.order.MachineTypeSpec"},{"$ref":"#/components/schemas/de.mittwald.v1.order.HardwareSpec"}]},"useFreeTrial":{"type":"boolean"}},"required":["customerId","diskspaceInGiB","description","spec"],"type":"object"},"de.mittwald.v1.order.ProjectHostingTariffChange":{"properties":{"contractId":{"type":"string"},"diskspaceInGiB":{"example":10,"type":"number"},"spec":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.order.MachineTypeSpec"},{"$ref":"#/components/schemas/de.mittwald.v1.order.HardwareSpec"}]}},"required":["contractId","diskspaceInGiB","spec"],"type":"object"},"de.mittwald.v1.order.ServerOrderPreview":{"properties":{"customerId":{"example":"f3435305-fd26-470e-9f21-43d9be7e67e7","type":"string"},"description":{"example":"My first project","type":"string"},"diskspaceInGiB":{"example":100,"type":"number"},"machineType":{"example":"shared.xlarge","type":"string"}},"required":["machineType","diskspaceInGiB"],"type":"object"},"de.mittwald.v1.order.ServerOrder":{"properties":{"customerId":{"example":"f3435305-fd26-470e-9f21-43d9be7e67e7","minLength":1,"type":"string"},"description":{"example":"My first project","type":"string"},"diskspaceInGiB":{"example":100,"type":"number"},"machineType":{"example":"shared.xlarge","type":"string"},"promotionCode":{"example":"123456","type":"string"},"useFreeTrial":{"type":"boolean"}},"required":["customerId","machineType","diskspaceInGiB","description"],"type":"object"},"de.mittwald.v1.order.ServerTariffChange":{"properties":{"contractId":{"format":"uuid","type":"string"},"diskspaceInGiB":{"example":100,"type":"number"},"machineType":{"example":"shared.xlarge","type":"string"}},"required":["contractId","machineType","diskspaceInGiB"],"type":"object"},"de.mittwald.v1.policy.Policy":{"type":"string"},"de.mittwald.v1.project.AvatarRules":{"properties":{"maxSizeInKB":{"example":3000,"type":"integer"},"mimeTypes":{"example":["image/jpeg","image/png"],"items":{"type":"string"},"type":"array"},"properties":{"properties":{"imageDimensions":{"properties":{"max":{"properties":{"height":{"type":"integer"},"width":{"type":"integer"}},"type":"object"},"min":{"properties":{"height":{"type":"integer"},"width":{"type":"integer"}},"type":"object"}},"type":"object"}},"type":"object"}},"required":["mimeTypes","maxSizeInKB"],"type":"object"},"de.mittwald.v1.project.DeprecatedProjectReadinessStatus":{"deprecated":true,"description":"deprecated","enum":["creating","ready","unready"],"type":"string"},"de.mittwald.v1.project.DeprecatedServerReadinessStatus":{"deprecated":true,"description":"deprecated","enum":["creating","ready","unready"],"type":"string"},"de.mittwald.v1.project.FilesystemDirectoryListing":{"properties":{"absolutePath":{"type":"string"},"isDirectory":{"type":"boolean"},"isExecutable":{"type":"boolean"},"isFile":{"type":"boolean"},"isSymlink":{"type":"boolean"},"items":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.project.FilesystemDirectoryListing"},"type":"array"},"name":{"type":"string"},"size":{"type":"integer"},"target":{"type":"string"}},"required":["absolutePath","name","size"],"type":"object"},"de.mittwald.v1.project.FilesystemUsagesDisk":{"properties":{"path":{"type":"string"},"totalBytes":{"type":"integer"},"usedBytes":{"type":"integer"}},"type":"object"},"de.mittwald.v1.project.FsApiJwt":{"properties":{"jwt":{"example":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFkYSBMb3ZlbGFjZSIsImlhdCI6MTUxNjIzOTAyMn0.sMjBP_p34T5mbJTVdEWQ8i2hQPVxsmlt8L6-rKpCczo","type":"string"}},"required":["jwt"],"type":"object"},"de.mittwald.v1.project.HardwareSpec":{"properties":{"cpu":{"example":"2","type":"string"},"mem":{"deprecated":true,"description":"deprecated by memory","example":"4Gi","type":"string"},"memory":{"example":"4Gi","type":"string"},"storage":{"example":"50Gi","type":"string"}},"required":["storage"],"type":"object"},"de.mittwald.v1.project.MachineType":{"properties":{"cpu":{"example":"2","type":"string"},"memory":{"example":"4Gi","type":"string"},"name":{"example":"shared.large","type":"string"}},"required":["name","cpu","memory"],"type":"object"},"de.mittwald.v1.project.DisableReason":{"enum":["maliciousCode","illegalContent","maliciousConduct","suspended"],"type":"string"},"de.mittwald.v1.project.ProjectStatus":{"enum":["pending","ready","preparingForVolumeMigration","migratingVolume","error","disabled"],"type":"string"},"de.mittwald.v1.project.Project":{"properties":{"clusterDomain":{"example":"project.host","format":"hostname","type":"string"},"clusterID":{"example":"espelkamp","type":"string"},"createdAt":{"format":"date-time","type":"string"},"customerId":{"example":"f282f1a8-2b15-4b08-9850-6788e3b20136","type":"string"},"description":{"example":"My first Project!","type":"string"},"directories":{"additionalProperties":{"type":"string"},"example":{"Home":"/home/p-4e7tz3"},"type":"object"},"disableReason":{"$ref":"#/components/schemas/de.mittwald.v1.project.DisableReason"},"disabledAt":{"format":"date-time","type":"string"},"enabled":{"type":"boolean"},"id":{"format":"uuid","type":"string"},"imageRefId":{"format":"uuid","type":"string"},"isReady":{"deprecated":true,"description":"deprecated","type":"boolean"},"projectHostingId":{"format":"uuid","type":"string"},"readiness":{"$ref":"#/components/schemas/de.mittwald.v1.project.DeprecatedProjectReadinessStatus"},"serverId":{"format":"uuid","type":"string"},"serverShortId":{"type":"string"},"shortId":{"example":"s-4e7tz3","type":"string"},"spec":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.project.VisitorSpec"},{"$ref":"#/components/schemas/de.mittwald.v1.project.HardwareSpec"}]},"statisticsBaseDomain":{"example":"pe-prod.staging.mcloud.services","format":"hostname","type":"string"},"status":{"$ref":"#/components/schemas/de.mittwald.v1.project.ProjectStatus"},"statusSetAt":{"format":"date-time","type":"string"},"webStorageUsageInBytes":{"format":"int64","type":"integer"},"webStorageUsageInBytesSetAt":{"format":"date-time","type":"string"}},"required":["id","shortId","description","enabled","customerId","directories","createdAt","isReady","readiness","status","statusSetAt","webStorageUsageInBytes","webStorageUsageInBytesSetAt"],"type":"object"},"de.mittwald.v1.project.ServerDisableReason":{"enum":["suspended"],"type":"string"},"de.mittwald.v1.project.ServerStatus":{"enum":["pending","ready","unready"],"type":"string"},"de.mittwald.v1.project.Server":{"properties":{"clusterName":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customerId":{"example":"673c107f-75e1-451c-8eaa-5bf101bd2b2c","type":"string"},"description":{"example":"My first Server!","type":"string"},"disabledReason":{"$ref":"#/components/schemas/de.mittwald.v1.project.ServerDisableReason"},"id":{"format":"uuid","type":"string"},"imageRefId":{"format":"uuid","type":"string"},"isReady":{"deprecated":true,"description":"deprecated","type":"boolean"},"machineType":{"$ref":"#/components/schemas/de.mittwald.v1.project.MachineType"},"readiness":{"$ref":"#/components/schemas/de.mittwald.v1.project.DeprecatedServerReadinessStatus"},"shortId":{"example":"s-4e7tz3","type":"string"},"statisticsBaseDomain":{"example":"pe-prod.staging.mcloud.services","format":"hostname","type":"string"},"status":{"$ref":"#/components/schemas/de.mittwald.v1.project.ServerStatus"},"storage":{"example":"50Gi","type":"string"}},"required":["id","shortId","customerId","machineType","storage","description","isReady","readiness","createdAt","clusterName","status"],"type":"object"},"de.mittwald.v1.project.VisitorSpec":{"properties":{"storage":{"type":"string"},"visitors":{"type":"number"}},"required":["visitors","storage"],"type":"object"},"de.mittwald.v1.directus.Domain":{"properties":{"authCode":{"description":"The authcode of the domain. Leave empty when mittwald can generate a authcode on its own","type":"string"},"domainOwnerData":{"description":"Leave empty when mittwald should keep the same domain owner","type":"string"},"name":{"minLength":1,"type":"string"}},"required":["name"],"type":"object"},"de.mittwald.v1.screenshot.Target":{"properties":{"domain":{"example":"example.com","type":"string"},"path":{"type":"string"},"scheme":{"enum":["http","https"],"example":"https","type":"string"}},"required":["scheme","domain"],"type":"object"},"de.mittwald.v1.screenshot.Task":{"properties":{"executedAt":{"format":"date-time","type":"string"},"fileReference":{"type":"string"},"id":{"format":"uuid","type":"string"},"priority":{"type":"number"},"settings":{"$ref":"#/components/schemas/de.mittwald.v1.screenshot.ScreenshotSettings"},"target":{"$ref":"#/components/schemas/de.mittwald.v1.screenshot.Target"},"taskState":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.screenshot.LifecycleState"},{"$ref":"#/components/schemas/de.mittwald.v1.commons.Error"}]}},"required":["id","settings","target","priority"],"type":"object"},"de.mittwald.v1.screenshot.LifecycleState":{"type":"string"},"de.mittwald.v1.screenshot.ScreenshotSettings":{"properties":{"dataType":{"enum":["jpeg","png","webp"],"type":"string"},"delay":{"type":"number"},"height":{"type":"number"},"quality":{"type":"number"},"width":{"type":"number"}},"required":["width","height","quality","delay","dataType"],"type":"object"},"de.mittwald.v1.sshuser.EntityTypes":{"enum":["ssh","sftp"],"type":"string"},"de.mittwald.v1.sshuser.AccessLevel":{"description":"The level of access for an SFTPUser.","enum":["full","read","unspecified"],"type":"string"},"de.mittwald.v1.sshuser.AuthType":{"description":"Method of authentication that a given SFTPUser or SSHuser supports.","enum":["password","publicKey"],"type":"string"},"de.mittwald.v1.sshuser.Authentication":{"description":"Method of authentication for an SFTPUser or SSHUser. Can be password or public-keys.","oneOf":[{"properties":{"password":{"maxLength":72,"type":"string"}},"required":["password"],"type":"object"},{"properties":{"publicKeys":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.sshuser.PublicKey"},"type":"array"}},"required":["publicKeys"],"type":"object"}]},"de.mittwald.v1.sshuser.PublicKey":{"description":"A representation of an ssh-public-key.","properties":{"comment":{"type":"string"},"key":{"type":"string"}},"required":["comment","key"],"type":"object"},"de.mittwald.v1.sshuser.SftpUser":{"description":"A representation of an SFTPUser.","properties":{"accessLevel":{"$ref":"#/components/schemas/de.mittwald.v1.sshuser.AccessLevel"},"active":{"type":"boolean"},"authUpdatedAt":{"format":"date-time","type":"string"},"createdAt":{"format":"date-time","type":"string"},"description":{"type":"string"},"directories":{"items":{"type":"string"},"type":"array"},"expiresAt":{"format":"date-time","type":"string"},"hasPassword":{"type":"boolean"},"id":{"type":"string"},"projectId":{"type":"string"},"publicKeys":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.sshuser.PublicKey"},"type":"array"},"updatedAt":{"format":"date-time","type":"string"},"userName":{"type":"string"}},"required":["id","projectId","description","userName","createdAt","authUpdatedAt","accessLevel","hasPassword"],"type":"object"},"de.mittwald.v1.sshuser.SshUser":{"description":"A representation of an SSHUser.","properties":{"active":{"type":"boolean"},"authUpdatedAt":{"format":"date-time","type":"string"},"createdAt":{"format":"date-time","type":"string"},"description":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"hasPassword":{"type":"boolean"},"id":{"type":"string"},"projectId":{"type":"string"},"publicKeys":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.sshuser.PublicKey"},"type":"array"},"updatedAt":{"format":"date-time","type":"string"},"userName":{"type":"string"}},"required":["id","projectId","description","userName","createdAt","authUpdatedAt","hasPassword"],"type":"object"},"de.mittwald.v1.signup.Account":{"properties":{"email":{"example":"a.lovelace@example.com","format":"email","type":"string"},"mfaDetails":{"description":"The users mfa details.","properties":{"mfaConfirmed":{"type":"boolean"},"mfaInitialized":{"type":"boolean"}},"type":"object"},"passwordUpdatedAt":{"format":"date-time","type":"string"},"person":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Person"},"userId":{"type":"string"}},"type":"object"},"de.mittwald.v1.signup.ApiToken":{"properties":{"apiTokenId":{"format":"uuid","type":"string"},"createdAt":{"format":"date-time","type":"string"},"description":{"example":"Api Token - read","type":"string"},"expiresAt":{"format":"date-time","type":"string"},"roles":{"items":{"enum":["api_read","api_write"],"type":"string"},"type":"array"}},"required":["apiTokenId","roles","description","createdAt"],"type":"object"},"de.mittwald.v1.signup.DeviceInfo":{"properties":{"browser":{"example":"Safari","type":"string"},"model":{"example":"Apple Macintosh","type":"string"},"os":{"example":"Mac OS","type":"string"},"type":{"example":"Macbook","type":"string"}},"type":"object"},"de.mittwald.v1.signup.DomainError":{"properties":{"info":{"description":"A json object, given further information about the error","type":"object"},"message":{"description":"Some more detailed information about the error","type":"string"},"name":{"description":"Unique key for the error type","type":"string"}},"required":["name","message"],"type":"object"},"de.mittwald.v1.signup.Location":{"properties":{"city":{"example":"Espelkamp","type":"string"},"country":{"example":"DE","type":"string"},"ipAddress":{"format":"ipv4","type":"string"}},"type":"object"},"de.mittwald.v1.signup.Profile":{"properties":{"email":{"example":"a.lovelace@example.com","format":"email","type":"string"},"mfaDetails":{"description":"the users mfa details","properties":{"mfaConfirmed":{"type":"boolean"},"mfaInitialized":{"type":"boolean"}},"type":"object"},"passwordUpdatedAt":{"format":"date-time","type":"string"},"person":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Person"},"userId":{"type":"string"}},"type":"object"},"de.mittwald.v1.user.UserFeedback":{"properties":{"id":{"format":"uuid","type":"string"},"message":{"maxLength":1000,"type":"string"},"origin":{"maxLength":1000,"type":"string"},"subject":{"maxLength":100,"minLength":1,"type":"string"},"vote":{"maximum":10,"minimum":0,"type":"number"}},"required":["id","subject","vote","origin","message"],"type":"object"},"de.mittwald.v1.user.User":{"properties":{"avatarRef":{"format":"uuid","type":"string"},"email":{"format":"email","type":"string"},"employeeInformation":{"description":"additional information about mittwald employees","properties":{"department":{"example":"Kundenservice","type":"string"}},"required":["department"],"type":"object"},"person":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Person"},"phoneNumber":{"example":"+491701234567","type":"string"},"registeredAt":{"format":"date-time","type":"string"},"userId":{"format":"uuid","type":"string"}},"required":["userId","person"],"type":"object"},"de.mittwald.v1.signup.SshKey":{"properties":{"algorithm":{"example":"ssh-rsa","type":"string"},"comment":{"example":"a.lovelace@example.com","type":"string"},"createdAt":{"format":"date-time","type":"string"},"expiresAt":{"format":"date-time","type":"string"},"fingerprint":{"example":"a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1","format":"hexdump","type":"string"},"key":{"type":"string"},"sshKeyId":{"format":"uuid","type":"string"}},"required":["sshKeyId","algorithm","key","comment","fingerprint","createdAt"],"type":"object"},"de.mittwald.v1.poll.UserPollSettings":{"properties":{"completedAt":{"format":"date-time","type":"string"},"dontShowUntil":{"format":"date-time","type":"string"},"ignoredAt":{"format":"date-time","type":"string"},"shouldShow":{"type":"boolean"},"status":{"enum":["completed","muted","ignored","new"],"type":"string"},"userId":{"type":"string"}},"required":["userId","shouldShow","status"],"type":"object"},"de.mittwald.v1.signup.UserSession":{"properties":{"created":{"format":"date-time","type":"string"},"device":{"$ref":"#/components/schemas/de.mittwald.v1.signup.DeviceInfo"},"lastAccess":{"format":"date-time","type":"string"},"location":{"$ref":"#/components/schemas/de.mittwald.v1.signup.Location"},"tokenId":{"format":"uuid","type":"string"}},"required":["device","created","tokenId"],"type":"object"},"de.mittwald.v1.marketplace.AggregateReference":{"properties":{"aggregate":{"type":"string"},"domain":{"type":"string"},"id":{"type":"string"}},"required":["id","domain","aggregate"],"type":"object"},"de.mittwald.v1.marketplace.DetailedDescriptions":{"description":"Supported languages. Format ISO-639-1.","properties":{"de":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.DescriptionFormats"},"en":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.DescriptionFormats"}},"required":["de"],"type":"object"},"de.mittwald.v1.marketplace.DescriptionFormats":{"description":"Language specific descriptions in various formats.","properties":{"markdown":{"minLength":1,"type":"string"},"plain":{"minLength":1,"type":"string"}},"required":["markdown"],"type":"object"},"de.mittwald.v1.commons.Address":{"type":"object","properties":{"street":{"type":"string","example":"Königsberger Straße"},"houseNumber":{"type":"string","example":"4-6"},"city":{"type":"string","example":"Espelkamp"},"zip":{"type":"string","example":"32339"},"countryCode":{"type":"string","example":"DE","description":"ISO 3166-1 alpha-2 country code"},"addressPrefix":{"type":"string","example":"c/o Ada Lovelace"}},"required":["street","houseNumber","city","zip","countryCode"]},"de.mittwald.v1.commons.Error":{"type":"object","required":["type","message"],"properties":{"message":{"type":"string","example":"Something went wrong"},"type":{"type":"string","example":"InternalServerError"}}},"de.mittwald.v1.commons.Person":{"type":"object","description":"The users personal information, e.g. first name.","properties":{"firstName":{"type":"string","description":"The users first name","example":"Ada"},"lastName":{"type":"string","description":"The users last name","example":"Lovelace"},"title":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Salutation"}},"required":["lastName","firstName"]},"de.mittwald.v1.commons.Salutation":{"type":"string","enum":["mr","ms","other"]},"de.mittwald.v1.commons.ValidationErrorSchema":{"type":"object","required":["message","path","type"],"properties":{"message":{"type":"string","description":"The standard error message","example":"should be string"},"path":{"type":"string","description":"The path to the part of the data that was validated. JavaScript property access notation (e.g., \".prop[1].subProp\") is used.\n","example":".address.street"},"type":{"type":"string","description":"ajv validation error type (e.g. \"format\", \"required\", \"type\") or own validation error types","example":"format"},"context":{"type":"object","example":{"format":"email"},"description":"The object with the additional information about the error that can be used to create custom error messages. Keys depend on the\ntype that failed validation (e.g. \"missingProperty\" for type \"required\")\n","additionalProperties":{"type":"string"}}}},"de.mittwald.v1.commons.ValidationErrors":{"type":"object","required":["type","validationErrors"],"properties":{"type":{"type":"string","enum":["ValidationError"]},"message":{"type":"string","example":"Validation failed"},"validationErrors":{"type":"array","items":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrorSchema"}}}}},"securitySchemes":{"de.mittwald.v1.common.LegacyAccessToken":{"description":"Legacy Access Token is required in header","in":"header","name":"Authorization","type":"apiKey"},"de.mittwald.v1.commons.AccessToken":{"description":"Access Token is required in header","in":"header","name":"x-access-token","type":"apiKey"},"de.mittwald.v1.commons.LegacyBearerAuthentication":{"description":"'Authorization: Bearer xyz' is required","in":"header","name":"Authorization","type":"apiKey"}}},"paths":{"/v2/appinstallations/{appInstallationId}/actions/{action}":{"post":{"parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"type":"string"}},{"in":"path","name":"action","required":true,"schema":{"$ref":"#/components/schemas/de.mittwald.v1.app.Action"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"","required":false},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"summary":"Trigger a runtime action belonging to an AppInstallation.","tags":["App"],"deprecated":true}},"/v2/app-installations/{appInstallationId}/actions/{action}":{"post":{"operationId":"app-execute-action","parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"type":"string"}},{"in":"path","name":"action","required":true,"schema":{"$ref":"#/components/schemas/de.mittwald.v1.app.Action"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"","required":false},"responses":{"204":{"description":"The given action has been executed."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Trigger a runtime action belonging to an AppInstallation.","tags":["App"]}},"/v2/apps/{appId}":{"get":{"operationId":"app-get-app","parameters":[{"in":"path","name":"appId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.app.App"}}},"description":"The app object."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get an App.","tags":["App"]}},"/v2/appinstallations/{appInstallationId}":{"get":{"parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get an AppInstallation.","tags":["App"],"deprecated":true},"patch":{"parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"appVersionId":{"format":"uuid","type":"string"},"customDocumentRoot":{"type":"string"},"description":{"type":"string"},"systemSoftware":{"additionalProperties":{"properties":{"systemSoftwareVersion":{"type":"string"},"updatePolicy":{"$ref":"#/components/schemas/de.mittwald.v1.app.SystemSoftwareUpdatePolicy"}},"type":"object"},"type":"object"},"updatePolicy":{"$ref":"#/components/schemas/de.mittwald.v1.app.AppUpdatePolicy"},"userInputs":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.SavedUserInput"},"type":"array"}},"type":"object"}}},"description":"Properties to update for an AppInstallation.","required":true},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"summary":"Update properties belonging to an AppInstallation.","tags":["App"],"deprecated":true},"delete":{"parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Trigger an uninstallation process for an AppInstallation.","tags":["App"],"deprecated":true}},"/v2/app-installations/{appInstallationId}":{"get":{"operationId":"app-get-appinstallation","parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.app.AppInstallation"}}},"description":"The AppInstallation."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get an AppInstallation.","tags":["App"]},"patch":{"operationId":"app-patch-appinstallation","parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"appVersionId":{"format":"uuid","type":"string"},"customDocumentRoot":{"type":"string"},"description":{"type":"string"},"systemSoftware":{"additionalProperties":{"properties":{"systemSoftwareVersion":{"type":"string"},"updatePolicy":{"$ref":"#/components/schemas/de.mittwald.v1.app.SystemSoftwareUpdatePolicy"}},"type":"object"},"type":"object"},"updatePolicy":{"$ref":"#/components/schemas/de.mittwald.v1.app.AppUpdatePolicy"},"userInputs":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.SavedUserInput"},"type":"array"}},"type":"object"}}},"description":"Properties to update for an AppInstallation.","required":true},"responses":{"204":{"description":"The AppInstallation has been patched."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Update properties belonging to an AppInstallation.","tags":["App"]},"delete":{"operationId":"app-uninstall-appinstallation","parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"The app installation is going to be deleted."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Trigger an uninstallation process for an AppInstallation.","tags":["App"]}},"/v2/apps/{appId}/versions/{appVersionId}":{"get":{"operationId":"app-get-appversion","parameters":[{"in":"path","name":"appId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"appVersionId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.app.AppVersion"}}},"description":"The appVersion object."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get an AppVersion.","tags":["App"]}},"/v2/app-installations/{appInstallationId}/systemSoftware":{"get":{"operationId":"app-get-installed-systemsoftware-for-appinstallation","parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"query","name":"tagFilter","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.SystemSoftware"},"type":"array"}}},"description":"The list of installed 'SystemSoftware'."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get the installed `SystemSoftware' for a specific `AppInstallation`.","tags":["App"]}},"/v2/appinstallations/{appInstallationId}/missing-dependencies":{"get":{"parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"query","name":"targetAppVersionID","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get the missing requirements of an appInstallation for a specific target AppVersion.","tags":["App"],"deprecated":true}},"/v2/app-installations/{appInstallationId}/missing-dependencies":{"get":{"operationId":"app-get-missing-dependencies-for-appinstallation","parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"query","name":"targetAppVersionID","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"missingSystemSoftwareDependencies":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.SystemSoftwareDependency"},"type":"array"},"missingUserInputs":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.UserInput"},"type":"array"}},"type":"object"}}},"description":"The missing dependencies of the AppInstallation for the target AppVersion."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get the missing requirements of an appInstallation for a specific target AppVersion.","tags":["App"]}},"/v2/systemsoftwares/{systemSoftwareId}":{"get":{"parameters":[{"in":"path","name":"systemSoftwareId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a SystemSoftware.","tags":["App"],"deprecated":true}},"/v2/system-softwares/{systemSoftwareId}":{"get":{"operationId":"app-get-systemsoftware","parameters":[{"in":"path","name":"systemSoftwareId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.app.SystemSoftware"}}},"description":"The SystemSoftware."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a SystemSoftware.","tags":["App"]}},"/v2/systemsoftware/{systemSoftwareId}/versions/{systemSoftwareVersionId}":{"get":{"parameters":[{"in":"path","name":"systemSoftwareId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"systemSoftwareVersionId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a SystemSoftwareVersion.","tags":["App"],"deprecated":true}},"/v2/system-software/{systemSoftwareId}/versions/{systemSoftwareVersionId}":{"get":{"operationId":"app-get-systemsoftwareversion","parameters":[{"in":"path","name":"systemSoftwareId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"systemSoftwareVersionId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.app.SystemSoftwareVersion"}}},"description":"The systemSoftwareVersion object."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a SystemSoftwareVersion.","tags":["App"]}},"/v2/app-installations/{appInstallationId}/database":{"patch":{"operationId":"app-link-database","parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"databaseId":{"format":"uuid","type":"string"},"databaseUserIds":{"additionalProperties":{"type":"string"},"type":"object"},"purpose":{"enum":["primary","cache","custom"],"type":"string"}},"required":["databaseId","purpose"],"type":"object"}}},"required":true},"responses":{"204":{"description":"The database has been linked."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create linkage between an AppInstallation and a MySQLDatabase.","tags":["App"]}},"/v2/app-installations":{"get":{"operationId":"app-list-appinstallations-for-user","parameters":[{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"page","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.AppInstallation"},"type":"array"}}},"description":"Object containing the list of AppInstallations."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List AppInstallations that a user has access to.","tags":["App"]}},"/v2/projects/{projectId}/appinstallations":{"get":{"parameters":[{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"page","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List AppInstallations belonging to a Project.","tags":["App"],"deprecated":true},"post":{"parameters":[{"in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"appVersionId":{"format":"uuid","type":"string"},"description":{"type":"string"},"updatePolicy":{"$ref":"#/components/schemas/de.mittwald.v1.app.AppUpdatePolicy"},"userInputs":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.SavedUserInput"},"type":"array"}},"required":["appVersionId","description","userInputs","updatePolicy"],"type":"object"}}},"required":true},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"summary":"Request an AppInstallation.","tags":["App"],"deprecated":true}},"/v2/projects/{projectId}/app-installations":{"get":{"operationId":"app-list-appinstallations","parameters":[{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"page","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.AppInstallation"},"type":"array"}}},"description":"Object containing the list of AppInstallations."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List AppInstallations belonging to a Project.","tags":["App"]},"post":{"operationId":"app-request-appinstallation","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"appVersionId":{"format":"uuid","type":"string"},"description":{"type":"string"},"updatePolicy":{"$ref":"#/components/schemas/de.mittwald.v1.app.AppUpdatePolicy"},"userInputs":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.SavedUserInput"},"type":"array"}},"required":["appVersionId","description","userInputs","updatePolicy"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"uuid","type":"string"}},"required":["id"],"type":"object"}}},"description":"The AppInstallation has been requested."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Request an AppInstallation.","tags":["App"]}},"/v2/apps":{"get":{"operationId":"app-list-apps","parameters":[{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"page","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.App"},"type":"array"}}},"description":"Object containing the list of Apps."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List Apps.","tags":["App"]}},"/v2/apps/{appId}/versions":{"get":{"operationId":"app-list-appversions","parameters":[{"in":"path","name":"appId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"query","name":"recommended","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.AppVersion"},"type":"array"}}},"description":"Object containing the list of AppVersions.","headers":{"X-Pagination-Limit":{"schema":{"type":"number"}},"X-Pagination-Skip":{"schema":{"type":"number"}},"X-Pagination-TotalCount":{"schema":{"type":"number"}}}},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List AppVersions belonging to an App.","tags":["App"]}},"/v2/systemsoftwares":{"get":{"parameters":[{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"page","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"minimum":0,"type":"integer"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List SystemSoftwares.","tags":["App"],"deprecated":true}},"/v2/system-softwares":{"get":{"operationId":"app-list-systemsoftwares","parameters":[{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"page","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.SystemSoftware"},"type":"array"}}},"description":"Object containing the list of SystemSoftwares.","headers":{"X-Pagination-Limit":{"schema":{"type":"number"}},"X-Pagination-Skip":{"schema":{"type":"number"}},"X-Pagination-TotalCount":{"schema":{"type":"number"}}}},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List SystemSoftwares.","tags":["App"]}},"/v2/systemsoftware/{systemSoftwareId}/versions":{"get":{"parameters":[{"in":"path","name":"systemSoftwareId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"query","name":"versionRange","required":false,"schema":{"type":"string"}},{"in":"query","name":"recommended","required":false,"schema":{"type":"boolean"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List SystemSoftwareVersions belonging to a SystemSoftware.","tags":["App"],"deprecated":true}},"/v2/system-software/{systemSoftwareId}/versions":{"get":{"operationId":"app-list-systemsoftwareversions","parameters":[{"in":"path","name":"systemSoftwareId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"query","name":"versionRange","required":false,"schema":{"type":"string"}},{"in":"query","name":"recommended","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.SystemSoftwareVersion"},"type":"array"}}},"description":"Object containing the list of SystemSoftwareVersions.","headers":{"X-Pagination-Limit":{"schema":{"type":"number"}},"X-Pagination-Skip":{"schema":{"type":"number"}},"X-Pagination-TotalCount":{"schema":{"type":"number"}}}},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List SystemSoftwareVersions belonging to a SystemSoftware.","tags":["App"]}},"/v2/apps/{appId}/versions/{baseAppVersionId}/update-candidates":{"get":{"operationId":"app-list-update-candidates-for-appversion","parameters":[{"in":"path","name":"appId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"baseAppVersionId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.AppVersion"},"type":"array"}}},"description":"Object containing the list of AppVersions.","headers":{"X-Pagination-Limit":{"schema":{"type":"number"}},"X-Pagination-Skip":{"schema":{"type":"number"}},"X-Pagination-TotalCount":{"schema":{"type":"number"}}}},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List update candidates belonging to an AppVersion.","tags":["App"]}},"/v2/appinstallations/{appInstallationId}/actions/copy":{"post":{"parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"type":"string"},"targetProjectId":{"format":"uuid","type":"string"}},"required":["description"],"type":"object"}}},"description":"Properties to copy an app installation.","required":true},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"summary":"Request a copy of an AppInstallation.","tags":["App"],"deprecated":true}},"/v2/app-installations/{appInstallationId}/actions/copy":{"post":{"operationId":"app-request-appinstallation-copy","parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"type":"string"},"targetProjectId":{"format":"uuid","type":"string"}},"required":["description"],"type":"object"}}},"description":"Properties to copy an app installation.","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"uuid","type":"string"}},"required":["id"],"type":"object"}}},"description":"The AppInstallation copy has been requested."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Request a copy of an AppInstallation.","tags":["App"]}},"/v2/appinstallations/{appInstallationId}/status":{"get":{"parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"summary":"Get runtime status belonging to an AppInstallation.","tags":["App"],"deprecated":true}},"/v2/app-installations/{appInstallationId}/status":{"get":{"operationId":"app-retrieve-status","parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.app.AppInstallationStatus"}}},"description":"The appInstallation status."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get runtime status belonging to an AppInstallation.","tags":["App"]}},"/v2/app-installations/{appInstallationId}/databases/{databaseId}":{"put":{"parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"databaseId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"databaseUserIds":{"additionalProperties":{"type":"string"},"type":"object"}},"required":["databaseUserIds"],"type":"object"}}},"description":"Properties to update for the specified system software.","required":true},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create linkage between an AppInstallation and DatabaseUsers.","tags":["App"],"deprecated":true},"delete":{"operationId":"app-unlink-database","parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"databaseId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"The database has been unlinked."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Remove linkage between an AppInstallation and a Database.","tags":["App"]}},"/v2/appinstallations/{appInstallationId}/databases/{databaseId}":{"put":{"parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"databaseId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"databaseUserIds":{"additionalProperties":{"type":"string"},"type":"object"}},"required":["databaseUserIds"],"type":"object"}}},"description":"Properties to update for the specified system software.","required":true},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create linkage between an AppInstallation and DatabaseUsers.","tags":["App"],"deprecated":true},"delete":{"parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"databaseId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Remove linkage between an AppInstallation and a Database.","tags":["App"],"deprecated":true}},"/v2/app-installations/{appInstallationId}/databases/{databaseId}/users":{"put":{"operationId":"app-set-database-users","parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"databaseId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"databaseUserIds":{"additionalProperties":{"type":"string"},"type":"object"}},"required":["databaseUserIds"],"type":"object"}}},"description":"Properties to update for the specified system software.","required":true},"responses":{"204":{"description":"The database users have been set."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create linkage between an AppInstallation and DatabaseUsers.","tags":["App"]}},"/v2/articles/{articleId}":{"get":{"operationId":"article-get-article","parameters":[{"example":"PS23-PLUS-0004","in":"path","name":"articleId","required":true,"schema":{"type":"string"}},{"description":"Use customerId for custom customer prices.","example":"123e4567-e89b-12d3-a456-426614174000","in":"query","name":"customerId","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.article.ReadableArticle"}}},"description":"The Article object"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[],"summary":"Get an Article.","tags":["Article"]}},"/v2/articles":{"get":{"operationId":"article-list-articles","parameters":[{"description":"Use customerId for custom customer prices.","example":"123e4567-e89b-12d3-a456-426614174000","in":"query","name":"customerId","required":false,"schema":{"type":"string"}},{"example":1000,"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"example":0,"in":"query","name":"skip","required":false,"schema":{"minimum":0,"type":"integer"}},{"example":1,"in":"query","name":"page","required":false,"schema":{"minimum":0,"type":"integer"}},{"example":[],"in":"query","name":"tags","required":false,"schema":{"items":{"type":"string"},"type":"array"}},{"example":[],"in":"query","name":"templateNames","required":false,"schema":{"items":{"type":"string"},"type":"array"}},{"example":["PS23-PLUS-0004"],"in":"query","name":"articleIds","required":false,"schema":{"items":{"type":"string"},"type":"array"}},{"in":"query","name":"orderable","required":false,"schema":{"items":{"enum":["forbidden","internal","beta_testing","full","deprecated"],"type":"string"},"type":"array"}},{"example":"proSpace","in":"query","name":"name","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.article.ReadableArticle"},"type":"array"}}},"description":"Object containing the list of Articles"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[],"summary":"List Articles.","tags":["Article"]}},"/v2/project-backups/{projectBackupId}/export":{"post":{"operationId":"backup-create-project-backup-export","parameters":[{"description":"ID of the ProjectBackup to export.","in":"path","name":"projectBackupId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"format":{"description":"The desired format to export the ProjectBackup in.","enum":["tar","zip"],"example":"tar","type":"string"},"password":{"description":"Password to use to protect the archive.","example":"password","type":"string"}},"required":["format"],"type":"object"}}},"required":true},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Export a ProjectBackup for download.","tags":["Backup"]},"delete":{"operationId":"backup-delete-project-backup-export","parameters":[{"description":"ID if the ProjectBackup to delete the export of.","in":"path","name":"projectBackupId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"NoContent"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a ProjectBackupExport.","tags":["Backup"]}},"/v2/projects/{projectId}/backup-schedules":{"post":{"operationId":"backup-create-project-backup-schedule","parameters":[{"description":"ID of the Project to create a BackupSchedule for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"description":"Description of the BackupSchedule.","type":"string"},"schedule":{"description":"Execution schedule in crontab notation.","example":"5 4 * * *","type":"string"},"ttl":{"description":"TTL of the BackupSchedule as time string.","example":"7d","type":"string"}},"required":["ttl","schedule"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.backup.ProjectBackupSchedule"}}},"description":"Created"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create a BackupSchedule for a Project.","tags":["Backup"]},"get":{"operationId":"backup-list-project-backup-schedules","parameters":[{"description":"ID of the Project to list BackupSchedules for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.backup.ProjectBackupSchedule"},"type":"array"}}},"description":"OK"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List BackupSchedules belonging to a Project.","tags":["Backup"]}},"/v2/projects/{projectId}/backups":{"post":{"operationId":"backup-create-project-backup","parameters":[{"description":"ID of the project to create a Backup for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"description":"Description of the Backup.","example":"I'm a ProjectBackup","type":"string"},"expirationTime":{"description":"Time when to expire the Backup.","format":"date-time","type":"string"}},"required":["expirationTime"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.backup.ProjectBackup"}}},"description":"Created"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create a Backup of a Project.","tags":["Backup"]},"get":{"operationId":"backup-list-project-backups","parameters":[{"description":"ID of the Project to get Backups for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.backup.ProjectBackup"},"type":"array"}}},"description":"OK"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List Backups belonging to a Project.","tags":["Backup"]}},"/v2/project-backup-schedules/{projectBackupScheduleId}":{"delete":{"operationId":"backup-delete-project-backup-schedule","parameters":[{"description":"ID of the ProjectBackupSchedule to delete.","in":"path","name":"projectBackupScheduleId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"NoContent"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a ProjectBackupSchedule.","tags":["Backup"]},"get":{"operationId":"backup-get-project-backup-schedule","parameters":[{"description":"ID of the ProjectBackupSchedule to retrieve.","in":"path","name":"projectBackupScheduleId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.backup.ProjectBackupSchedule"}}},"description":"OK"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a ProjectBackupSchedule.","tags":["Backup"]},"patch":{"operationId":"backup-update-project-backup-schedule","parameters":[{"description":"ID of the ProjectBackupSchedule to be updated.","in":"path","name":"projectBackupScheduleId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"description":"Description of the ProjectBackupSchedule. Note that the description of isSystemBackup true items cannot be changed.","example":"I'm a ProjectBackupSchedule","type":"string"},"schedule":{"description":"Execution schedule in crontab notation. Note that the schedule of isSystemBackup true items must be daily once.","example":"5 4 * * *","type":"string"},"ttl":{"description":"TTL of the ProjectBackupSchedule as time string.","example":"7d","type":"string"}},"type":"object"}}}},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a ProjectBackupSchedule.","tags":["Backup"]}},"/v2/project-backups/{projectBackupId}":{"delete":{"operationId":"backup-delete-project-backup","parameters":[{"description":"ID of the ProjectBackup to be deleted.","in":"path","name":"projectBackupId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"NoContent"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a ProjectBackup.","tags":["Backup"]},"get":{"operationId":"backup-get-project-backup","parameters":[{"description":"ID of the ProjectBackup to retrieve.","in":"path","name":"projectBackupId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.backup.ProjectBackup"}}},"description":"OK"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a ProjectBackup.","tags":["Backup"]}},"/v2/project-backups/{projectBackupId}/description":{"patch":{"operationId":"backup-update-project-backup-description","parameters":[{"description":"ID of the ProjectBackup to change the description of.","in":"path","name":"projectBackupId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"description":"Description of the ProjectBackup.","example":"I'm a ProjectBackup","type":"string"}},"type":"object"}}},"required":true},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Change the description of a ProjectBackup.","tags":["Backup"]}},"/v2/contracts/{contractId}/items/{contractItemId}/termination":{"delete":{"operationId":"contract-cancel-contract-item-termination","parameters":[{"description":"The uuid of the Contract where the terminated ContractItem belongs to.","example":"f6bb2d44-e6be-46dc-96f7-9602a7177a75","in":"path","name":"contractId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"The uuid of the ContractItem for which the Termination is to be cancelled. Only works for ContractItem for which a Termination is stored.","example":"4d495bcd-4d4c-4bf9-b1c8-72b99a2ea7f2","in":"path","name":"contractItemId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"contractId":{"format":"uuid","type":"string"},"contractItemId":{"format":"uuid","type":"string"},"isCancelled":{"type":"boolean"}}}}},"description":"Return the contractId and the contractItemId of the ContractItem where the Termination was cancelled."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Cancel the Termination for the referred ContractItem.","tags":["Contract"]},"post":{"operationId":"contract-terminate-contract-item","parameters":[{"example":"f6bb2d44-e6be-46dc-96f7-9602a7177a75","in":"path","name":"contractId","required":true,"schema":{"format":"uuid","type":"string"}},{"example":"19b2d44-e6be-46dc-96f7-9602a7177a75","in":"path","name":"contractItemId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"reason":{"description":"A reason for the Termination can be given as plain text.","example":"Server wird nicht mehr benötigt","type":"string"},"terminationTargetDate":{"description":"The termination date has to be a valid date according to activation and contract period of the ContractItem. If none given, the next possible termination date will be used.","format":"date-time","type":"string"}}}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"contractId":{"format":"uuid","type":"string"},"contractItemId":{"format":"uuid","type":"string"},"reason":{"example":"Server wird nicht mehr benötigt","type":"string"},"terminationTargetDate":{"format":"date-time","type":"string"}}}}},"description":"Return the contractId, the date on which the Termination will take place and the list of affected ContractItems."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Schedule the Termination of a ContractItem.","tags":["Contract"]}},"/v2/contracts/{contractId}/items/{contractItemId}/tariff-change":{"delete":{"operationId":"contract-cancel-contract-tariff-change","parameters":[{"example":"154219e9-bf4a-4f41-9c72-0449a98db62f","in":"path","name":"contractId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"The uuid of the active ContractItem (not the one that would replace the old one after the TariffChange)\nfor which the TariffChange is to be cancelled. Only works for ContractItems for which a TariffChange is stored.\n","example":"f6bb2d44-e6be-46dc-96f7-9602a7177a75","in":"path","name":"contractItemId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"contractId":{"format":"uuid","type":"string"},"contractItemId":{"format":"uuid","type":"string"},"isCancelled":{"type":"boolean"}}}}},"description":"Returns the contractId of the Contract whose TariffChange was cancelled."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Cancel the TariffChange for the referred ContractItem.","tags":["Contract"]}},"/v2/contracts/{contractId}/termination":{"delete":{"operationId":"contract-cancel-contract-termination","parameters":[{"description":"The uuid of the Contract for which the Termination is to be cancelled. Only works for Contracts for which a\nTermination is stored.\n","example":"f6bb2d44-e6be-46dc-96f7-9602a7177a75","in":"path","name":"contractId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"contractId":{"format":"uuid","type":"string"},"isCancelled":{"type":"boolean"}}}}},"description":"Return the contractId of the Contract whose Termination was cancelled."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Cancel the Termination for the referred Contract.","tags":["Contract"]},"post":{"operationId":"contract-terminate-contract","parameters":[{"description":"The uuid of the Contract to be terminated.","example":"f6bb2d44-e6be-46dc-96f7-9602a7177a75","in":"path","name":"contractId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"reason":{"description":"A reason for the termination can be given as plain text.","example":"Projekt wird nicht mehr benötigt","type":"string"},"terminationTargetDate":{"description":"The termination date has to be a valid date according to activation and contract period of the base ContractItem. If none given, the next possible termination date will be used.","format":"date-time","type":"string"}}}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"contractId":{"format":"uuid","type":"string"},"itemsScheduledForTermination":{"items":{"format":"uuid","type":"string"},"type":"array"},"reason":{"example":"Projekt wird nicht mehr benötigt","type":"string"},"terminationTargetDate":{"format":"date","type":"string"}}}}},"description":"Returns the contractId, the date on which the Termination will take place and the list of affected ContractItems."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Schedule the Termination of a Contract.","tags":["Contract"]}},"/v2/contracts/{contractId}/base-items":{"get":{"operationId":"contract-get-base-item-of-contract","parameters":[{"description":"The uuid of the Contract from which the BaseItem is to be issued.","example":"97cecfa0-2c3c-4272-a510-c775fcaade01","in":"path","name":"contractId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.contract.ContractItem"}}},"description":"The BaseItem of the Contract."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Return the BaseItem of the Contract with the given ID.","tags":["Contract"]}},"/v2/domains/{domainId}/contract":{"get":{"operationId":"contract-get-detail-of-contract-by-domain","parameters":[{"example":"0a6de990-b33f-4cf8-adba-025a26515657","in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.contract.Contract"}}},"description":"Returns an active Contract for the given Domain."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Return the Contract for the given Domain.","tags":["Contract"]}},"/v2/projects/{projectId}/contract":{"get":{"operationId":"contract-get-detail-of-contract-by-project","parameters":[{"example":"0a6de990-b33f-4cf8-adba-025a26515657","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.contract.Contract"}}},"description":"Returns an active Contract for the given Project."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Return the Contract for the given Project.","tags":["Contract"]}},"/v2/servers/{serverId}/contract":{"get":{"operationId":"contract-get-detail-of-contract-by-server","parameters":[{"example":"0a6de990-b33f-4cf8-adba-025a26515657","in":"path","name":"serverId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.contract.Contract"}}},"description":"Returns an active Contract for the given Server."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Return the Contract for the given Server.","tags":["Contract"]}},"/v2/contracts/{contractId}/items/{contractItemId}":{"get":{"operationId":"contract-get-detail-of-contract-item","parameters":[{"description":"The uuid of the Contract where the desired ContractItem belongs to.","example":"97cecfa0-2c3c-4272-a510-c775fcaade01","in":"path","name":"contractId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"The uuid of the ContractItem to be returned.","example":"19b3e88e-c656-4440-8b89-efbf881b9c6f","in":"path","name":"contractItemId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.contract.ContractItem"}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get the ContractItem with the given ID.","tags":["Contract"]}},"/v2/contracts/{contractId}":{"get":{"operationId":"contract-get-detail-of-contract","parameters":[{"description":"The uuid of the Contract to be returned.","example":"97cecfa0-2c3c-4272-a510-c775fcaade01","in":"path","name":"contractId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.contract.Contract"}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Returns the Contract with the given ID.","tags":["Contract"]}},"/v2/contracts/{contractId}/items/{contractItemId}/next-termination-dates":{"get":{"operationId":"contract-get-next-termination-date-for-item","parameters":[{"description":"The uuid of the Contract where the desired ContractItem belongs to.","example":"97cecfa0-2c3c-4272-a510-c775fcaade01","in":"path","name":"contractId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"The uuid of the ContractItem whose next TerminationDate is to be displayed.","example":"19b3e88e-c656-4440-8b89-efbf881b9c6f","in":"path","name":"contractItemId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"contractItemId":{"format":"uuid","type":"string"},"nextTerminationDate":{"format":"date-time","type":"string"}},"required":["contractItemId","nextTerminationDate"]}}},"description":"Return the next possible TerminationDate for the ContractItem as date."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Return the next TerminationDate for the ContractItem with the given ID.","tags":["Contract"]}},"/v2/customers/{customerId}/contracts":{"get":{"operationId":"contract-list-contracts","parameters":[{"description":"The uuid of the Customer from whom all Contracts are to be returned.","example":"97cecfa0-2c3c-4272-a510-c775fcaade01","in":"path","name":"customerId","required":true,"schema":{"format":"uuid","type":"string"}},{"example":1000,"in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"example":0,"in":"query","name":"skip","required":false,"schema":{"type":"integer"}},{"example":1,"in":"query","name":"page","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.contract.Contract"},"type":"array"}}},"description":"Return the Contracts that belong to the Customer."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Return a list of Contracts for the given Customer.","tags":["Contract"]}},"/v2/contributors/{contributorId}/extensions/{extensionId}/extension-instances/{extensionInstanceId}/secret":{"put":{"operationId":"contributor-rotate-secret-for-extension-instance","parameters":[{"in":"path","name":"contributorId","required":true,"schema":{"type":"string"}},{"in":"path","name":"extensionId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"extensionInstanceId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"allowWebhookFailure":{"type":"boolean"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"secret":{"type":"string"},"webhookResult":{"properties":{"failure":{"type":"boolean"},"statusCode":{"description":"The status code returned by the external application.","type":"string"}},"required":["failure"],"type":"object"}},"required":["secret","webhookResult"],"type":"object"}}},"description":"Secret rotated successfully."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Rotate the secret for an extension instance.","tags":["Marketplace"]}},"/v2/conversations":{"post":{"operationId":"conversation-create-conversation","requestBody":{"content":{"application/json":{"schema":{"properties":{"categoryId":{"type":"string"},"mainUserId":{"format":"uuid","type":"string"},"relatedTo":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.AggregateReference"},"sharedWith":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.ShareableAggregateReference"},"title":{"type":"string"}},"type":"object"}}},"description":"","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"conversationId":{"format":"uuid","type":"string"}},"required":["conversationId"],"type":"object"}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Create a conversation.","tags":["Conversation"]},"get":{"operationId":"conversation-list-conversations","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.Conversation"},"type":"array"}}},"description":"The conversations list ordered by creation date"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get all conversation the authenticated user has created or has access to.","tags":["Conversation"]}},"/v2/conversations/{conversationId}/messages":{"post":{"operationId":"conversation-create-message","parameters":[{"in":"path","name":"conversationId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"fileIds":{"items":{"format":"uuid","type":"string"},"type":"array"},"messageContent":{"maxLength":8000,"type":"string"}}}}},"description":"","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"conversationId":{"format":"uuid","type":"string"},"messageId":{"format":"uuid","type":"string"}},"required":["conversationId","messageId"],"type":"object"}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Send a new message in the conversation.","tags":["Conversation"]},"get":{"operationId":"conversation-list-messages-by-conversation","parameters":[{"in":"path","name":"conversationId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.conversation.Message"},{"$ref":"#/components/schemas/de.mittwald.v1.conversation.StatusUpdate"}]},"type":"array"}}},"description":""},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get all message of the conversation.","tags":["Conversation"]}},"/v2/conversation-categories/{categoryId}":{"get":{"operationId":"conversation-get-category","parameters":[{"in":"path","name":"categoryId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.Category"}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get a specific conversation category.","tags":["Conversation"]}},"/v2/conversations/{conversationId}/members":{"get":{"operationId":"conversation-get-conversation-members","parameters":[{"in":"path","name":"conversationId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.ConversationMembers"}}},"description":"The members of the conversation.\n"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get members of a support conversation.","tags":["Conversation"]}},"/v2/customers/{customerId}/conversation-preferences":{"get":{"operationId":"conversation-get-conversation-preferences-of-customer","parameters":[{"in":"path","name":"customerId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.ConversationPreferences"}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get preferences for customer conversations.","tags":["Conversation"]}},"/v2/conversations/{conversationId}":{"get":{"operationId":"conversation-get-conversation","parameters":[{"in":"path","name":"conversationId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.Conversation"}}},"description":"The metadata of the conversation.\nDoes not contain messages send in the conversation.\nUse [`/v2/conversations/{conversationId}/messages`](#/Conversation/conversation-service-get-messages-by-conversation-v2) to get the messages.\n"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get a support conversation.","tags":["Conversation"]},"put":{"operationId":"conversation-update-conversation","parameters":[{"in":"path","name":"conversationId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"categoryId":{"format":"uuid","type":"string"},"relatedTo":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.AggregateReference"},"title":{"type":"string"}}}}},"description":"","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"conversationId":{"format":"uuid","type":"string"}},"required":["conversationId"],"type":"object"}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Update the basic properties of the conversation.","tags":["Conversation"]}},"/v2/conversations/{conversationId}/files/{fileId}/access-token":{"get":{"operationId":"conversation-get-file-access-token","parameters":[{"in":"path","name":"conversationId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"fileId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"accessToken":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"}},"required":["accessToken","expiresAt"],"type":"object"}}},"description":"The file access token required to access the file linked with the conversation.\n"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Request an access token for the File belonging to the Conversation.","tags":["Conversation"]}},"/v2/conversation-categories":{"get":{"operationId":"conversation-list-categories","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.Category"},"type":"array"}}},"description":""},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get all conversation categories.","tags":["Conversation"]}},"/v2/conversations/{conversationId}/files":{"post":{"operationId":"conversation-request-file-upload","parameters":[{"in":"path","name":"conversationId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"","required":false},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"conversationId":{"format":"uuid","type":"string"},"rules":{"properties":{"maxSizeInKB":{"type":"integer"},"mimeTypes":{"items":{"type":"string"},"type":"array"},"properties":{"properties":{"imageDimensions":{"properties":{"max":{"properties":{"height":{"type":"integer"},"width":{"type":"integer"}},"type":"object"},"min":{"properties":{"height":{"type":"integer"},"width":{"type":"integer"}},"type":"object"}},"type":"object"}},"type":"object"}},"required":["mimeTypes","maxSizeInKB"],"type":"object"},"uploadToken":{"type":"string"}},"required":["conversationId","uploadToken","rules"],"type":"object"}}},"description":"The upload token with additional rules describing what files can be uploaded using this token.\nThe token can be used with [`POST /v2/files`](#/Files/file-service-file-create) to upload a file that is\nlinked with the conversation.\n"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Request a file upload token for the conversation.","tags":["Conversation"]}},"/v2/conversations/{conversationId}/status":{"put":{"operationId":"conversation-set-conversation-status","parameters":[{"in":"path","name":"conversationId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"status":{"enum":["open","answered","closed"],"type":"string"}},"required":["status"]}}},"description":"The object containing the new status of the conversation.\nThe statuses `open` and `answered` are displayed identically to the users as an open\n(unresolved) conversation. A conversation with the status `closed` is a solved issue.\nClosed conversations can be reopened by setting the status to `open` or by sending a\nmessage in the conversation.\n","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"conversationId":{"format":"uuid","type":"string"}},"required":["conversationId"],"type":"object"}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Update the status of a conversation.","tags":["Conversation"]}},"/v2/conversations/{conversationId}/messages/{messageId}":{"patch":{"operationId":"conversation-update-message","parameters":[{"in":"path","name":"conversationId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"messageId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"messageContent":{"type":"string"}}}}},"description":"","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"messageId":{"format":"uuid","type":"string"}},"required":["messageId"],"type":"object"}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Update the content of the message","tags":["Conversation"]}},"/v2/cronjobs/{cronjobId}/executions/{executionId}/actions/abort":{"post":{"operationId":"cronjob-abort-execution","parameters":[{"description":"ID of the CronjobExecution to be aborted.","in":"path","name":"cronjobId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"executionId","required":true,"schema":{"example":"cron-bd26li-28027320","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{}}}},"responses":{"204":{"description":"NoContent"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Abort a CronjobExecution.","tags":["Cronjob"]}},"/v2/projects/{projectId}/cronjobs":{"post":{"operationId":"cronjob-create-cronjob","parameters":[{"description":"ID of the Project you want to create a Cronjob for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.cronjob.CronjobRequest"}}},"description":"cronjob"},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"uuid","type":"string"}},"required":["id"],"type":"object"}}},"description":"Created"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create a Cronjob.","tags":["Cronjob"]},"get":{"operationId":"cronjob-list-cronjobs","parameters":[{"description":"ID of the Project for which to list Cronjobs for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"page","required":false,"schema":{"minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.cronjob.Cronjob"},"type":"array"}}},"description":"OK"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List Cronjobs belonging to a Project.","tags":["Cronjob"]}},"/v2/cronjobs/{cronjobId}/executions":{"post":{"operationId":"cronjob-create-execution","parameters":[{"description":"ID of the Cronjob to trigger.","in":"path","name":"cronjobId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{}}}},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"id":{"description":"execution-id","type":"string"}},"required":["id"],"type":"object"}}},"description":"Created"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Trigger a Cronjob.","tags":["Cronjob"]},"get":{"operationId":"cronjob-list-executions","parameters":[{"description":"ID of the Cronjob for which to list CronjobExecutions for.","in":"path","name":"cronjobId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"page","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"since","required":false,"schema":{"format":"date-time","type":"string"}},{"in":"query","name":"until","required":false,"schema":{"format":"date-time","type":"string"}},{"in":"query","name":"status","required":false,"schema":{"example":"Complete","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.cronjob.CronjobExecution"},"type":"array"}}},"description":"OK"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List CronjobExecutions belonging to a Cronjob.","tags":["Cronjob"]}},"/v2/cronjobs/{cronjobId}":{"delete":{"operationId":"cronjob-delete-cronjob","parameters":[{"description":"ID of the Cronjob to delete.","in":"path","name":"cronjobId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a Cronjob.","tags":["Cronjob"]},"get":{"operationId":"cronjob-get-cronjob","parameters":[{"description":"ID of the Cronjob to be retrieved.","in":"path","name":"cronjobId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.cronjob.Cronjob"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a Cronjob.","tags":["Cronjob"]},"patch":{"operationId":"cronjob-update-cronjob","parameters":[{"description":"ID of the Cronjob to be updated.","in":"path","name":"cronjobId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"active":{"type":"boolean"},"description":{"example":"i am a cronjob","type":"string"},"destination":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.cronjob.CronjobUrl"},{"$ref":"#/components/schemas/de.mittwald.v1.cronjob.CronjobCommand"}]},"email":{"format":"email","type":"string"},"interval":{"example":"*/5 * * * *","type":"string"},"timeout":{"maximum":86400,"minimum":1,"type":"number"}},"type":"object"}}}},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a Cronjob.","tags":["Cronjob"]}},"/v2/cronjobs/{cronjobId}/executions/{executionId}":{"get":{"operationId":"cronjob-get-execution","parameters":[{"description":"ID of the CronjobExecution to be retrieved.","example":"cron-bd26li-28027320","in":"path","name":"executionId","required":true,"schema":{"type":"string"}},{"in":"path","name":"cronjobId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.cronjob.CronjobExecution"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a CronjobExecution.","tags":["Cronjob"]}},"/v2/cronjobs/{cronjobId}/app-id":{"patch":{"operationId":"cronjob-update-cronjob-app-id","parameters":[{"description":"ID of the Cronjob to update.","in":"path","name":"cronjobId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"appId":{"format":"uuid","type":"string"}},"required":["appId"],"type":"object"}}},"description":"ID of the app to set."},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a Cronjob's app id.","tags":["Cronjob"]}},"/v2/customer-invites/{customerInviteId}/actions/accept":{"post":{"operationId":"customer-accept-customer-invite","parameters":[{"description":"ID of the CustomerInvite to be accepted.","in":"path","name":"customerInviteId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"invitationToken":{"description":"Token contained in the invite for authentication.","type":"string"}},"type":"object"}}},"required":true},"responses":{"204":{"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Accept a CustomerInvite.","tags":["Customer"]}},"/v2/customer-categories":{"post":{"operationId":"customer-create-category","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.customer.Category"}}},"description":"The category to create","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"customerId":{"type":"string"},"isPublic":{"type":"boolean"},"name":{"type":"string"},"useAgencyDomainPrices":{"type":"boolean"},"useAgencySslPrices":{"type":"boolean"}},"required":["categoryId"],"type":"object"}}},"description":"The new customer category"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create a new customer category.","tags":["Customer"]},"get":{"operationId":"customer-list-of-customer-categories","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"categories":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.customer.Category"},"type":"array"}}}}},"description":"Object containing the list of customer categories"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get all customer categories.","tags":["Customer"]}},"/v2/customer/{customerId}/invites":{"post":{"operationId":"customer-create-customer-invite","parameters":[{"description":"ID of the Customer to create a CustomerInvite for.","in":"path","name":"customerId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"mailAddress":{"description":"Mail-address of the person to be invited.","format":"email","type":"string"},"membershipExpiresAt":{"description":"Time the resulting CustomerMembership should expire at.","format":"date-time","type":"string"},"message":{"description":"Message contained in the CustomerInvite.","type":"string"},"role":{"$ref":"#/components/schemas/de.mittwald.v1.membership.CustomerRoles"}},"required":["mailAddress","role"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.membership.CustomerInvite"}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"409":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create a CustomerInvite.","tags":["Customer"]}},"/v2/customers":{"post":{"operationId":"customer-create-customer","requestBody":{"content":{"application/json":{"schema":{"properties":{"categoryId":{"type":"string"},"name":{"type":"string"},"owner":{"$ref":"#/components/schemas/de.mittwald.v1.customer.Contact"},"vatId":{"type":"string"}},"required":["name"],"type":"object"}}},"description":"The customer to create","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"customerId":{"type":"string"},"customerNumber":{"type":"string"},"name":{"type":"string"}},"required":["customerId","name","customerNumber"],"type":"object"}}},"description":"The new customer"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create a new customer profile.","tags":["Customer"]},"get":{"operationId":"customer-list-customers","parameters":[{"description":"filter to list only customers where the authenticated user has the specified role. Can be a comma seperated list.","in":"query","name":"role","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"page","required":false,"schema":{"minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.customer.Customer"},"type":"array"}}},"description":"The list of customers the authenticated user is a member for"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get all customer profiles the authenticated user has access to.","tags":["Customer"]}},"/v2/customer-invites/{customerInviteId}/actions/decline":{"post":{"operationId":"customer-decline-customer-invite","parameters":[{"description":"ID of the CustomerInvite to be declined.","in":"path","name":"customerInviteId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{}}}},"responses":{"204":{"description":""},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Decline a CustomerInvite.","tags":["Customer"]}},"/v2/customer-categories/{categoryId}":{"delete":{"operationId":"customer-delete-category","parameters":[{"in":"path","name":"categoryId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"$ref":"#/components/responses/de.mittwald.v1.customer.GenericResponse"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a customer category.","tags":["Customer"]},"get":{"operationId":"customer-get-customer-category","parameters":[{"in":"path","name":"categoryId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.customer.Category"}}},"description":"Returns the customer category"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a customer category.","tags":["Customer"]},"put":{"operationId":"customer-update-category","parameters":[{"in":"path","name":"categoryId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.customer.Category"}}},"description":"The category object to update","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"customerId":{"type":"string"},"isPublic":{"type":"boolean"},"name":{"type":"string"},"useAgencyDomainPrices":{"type":"boolean"},"useAgencySslPrices":{"type":"boolean"}},"required":["categoryId"],"type":"object"}}},"description":"The updated customer category"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a customer category.","tags":["Customer"]}},"/v2/customer-invites/{customerInviteId}":{"delete":{"operationId":"customer-delete-customer-invite","parameters":[{"description":"ID if the CustomerInvite to be deleted.","in":"path","name":"customerInviteId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":""},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a CustomerInvite.","tags":["Customer"]},"get":{"operationId":"customer-get-customer-invite","parameters":[{"description":"ID of the CustomerInvite to be retrieved.","in":"path","name":"customerInviteId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.membership.CustomerInvite"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a CustomerInvite.","tags":["Customer"]}},"/v2/customer-memberships/{customerMembershipId}":{"delete":{"operationId":"customer-delete-customer-membership","parameters":[{"description":"ID of the CustomerMembership to be deleted.","in":"path","name":"customerMembershipId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":""},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a CustomerMembership.","tags":["Customer"]},"get":{"operationId":"customer-get-customer-membership","parameters":[{"description":"ID of the CustomerMembership to retrieve.","in":"path","name":"customerMembershipId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.membership.CustomerMembership"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a CustomerMembership.","tags":["Customer"]},"patch":{"operationId":"customer-update-customer-membership","parameters":[{"description":"ID of the CustomerMembership to be updated.","in":"path","name":"customerMembershipId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"expiresAt":{"description":"Time the CustomerMembership should expire at.","format":"date-time","type":"string"},"role":{"$ref":"#/components/schemas/de.mittwald.v1.membership.CustomerRoles"}},"required":["role"],"type":"object"}}},"required":true},"responses":{"204":{"description":""},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a CustomerMembership.","tags":["Customer"]}},"/v2/customers/{customerId}":{"delete":{"operationId":"customer-delete-customer","parameters":[{"description":"The uuid of the customer to be deleted. Only customer without active contracts or unpaid invoices can be deleted.","in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"customerId":{"type":"string"}},"type":"object"}}},"description":"Returns the uuid of the deleted customer"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a customer profile.","tags":["Customer"]},"get":{"operationId":"customer-get-customer","parameters":[{"description":"The uuid of the customer to be returned","in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.customer.Customer"}}},"description":"The customer object"},"401":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a customer profile.","tags":["Customer"]},"put":{"operationId":"customer-update-customer","parameters":[{"in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"categoryId":{"type":"string"},"customerId":{"type":"string"},"name":{"type":"string"},"owner":{"$ref":"#/components/schemas/de.mittwald.v1.customer.Contact"},"vatId":{"type":"string"}},"required":["customerId","name"],"type":"object"}}},"description":"The customer object to update","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"customerId":{"type":"string"},"customerNumber":{"type":"string"},"name":{"type":"string"}},"required":["customerId","name","customerNumber"],"type":"object"}}},"description":"Name and id of the updated customer"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a customer profile.","tags":["Customer"]}},"/v2/customer-token-invite":{"get":{"operationId":"customer-get-customer-token-invite","parameters":[{"description":"Token of the CustomerInvite to be retrieved.","in":"header","name":"token","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.membership.CustomerInvite"}}},"description":""},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a CustomerInvite by token.","tags":["Customer"]}},"/v2/customers/{customerId}/legally-competent":{"get":{"operationId":"customer-is-customer-legally-competent","parameters":[{"description":"The uuid of the customer to be checked","in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"isLegallyCompetent":{"type":"boolean"}},"type":"object"}}},"description":"Check if customer is allowed to order a paid item."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Check if the customer profile has a valid contract partner configured.","tags":["Customer"]}},"/v2/customer/{customerId}/actions/leave":{"post":{"operationId":"customer-leave-customer","parameters":[{"description":"ID of the Customer to be left.","in":"path","name":"customerId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{}}}},"responses":{"204":{"description":""},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Leave a Customer.","tags":["Customer"]}},"/v2/customer-invites":{"get":{"operationId":"customer-list-customer-invites","parameters":[{"in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.membership.CustomerInvite"},"type":"array"}}},"description":"OK","headers":{"X-Pagination-Limit":{"schema":{"type":"number"}},"X-Pagination-Skip":{"schema":{"type":"number"}},"X-Pagination-TotalCount":{"schema":{"type":"number"}}}},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List CustomerInvites belonging to the executing user.","tags":["Customer"]}},"/v2/customer-memberships":{"get":{"operationId":"customer-list-customer-memberships","parameters":[{"in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.membership.CustomerMembership"},"type":"array"}}},"description":"OK","headers":{"X-Pagination-Limit":{"schema":{"type":"number"}},"X-Pagination-Skip":{"schema":{"type":"number"}},"X-Pagination-TotalCount":{"schema":{"type":"number"}}}},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List CustomerMemberships belonging to the executing user.","tags":["Customer"]}},"/v2/customers/{customerId}/invites":{"get":{"operationId":"customer-list-invites-for-customer","parameters":[{"description":"ID of the Customer to list invites for.","in":"path","name":"customerId","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.membership.CustomerInvite"},"type":"array"}}},"description":"OK","headers":{"X-Pagination-Limit":{"schema":{"type":"number"}},"X-Pagination-Skip":{"schema":{"type":"number"}},"X-Pagination-TotalCount":{"schema":{"type":"number"}}}},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List Invites belonging to a Customer.","tags":["Customer"]}},"/v2/customers/{customerId}/memberships":{"get":{"operationId":"customer-list-memberships-for-customer","parameters":[{"description":"Customer to list memberships for.","in":"path","name":"customerId","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.membership.CustomerMembership"},"type":"array"}}},"description":"OK","headers":{"X-Pagination-Limit":{"schema":{"type":"number"}},"X-Pagination-Skip":{"schema":{"type":"number"}},"X-Pagination-TotalCount":{"schema":{"type":"number"}}}},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List Memberships belonging to a Customer.","tags":["Customer"]}},"/v2/customers/{customerId}/avatar":{"delete":{"operationId":"customer-remove-avatar","parameters":[{"description":"The uuid of the customer whose avatar is to be deleted","in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Avatar removal was successful"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Access Token missing or invalid"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Remove the avatar picture of the customer profile.","tags":["Customer"]},"post":{"operationId":"customer-request-avatar-upload","parameters":[{"description":"The uuid of the customer for whom an avatar upload is to be requested","in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"refId":{"format":"uuid","type":"string"},"rules":{"properties":{"maxSizeInKB":{"type":"integer"},"mimeTypes":{"items":{"type":"string"},"type":"array"},"properties":{"properties":{"imageDimensions":{"properties":{"max":{"properties":{"height":{"type":"integer"},"width":{"type":"integer"}},"type":"object"},"min":{"properties":{"height":{"type":"integer"},"width":{"type":"integer"}},"type":"object"}},"type":"object"}},"type":"object"}},"required":["mimeTypes","maxSizeInKB"],"type":"object"}},"required":["refId","rules"],"type":"object"}}},"description":"Avatar request was successful. Use the `refId` to upload your avatar to the file service."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Access Token missing or invalid"},"500":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Internal server error"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Request a new avatar upload for the customer profile.","tags":["Customer"]}},"/v2/customer-invites/{customerInviteId}/actions/resend":{"post":{"operationId":"customer-resend-customer-invite-mail","parameters":[{"description":"ID of the CustomerInvite to resend the mail for.","in":"path","name":"customerInviteId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{}}}},"responses":{"204":{"description":""},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Resend the mail for a CustomerInvite.","tags":["Customer"]}},"/v2/projects/{projectId}/mysql-databases":{"post":{"operationId":"database-create-mysql-database","parameters":[{"description":"ID of the Project to create a MySQLDatabase for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"database":{"$ref":"#/components/schemas/de.mittwald.v1.database.CreateMySqlDatabase"},"user":{"$ref":"#/components/schemas/de.mittwald.v1.database.CreateMySqlUserWithDatabase"}},"required":["database","user"],"type":"object"}}}},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"uuid","type":"string"},"userId":{"format":"uuid","type":"string"}},"required":["id","userId"],"type":"object"}}},"description":"Created"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create a MySQLDatabase with a MySQLUser.","tags":["Database"]},"get":{"operationId":"database-list-mysql-databases","parameters":[{"description":"ID of the Project to list MySQLDatabases for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.database.MySqlDatabase"},"type":"array"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List MySQLDatabases belonging to a Project.","tags":["Database"]}},"/v2/mysql-databases/{mysqlDatabaseId}/users":{"post":{"operationId":"database-create-mysql-user","parameters":[{"description":"ID of the MySQLDatabase to create a MySQLUser for.","in":"path","name":"mysqlDatabaseId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.database.CreateMySqlUser"}}}},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"uuid","type":"string"}},"required":["id"],"type":"object"}}},"description":"Created"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create a MySQLUser.","tags":["Database"]},"get":{"operationId":"database-list-mysql-users","parameters":[{"description":"ID of the MySQLDatabase to list Users for.","in":"path","name":"mysqlDatabaseId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.database.MySqlUser"},"type":"array"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List MySQLUsers belonging to a Database.","tags":["Database"]}},"/v2/projects/{projectId}/redis-databases":{"post":{"operationId":"database-create-redis-database","parameters":[{"description":"ID of the Project to create a RedisDatabase for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"example":{"description":"My first RedisDatabase!","version":"7.0"},"properties":{"configuration":{"$ref":"#/components/schemas/de.mittwald.v1.database.RedisDatabaseConfiguration"},"description":{"description":"A description for the database.","type":"string"},"version":{"description":"The version the database should use.","type":"string"}},"required":["description","version"],"type":"object"}}}},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"uuid","type":"string"}},"required":["id"],"type":"object"}}},"description":"Created"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create a RedisDatabase.","tags":["Database"]},"get":{"operationId":"database-list-redis-databases","parameters":[{"description":"ID of the Project to list RedisDatabases for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.database.RedisDatabase"},"type":"array"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List RedisDatabases belonging to a Project.","tags":["Database"]}},"/v2/mysql-databases/{mysqlDatabaseId}":{"delete":{"operationId":"database-delete-mysql-database","parameters":[{"description":"ID of the MySQLDatabase to be deleted.","in":"path","name":"mysqlDatabaseId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a MySQLDatabase.","tags":["Database"]},"get":{"operationId":"database-get-mysql-database","parameters":[{"description":"ID of the MySQLDatabase to be retrieved.","in":"path","name":"mysqlDatabaseId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.database.MySqlDatabase"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a MySQLDatabase.","tags":["Database"]}},"/v2/mysql-users/{mysqlUserId}":{"delete":{"operationId":"database-delete-mysql-user","parameters":[{"description":"ID of the MySQLUser to delete.","in":"path","name":"mysqlUserId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a MySQLUser.","tags":["Database"]},"get":{"operationId":"database-get-mysql-user","parameters":[{"description":"ID of the MySQLUser to be retrieved.","in":"path","name":"mysqlUserId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.database.MySqlUser"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a MySQLUser.","tags":["Database"]},"put":{"operationId":"database-update-mysql-user","parameters":[{"description":"ID of the MySQLUser to update.","in":"path","name":"mysqlUserId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"accessIpMask":{"type":"string"},"accessLevel":{"enum":["full","readonly"],"type":"string"},"description":{"type":"string"},"externalAccess":{"type":"boolean"}},"required":["description","accessLevel"]}}}},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a MySQLUser.","tags":["Database"]}},"/v2/redis-databases/{redisDatabaseId}":{"delete":{"operationId":"database-delete-redis-database","parameters":[{"description":"ID of the RedisDatabase to delete.","in":"path","name":"redisDatabaseId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a RedisDatabase.","tags":["Database"]},"get":{"operationId":"database-get-redis-database","parameters":[{"description":"ID of the RedisDatabase to retrieve.","in":"path","name":"redisDatabaseId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.database.RedisDatabase"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a RedisDatabase.","tags":["Database"]}},"/v2/mysql-users/{mysqlUserId}/actions/disable":{"post":{"operationId":"database-disable-mysql-user","parameters":[{"description":"ID of the MySQLUser to disable.","in":"path","name":"mysqlUserId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{}}}},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Disable a MySQLUser.","tags":["Database"]}},"/v2/mysql-users/{mysqlUserId}/actions/enable":{"post":{"operationId":"database-enable-mysql-user","parameters":[{"description":"ID of the MySQLUser to enable.","in":"path","name":"mysqlUserId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{}}}},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Enable a MySQLUser.","tags":["Database"]}},"/v2/mysql-users/{mysqlUserId}/php-my-admin-url":{"get":{"operationId":"database-get-mysql-user-php-my-admin-url","parameters":[{"description":"ID of the MySQLUser for which to get the URL for.","in":"path","name":"mysqlUserId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.database.PhpMyAdminURL"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a MySQLUser's PhpMyAdmin-URL.","tags":["Database"]}},"/v2/mysql-charsets":{"get":{"operationId":"database-list-mysql-charsets","parameters":[{"description":"ID of the MySQLVersion for which to list the available character sets in the format `mysqlXY`.","in":"query","name":"version","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.database.MySqlCharacterSettings"},"type":"array"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List available MySQL character sets and collations, optionally filtered by a MySQLVersion.","tags":["Database"]}},"/v2/mysql-versions":{"get":{"operationId":"database-list-mysql-versions","parameters":[{"description":"ID of the Project to list available MySQLVersions for.","in":"query","name":"projectId","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.database.MySqlVersion"},"type":"array"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List MySQLVersions.","tags":["Database"]}},"/v2/redis-versions":{"get":{"operationId":"database-list-redis-versions","parameters":[{"description":"ID of the Project to list available RedisVersions for.","in":"query","name":"projectId","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.database.RedisVersion"},"type":"array"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List RedisVersions.","tags":["Database"]}},"/v2/mysql-databases/{mysqlDatabaseId}/default-charset":{"patch":{"operationId":"database-update-mysql-database-default-charset","parameters":[{"description":"ID of the MySQLDatabase to update.","in":"path","name":"mysqlDatabaseId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"characterSettings":{"$ref":"#/components/schemas/de.mittwald.v1.database.characterSettings"}},"required":["characterSettings"]}}},"description":"The default character settings to be used for the MySQLDatabase."},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a MySQLDatabase's default character settings.","tags":["Database"]}},"/v2/mysql-databases/{mysqlDatabaseId}/description":{"patch":{"operationId":"database-update-mysql-database-description","parameters":[{"description":"ID of the MySQLDatabase to update.","in":"path","name":"mysqlDatabaseId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"type":"string"}},"required":["description"]}}}},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a MySQLDatabase's description.","tags":["Database"]}},"/v2/mysql-users/{mysqlUserId}/password":{"patch":{"operationId":"database-update-mysql-user-password","parameters":[{"description":"ID of the MySQLUser for which to update the password for.","in":"path","name":"mysqlUserId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"password":{"type":"string"}},"required":["password"]}}}},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a MySQLUser's password.","tags":["Database"]}},"/v2/redis-databases/{redisDatabaseId}/configuration":{"patch":{"operationId":"database-update-redis-database-configuration","parameters":[{"description":"ID of the RedisDatabase to update.","in":"path","name":"redisDatabaseId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"configuration":{"$ref":"#/components/schemas/de.mittwald.v1.database.RedisDatabaseConfiguration"}}}}}},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a RedisDatabase's configuration.","tags":["Database"]}},"/v2/redis-databases/{redisDatabaseId}/description":{"patch":{"operationId":"database-update-redis-database-description","parameters":[{"description":"ID of the RedisDatabase to update.","in":"path","name":"redisDatabaseId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"type":"string"}},"required":["description"]}}}},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a RedisDatabase's description.","tags":["Database"]}},"/v2/appinstallations/{appInstallationId}/databases":{"put":{"operationId":"deprecated-app-link-database","deprecated":true,"parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"databaseId":{"format":"uuid","type":"string"},"databaseUserIds":{"additionalProperties":{"type":"string"},"type":"object"},"purpose":{"enum":["primary","cache","custom"],"type":"string"}},"required":["databaseId","purpose"],"type":"object"}}},"description":"Properties for linking a Database","required":true},"responses":{"204":{"description":"The database has been linked."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create linkage between an AppInstallation and a MySql-Database.","tags":["App"]}},"/v2/domains/{domainId}/screenshots/newest":{"get":{"operationId":"deprecated-domain-get-screenshot-for-domain","deprecated":true,"parameters":[{"in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"domainName":{"example":"example.com","type":"string"},"path":{"example":"/var/www","type":"string"}},"required":["domainName","path"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"references":{"items":{"type":"string"},"type":"array"}},"type":"object"}}},"description":"The References."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get File Service Reference for a Screenshot of a domain.","tags":["Domain"]}},"/v2/file-token-rules/{token}":{"get":{"operationId":"deprecated-file-get-file-token-rules","deprecated":true,"parameters":[{"description":"Token of the Token's upload rules to be retrieved.","in":"path","name":"token","required":true,"schema":{"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6","format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.file.FileUploadRules"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get a Token's upload rules.","tags":["File"]}},"/v2/file-type-rules/{name}":{"get":{"operationId":"deprecated-file-get-file-type-rules","deprecated":true,"parameters":[{"description":"Name of the Type's upload rules to be retrieved.","in":"path","name":"name","required":true,"schema":{"enum":["avatar","conversation"],"example":"avatar","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.file.FileUploadRules"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get a Type's upload rules.","tags":["File"]}},"/v2/customers/{customerId}/invoices/{invoiceId}":{"get":{"operationId":"deprecated-invoice-detail-of-invoice","description":"This route is deprecated. Use /v2/invoices/{invoiceId} instead.","parameters":[{"example":"edefeee4-e8e9-4e2d-ab95-9a2eb6104cfb","in":"path","name":"customerId","required":true,"schema":{"type":"string"}},{"example":"154219e9-bf4a-4f41-9c72-0449a98db62f","in":"path","name":"invoiceId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.Invoice"}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get details of an Invoice.","tags":["Contract"],"deprecated":true}},"/v2/newsletter-subscriptions":{"post":{"operationId":"newsletter-subscribe-user","requestBody":{"content":{"application/json":{"schema":{"properties":{"firstName":{"example":"Ada","type":"string"},"lastName":{"example":"Lovelace","type":"string"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"active":{"example":false,"type":"boolean"},"email":{"example":"a.lovelace@example.com","type":"string"},"registered":{"example":true,"type":"boolean"}},"required":["email","active","registered"],"type":"object"}}},"description":"Subscription information email has been sent."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Subscribe a user to the mStudio newsletter.","tags":["Notification"]}},"/v2/signup/email":{"put":{"operationId":"deprecated-user-change-email","requestBody":{"content":{"application/json":{"schema":{"properties":{"email":{"description":"The new Email-Address.","example":"ada.lovelace@example.com","format":"email","type":"string"}},"required":["email"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Your email has been added, but needs to be verfied. Check your mails and\ncall /email/verify with the verification code sent with the mail.\n"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values does not meet our requirements.\nPossible domain specific `type` values are:\n * EmailInUse\n * EmailBlacklisted\n * EmailMXInvalid\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Change your Email-Address.","tags":["User"],"deprecated":true},"get":{"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get your verified Email-Address.","tags":["User"],"deprecated":true}},"/v2/signup/password/reset/confirm":{"post":{"operationId":"deprecated-user-confirm-password-reset","requestBody":{"content":{"application/json":{"schema":{"properties":{"password":{"description":"The new password.","type":"string"},"token":{"description":"Password reset token","maxLength":6,"minLength":6,"type":"string"},"userId":{"description":"UserId of the user to reset the password for.","format":"uuid","type":"string"}},"required":["userId","token","password"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Password reset was successful."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values do not meet our requirements.\nPossible domain specific `type` values are:\n * WrongPasswordResetToken\n * EmailAddressNotVerified\n * PasswordIsLeaked\n * ValidationError\n * PasswordEqualsEmail\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Confirm password reset.","tags":["User"],"deprecated":true}},"/v2/users/self/issues":{"post":{"operationId":"deprecated-user-create-issue","requestBody":{"content":{"application/json":{"schema":{"properties":{"message":{"description":"Detailed report of the issue.","maxLength":5000,"type":"string"},"origin":{"description":"Origin of the issue.","type":"string"},"subject":{"description":"Descriptive subject of the report.","type":"string"},"type":{"description":"Type of feedback.","enum":["feedback","bug"],"type":"string"},"vote":{"description":"Feedback rating from bad to good.","maximum":10,"minimum":0,"type":"number"}},"required":["type","message"],"type":"object"}}},"description":"Submit an issue."},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Issue successfully submitted."},"401":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create a new issue.","tags":["User"],"deprecated":true}},"/v2/signup/token/api/{apiTokenId}":{"delete":{"operationId":"deprecated-user-delete-api-token","parameters":[{"description":"The uuid of an ApiToken.","in":"path","name":"apiTokenId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"The `ApiToken` has been deleted."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values does not meet our requirements.\nPossible domain specific `type` values are:\n * ValidationError\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Deletes an ApiToken.","tags":["User"],"deprecated":true},"put":{"operationId":"deprecated-user-edit-api-token","parameters":[{"in":"path","name":"apiTokenId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"example":"Api Token for ...","type":"string"},"expiresAt":{"format":"date-time","type":"string"}},"required":["description"],"type":"object"}}},"required":true},"responses":{"200":{"description":"ApiToken was updated."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values do not meet our requirements.\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update an existing `ApiToken`.","tags":["User"],"deprecated":true},"get":{"parameters":[{"description":"The id of an ApiToken.","in":"path","name":"apiTokenId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a specific ApiToken.","tags":["User"],"deprecated":true}},"/v2/signup/ssh/{sshKeyId}":{"delete":{"operationId":"deprecated-user-delete-ssh-key","parameters":[{"in":"path","name":"sshKeyId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"The ssh-key was removed."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Remove a ssh-key.","tags":["User"],"deprecated":true},"put":{"operationId":"deprecated-user-edit-ssh-key","parameters":[{"in":"path","name":"sshKeyId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"comment":{"example":"a.lovelace@example.com","type":"string"},"expiresAt":{"format":"date-time","type":"string"}},"required":["comment"],"type":"object"}}},"required":true},"responses":{"200":{"description":"The ssh-key has been edited."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values do not meet our requirements.\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Edit a stored ssh-key.","tags":["User"],"deprecated":true},"get":{"parameters":[{"in":"path","name":"sshKeyId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a specific stored ssh-key.","tags":["User"],"deprecated":true}},"/v2/signup/mfa":{"delete":{"operationId":"deprecated-user-disable-mfa","requestBody":{"content":{"application/json":{"schema":{"properties":{"multiFactorCode":{"description":"Multi Factor Code to confirm MFA.","maxLength":16,"minLength":6,"type":"string"}},"required":["multiFactorCode"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Multi Factor Authentication was disabled."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values does not meet our requirements.\nPossible domain specific `type` values are:\n * MultiFactorCodeNotValid\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Disable Multi Factor Authentication.","tags":["User"],"deprecated":true},"get":{"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get your current multi factor auth status.","tags":["User"],"deprecated":true},"post":{"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":false},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Initialize Multi Factor Authentication. If successful, it needs to be confirmed, before usage of mfa.","tags":["User"],"deprecated":true}},"/v2/signup/password/reset":{"post":{"operationId":"deprecated-user-init-password-reset","requestBody":{"content":{"application/json":{"schema":{"properties":{"email":{"description":"Email address to reset the password for.","example":"a.lovelace@example.com","format":"email","type":"string"}},"required":["email"],"type":"object"}}},"required":true},"responses":{"200":{"description":"The password reset process has been initialized and an email with confirmation code has been sent.\n"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values do not meet our requirements.\n"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Initialize password reset process.","tags":["User"],"deprecated":true}},"/v2/signup/logout":{"put":{"operationId":"deprecated-user-logout","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":false},"responses":{"200":{"description":"You've been logged out. The access token has been removed and invalidated."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values do not meet our requirements.\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Terminate session and invalidate access token.","tags":["User"],"deprecated":true}},"/v2/signup/email/resend":{"post":{"operationId":"deprecated-user-resend-verification-email","requestBody":{"content":{"application/json":{"schema":{"properties":{"email":{"example":"ada.lovelace@example.com","format":"email","type":"string"},"userId":{"format":"uuid","type":"string"}},"required":["multiFactorCode"],"type":"object"}}},"required":true},"responses":{"204":{"description":"New Email-Address verification mail was sent."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values do not meet our requirements.\n"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Resend the Email-Address verification email.","tags":["User"],"deprecated":true}},"/v2/user/{userId}/avatar":{"delete":{"operationId":"deprecated-user-service-avatar-remove","parameters":[{"in":"path","name":"userId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"Avatar removal was successful"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Remove Avatar","tags":["User"],"deprecated":true},"post":{"operationId":"deprecated-user-service-avatar-request-upload","parameters":[{"in":"path","name":"userId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"refId":{"format":"uuid","type":"string"},"rules":{"properties":{"maxSizeInKB":{"type":"integer"},"mimeTypes":{"items":{"type":"string"},"type":"array"},"properties":{"properties":{"imageDimensions":{"properties":{"max":{"properties":{"height":{"type":"integer"},"width":{"type":"integer"}},"type":"object"},"min":{"properties":{"height":{"type":"integer"},"width":{"type":"integer"}},"type":"object"}},"type":"object"}},"type":"object"}},"required":["mimeTypes","maxSizeInKB"],"type":"object"}},"required":["refId","rules"],"type":"object"}}},"description":"Avatar upload request was successful. Use the `refId` to upload your avatar to the /v2/files/:refId"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Request a new avatar upload","tags":["User"],"deprecated":true}},"/v2/user/feedback":{"post":{"operationId":"deprecated-user-service-feedback-create","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"properties":{"message":{"maxLength":5000,"type":"string"},"origin":{"maxLength":1000,"type":"string"},"subject":{"maxLength":100,"minLength":1,"type":"string"},"vote":{"maximum":10,"minimum":0,"type":"number"}},"required":["origin","subject","vote"],"type":"object"}}},"description":"The user feedback"},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object"}}},"description":""},"401":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Submit user feedback","tags":["User"],"deprecated":true},"get":{"operationId":"deprecated-user-service-feedback-list","parameters":[{"in":"query","name":"subject","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.user.UserFeedback"},"type":"array"}}},"description":"A list of feedback submitted by the user"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Returns your submitted feedback","tags":["User"],"deprecated":true}},"/v2/user/issues":{"post":{"operationId":"deprecated-user-service-issue-new","requestBody":{"content":{"application/json":{"schema":{"properties":{"message":{"maxLength":1000000,"type":"string"},"origin":{"type":"string"},"subject":{"type":"string"},"type":{"enum":["feedback","bug"],"type":"string"}},"required":["type","message"],"type":"object"}}},"description":"Submit an issue."},"responses":{"201":{"description":"Issue created"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"create a new issue","tags":["User"],"deprecated":true}},"/v2/user/{userId}":{"put":{"operationId":"deprecated-user-service-personal-information-update","parameters":[{"in":"path","name":"userId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"person":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Person"}},"required":["person"],"type":"object"}}},"required":true},"responses":{"204":{"description":"Your personal information has been changed"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Change your personal information","tags":["User"],"deprecated":true},"get":{"operationId":"deprecated-user-service-user-get","parameters":[{"in":"path","name":"userId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.user.User"}}},"description":"The Profile"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get profile information for the specified user if the user is related to the executing user","tags":["User"],"deprecated":true}},"/v2/user/settings":{"get":{"operationId":"deprecated-user-service-personalized-settings-get","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"settingsString":{"type":"string"}},"type":"object"}}},"description":"The settingsString"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get personalized settings for the user executing the request","tags":["User"],"deprecated":true},"put":{"operationId":"deprecated-user-service-personalized-settings-update","requestBody":{"content":{"application/json":{"schema":{"properties":{"settingsString":{"type":"string"}},"required":["settingsString"],"type":"object"}}},"required":true},"responses":{"204":{"description":"PersonalSettings have been updated"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"update personalized settings","tags":["User"],"deprecated":true}},"/v2/user/{userId}/phone":{"post":{"operationId":"deprecated-user-service-phone-number-add","parameters":[{"in":"path","name":"userId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"phoneNumber":{"type":"string"}},"required":["phoneNumber"],"type":"object"}}},"required":true},"responses":{"204":{"description":"PhoneNumber was added successfully. Now, it can be verified under /v2/user/{userId}/phone/verify"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"409":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Add phone number and init verification process","tags":["User"],"deprecated":true},"delete":{"operationId":"deprecated-user-service-phone-number-remove","parameters":[{"in":"path","name":"userId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"PhoneNumber removal was successful"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"remove your PhoneNumber","tags":["User"],"deprecated":true}},"/v2/user/{userId}/phone/verify":{"post":{"operationId":"deprecated-user-service-phone-number-verify","parameters":[{"in":"path","name":"userId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"code":{"example":"123456","type":"string"},"phoneNumber":{"example":"+491701234567","type":"string"}},"required":["phoneNumber","code"],"type":"object"}}},"required":true},"responses":{"204":{"description":"The PhoneNumber has been verified"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"409":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Verify phone number","tags":["User"],"deprecated":true}},"/v2/user":{"get":{"operationId":"deprecated-user-service-user-get-own","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.user.User"}}},"description":"The Profile"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get profile information for the executing user","tags":["User"],"deprecated":true}},"/v2/signup/sessions":{"delete":{"operationId":"deprecated-user-terminate-all-sessions","responses":{"200":{"description":"All sessions terminated."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Terminate all sessions, except the current session.","tags":["User"],"deprecated":true},"get":{"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List all sessions.","tags":["User"],"deprecated":true}},"/v2/signup/sessions/{tokenId}":{"delete":{"operationId":"deprecated-user-terminate-session","parameters":[{"description":"TokenId to identify the concrete session.","in":"path","name":"tokenId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Session terminated."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Terminate a specific Session.","tags":["User"],"deprecated":true},"get":{"parameters":[{"description":"TokenId to identify a specific session.","in":"path","name":"tokenId","required":true,"schema":{"type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a specific session.","tags":["User"],"deprecated":true}},"/v2/signup/profile":{"put":{"operationId":"deprecated-user-update-account","requestBody":{"content":{"application/json":{"schema":{"properties":{"person":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Person"}},"required":["person"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Account has been updated."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values does not meet our requirements.\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update your account information.","tags":["User"],"deprecated":true},"delete":{"requestBody":{"content":{"application/json":{"schema":{"properties":{"multiFactorCode":{"description":"Multi Factor Code to authorize your request.","example":"123456","maxLength":16,"minLength":6,"type":"string"},"password":{"type":"string"}},"required":["password"],"type":"object"}}},"required":true},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete your account and all your personal data.","tags":["User"],"deprecated":true},"get":{"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":false},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get your account information.","tags":["User"],"deprecated":true}},"/v2/signup/email/verify":{"post":{"operationId":"deprecated-user-verify-email","requestBody":{"content":{"application/json":{"schema":{"properties":{"email":{"description":"The Email-Address to verify.","example":"ada.lovelace@example.com","format":"email","type":"string"},"token":{"description":"The token found in the verification email.","example":"123456","type":"string"}},"required":["email"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Email has been verified."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values do not meet our requirements.\nPossible domain specific `type` values are:\n * WrongVerificationToken\n * EmailNotFound\n * WrongVerificationToken\n * EmailAddressAlreadyVerified\n"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Verify an added Email-Address.","tags":["User"],"deprecated":true}},"/v2/dns/zones":{"post":{"parameters":[],"requestBody":{"content":{"application/json":{"schema":{"properties":{"name":{"format":"idn-dnsname","type":"string"},"parentZoneId":{"format":"uuid","type":"string"}},"required":["name","parentZoneId"],"type":"object"}}}},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create a DNSZone.","tags":["Domain"],"deprecated":true}},"/v2/dns-zones":{"post":{"operationId":"dns-create-dns-zone","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"properties":{"name":{"format":"idn-dnsname","type":"string"},"parentZoneId":{"format":"uuid","type":"string"}},"required":["name","parentZoneId"],"type":"object"}}}},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"uuid","type":"string"}},"required":["id"],"type":"object"}}},"description":"The ID of the created DNSZone."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create a DNSZone.","tags":["Domain"]}},"/v2/dns/zones/{dnsZoneId}":{"delete":{"parameters":[{"description":"The ID of the DNSZone to be deleted.","in":"path","name":"dnsZoneId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a DNSZone.","tags":["Domain"],"deprecated":true},"get":{"parameters":[{"description":"The ID of the zone to be retrieved.","in":"path","name":"dnsZoneId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a DNSZone.","tags":["Domain"],"deprecated":true}},"/v2/dns-zones/{dnsZoneId}":{"delete":{"operationId":"dns-delete-dns-zone","parameters":[{"description":"The ID of the DNSZone to be deleted.","in":"path","name":"dnsZoneId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a DNSZone.","tags":["Domain"]},"get":{"operationId":"dns-get-dns-zone","parameters":[{"description":"The ID of the zone to be retrieved.","in":"path","name":"dnsZoneId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.dns.Zone"}}},"description":"The requested DNSZone."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a DNSZone.","tags":["Domain"]}},"/v2/projects/{projectId}/dns/zones":{"get":{"parameters":[{"description":"ID of the Project to list DNSZones for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List DNSZones belonging to a Project.","tags":["Domain"],"deprecated":true}},"/v2/projects/{projectId}/dns-zones":{"get":{"operationId":"dns-list-dns-zones","parameters":[{"description":"ID of the Project to list DNSZones for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.dns.Zone"},"type":"array"}}},"description":"An array of DNSZone objects."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List DNSZones belonging to a Project.","tags":["Domain"]}},"/v2/dns/zones/{zoneId}/recordset/acombined/custom":{"put":{"operationId":"dns-record-a-set-custom-deprecated","deprecated":true,"parameters":[{"description":"the id of the zone the record belongs to","in":"path","name":"zoneId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordUnset"},{"$ref":"#/components/schemas/de.mittwald.v1.dns.CombinedACustom"}]}}}},"responses":{"204":{"description":"recordset updated"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"updates a-records for a specific zone","tags":["Domain"]}},"/v2/dns/zones/{zoneId}/recordset/acombined/managed/ingress":{"post":{"operationId":"dns-record-a-set-managed-by-ingress-deprecated","deprecated":true,"parameters":[{"description":"the id of the zone you want to set managed","in":"path","name":"zoneId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{},"type":"object"}}}},"responses":{"204":{"content":{"application/json":{"schema":{"properties":{"ingressId":{"format":"uuid","type":"string"}},"required":["ingressId"],"type":"object"}}},"description":"zone set managed by ingressId"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"set a-records managed by ingress for a specific zone","tags":["Domain"]}},"/v2/dns/zones/{zoneId}/recordset/cname":{"put":{"operationId":"dns-record-cname-set-deprecated","deprecated":true,"parameters":[{"description":"the id of the zone the record belongs to","in":"path","name":"zoneId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordUnset"},{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordCNAMEComponent"}]}}}},"responses":{"204":{"description":"recordset updated"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"updates cname-record for a specific zone","tags":["Domain"]}},"/v2/dns/zones/{zoneId}/recordset/mx/custom":{"put":{"operationId":"dns-record-mx-set-custom-deprecated","deprecated":true,"parameters":[{"description":"the id of the zone the record belongs to","in":"path","name":"zoneId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordUnset"},{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordMXCustom"}]}}}},"responses":{"204":{"description":"recordset updated"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"updates mx-records for a specific zone","tags":["Domain"]}},"/v2/dns/zones/{zoneId}/recordset/mx/managed":{"post":{"operationId":"dns-record-mx-set-managed-deprecated","deprecated":true,"parameters":[{"description":"the id of the zone the record belongs to","in":"path","name":"zoneId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object"}}}},"responses":{"204":{"description":"recordset updated"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"sets mx-records to managed for a specific zone","tags":["Domain"]}},"/v2/dns/zones/{zoneId}/recordset/srv":{"put":{"operationId":"dns-record-srv-set-deprecated","deprecated":true,"parameters":[{"description":"the id of the zone the record belongs to","in":"path","name":"zoneId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordUnset"},{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordSRVComponent"}]}}}},"responses":{"204":{"description":"recordset updated"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"updates srv-records for a specific zone","tags":["Domain"]}},"/v2/dns/zones/{zoneId}/recordset/txt":{"put":{"operationId":"dns-record-txt-set-deprecated","deprecated":true,"parameters":[{"description":"the id of the zone the record belongs to","in":"path","name":"zoneId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordUnset"},{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordTXTComponent"}]}}}},"responses":{"204":{"description":"recordset updated"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"updates txt-records for a specific zone","tags":["Domain"]}},"/v2/dns-zones/{dnsZoneId}/record-sets/{recordSet}/actions/set-managed":{"post":{"operationId":"dns-set-record-set-managed","parameters":[{"description":"The ID of the DNSZone to set a record set to managed for.","in":"path","name":"dnsZoneId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"The record set to set to managed.","in":"path","name":"recordSet","required":true,"schema":{"enum":["a","mx"],"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{},"type":"object"}}}},"responses":{"204":{"content":{"application/json":{"schema":{"properties":{"ingressId":{"format":"uuid","type":"string"}},"type":"object"}}},"description":"The ID of the Ingress the a-records were set for, or an empty object if mx-records were set."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Set a record set on a DNSZone to managed.","tags":["Domain"]}},"/v2/dns-zones/{dnsZoneId}/record-sets/{recordSet}":{"put":{"operationId":"dns-update-record-set","parameters":[{"description":"The ID of the DNSZone to update a record set for.","in":"path","name":"dnsZoneId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"The record set to be updated.","in":"path","name":"recordSet","required":true,"schema":{"enum":["a","mx","txt","srv","cname"],"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordUnset"},{"$ref":"#/components/schemas/de.mittwald.v1.dns.CombinedACustom"},{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordMXCustom"},{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordTXTComponent"},{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordSRVComponent"},{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordCNAMEComponent"}]}}}},"responses":{"204":{"description":"Record set updated."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a record set on a DNSZone.","tags":["Domain"]}},"/v2/domains/{domainId}/declarations":{"delete":{"description":"Abort an incomplete Domain registration/transfer.","parameters":[{"in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Abort a Domain declaration.","tags":["Domain"],"deprecated":true}},"/v2/domains/{domainId}/declaration":{"delete":{"operationId":"domain-abort-domain-declaration","description":"Abort an incomplete Domain registration/transfer.","parameters":[{"in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Abort a Domain declaration.","tags":["Domain"]}},"/v2/domains/{domainId}/handles/ownerc":{"put":{"operationId":"domain-change-ownerc-of-domain-v2-deprecated","deprecated":true,"description":"Change the domain owner of a fully registered domain.","parameters":[{"in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"ownerC":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.domain.HandleField"},"minItems":1,"type":"array"}},"required":["ownerC"]}}},"description":"The new handle fields for the new owner."},"responses":{"200":{"$ref":"#/components/responses/de.mittwald.v1.domain.SuccessResponse"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Change the owner contact of a domain.","tags":["Domain"]}},"/v2/domains/{domainId}/projectId":{"put":{"operationId":"domain-change-project-of-domain-v2-deprecated","deprecated":true,"parameters":[{"in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"projectId":{"format":"uuid","type":"string"}}}}}},"responses":{"204":{"description":"No Content"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Change the Project relation of a Domain.","tags":["Domain"]}},"/v2/domain-registrable":{"post":{"operationId":"domain-check-domain-registrability","description":"If false, you have to start a transfer with an auth code instead.","requestBody":{"content":{"application/json":{"schema":{"properties":{"domain":{"format":"naked-domain","type":"string"}},"required":["domain"]}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"isPremium":{"type":"boolean"},"registrable":{"type":"boolean"}},"required":["registrable","isPremium"],"type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[],"summary":"Check if a Domain is available to register.","tags":["Domain"]}},"/v2/domains":{"post":{"operationId":"domain-check-domain-registrability-v2-deprecated","deprecated":true,"description":"If false, you have to start a transfer with an auth code instead.","requestBody":{"content":{"application/json":{"schema":{"properties":{"domain":{"format":"naked-domain","type":"string"}},"required":["domain"]}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"available":{"type":"boolean"}},"required":["available"],"type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[],"summary":"Check if a Domain is available to register.","tags":["Domain"]},"get":{"operationId":"domain-list-domains","parameters":[{"in":"query","name":"projectId","required":false,"schema":{"format":"uuid","type":"string"}},{"in":"query","name":"page","required":false,"schema":{"minimum":1,"type":"integer"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":1,"type":"integer"}},{"description":"Search for domain names in these list. Works only in combination with projectId. Input will be handled like '%YourInput%'","in":"query","name":"domainSearchName","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.domain.Domain"},"type":"array"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List Domains","tags":["Domain"]}},"/v2/domain-transferable":{"post":{"operationId":"domain-check-domain-transferability","requestBody":{"content":{"application/json":{"schema":{"properties":{"authCode":{"type":"string"},"domain":{"format":"naked-domain","type":"string"}},"required":["domain"]}}}},"responses":{"200":{"$ref":"#/components/responses/de.mittwald.v1.domain.TransferabilityResponse"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[],"summary":"Check if a Domain is available to transfer.","tags":["Domain"]}},"/v2/domains/{domainId}/actions/create-authcode":{"post":{"parameters":[{"in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create an auth code for a Domains transfer-out process.","tags":["Domain"],"deprecated":true}},"/v2/domains/{domainId}/actions/auth-code":{"post":{"operationId":"domain-create-domain-auth-code","parameters":[{"in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"authCode":{"type":"string"}},"required":["authCode"],"type":"object"}}},"description":"Created"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create an auth code for a Domains transfer-out process.","tags":["Domain"]}},"/v2/domains/{domainId}/nameservers":{"put":{"operationId":"domain-declare-nameservers-v2-deprecated","deprecated":true,"parameters":[{"in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"nameservers":{"items":{"format":"idn-hostname","type":"string"},"minItems":2,"type":"array","uniqueItems":true}}}}}},"responses":{"204":{"description":"No Content"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Change all nameservers of a Domain.","tags":["Domain"]},"patch":{"operationId":"domain-update-domain-nameservers","parameters":[{"in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"nameservers":{"items":{"format":"idn-hostname","type":"string"},"minItems":2,"type":"array","uniqueItems":true}}}}}},"responses":{"204":{"description":"No Content"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the nameservers of a Domain.","tags":["Domain"]}},"/v2/domains/{domainId}/declarations/authcode":{"put":{"operationId":"domain-declare-process-change-authcode-v2-deprecated","deprecated":true,"description":"Change a wrong AuthCode of your transfer domain request (declare domain process). This route will also restart the transfer itself.","parameters":[{"in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"authCode":{"minLength":4,"type":"string"}},"required":["authCode"]}}},"description":"The new handle fields for the new owner."},"responses":{"200":{"$ref":"#/components/responses/de.mittwald.v1.domain.SuccessResponse"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update an AuthCode.","tags":["Domain"]}},"/v2/domains/{domainId}/declarations/handles":{"put":{"operationId":"domain-declare-process-change-handles-v2-deprecated","deprecated":true,"description":"This route will also restart the transfer or register itself.","parameters":[{"description":"The domain id from which the ownerC is to be changed","in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"ownerC":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.domain.HandleField"},"minItems":1,"type":"array"}},"required":["ownerC"]}}},"description":"The new handle fields for the new owner."},"responses":{"200":{"$ref":"#/components/responses/de.mittwald.v1.domain.SuccessResponse"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a Domain's OwnerC handle.","tags":["Domain"]}},"/v2/domains/{domainId}":{"delete":{"operationId":"domain-delete-domain","parameters":[{"in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"query","name":"transit","schema":{"description":"Only for .de Domains.","type":"boolean"}}],"responses":{"200":{"$ref":"#/components/responses/de.mittwald.v1.domain.SuccessResponse"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a Domain.","tags":["Domain"]},"get":{"operationId":"domain-get-domain","parameters":[{"in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.domain.Domain"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a Domain.","tags":["Domain"]}},"/v2/domains/handle-schema/{domainName}":{"get":{"operationId":"domain-get-handle-fields-v2-deprecated","deprecated":true,"description":"Get required handle fields of a registrar for your domain process (transfer/registration).","parameters":[{"description":"The whole domain name","in":"path","name":"domainName","required":true,"schema":{"format":"naked-domain","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"jsonSchemaAdminC":{"type":"object"},"jsonSchemaOwnerC":{"type":"object"}},"required":["jsonSchemaOwnerC"],"type":"object"}}},"description":"The parseable json schema objects"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[],"summary":"Get a HandleSchema.","tags":["Domain"]}},"/v2/domains/{domainId}/latest-screenshot":{"get":{"operationId":"domain-get-latest-screenshot","parameters":[{"in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"domainName":{"example":"example.com","type":"string"},"path":{"example":"/var/www","type":"string"}},"required":["domainName","path"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"reference":{"type":"string"}},"type":"object"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get the latest screenshot's FileReference belonging to a Domain.","tags":["Domain"]}},"/v2/projects/{projectId}/domains":{"get":{"operationId":"domain-list-domains-v2-deprecated","deprecated":true,"parameters":[{"in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"query","name":"page","required":false,"schema":{"minimum":1,"type":"integer"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":1,"type":"integer"}},{"description":"Search for domain names in these list. Input will be handled like '%YourInput%'","in":"query","name":"domainSearchName","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.domain.Domain"},"type":"array"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List Domains belonging to a Project.","tags":["Domain"]}},"/v2/domain-tlds/{tld}/contact-schemas":{"get":{"operationId":"domain-list-tld-contact-schemas","description":"List the contact schemas describing the fields required to register/transfer a Domain.","parameters":[{"description":"The top level domain to retrieve the schemas for.","example":{"value":"de"},"in":"path","name":"tld","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"jsonSchemaAdminC":{"type":"object"},"jsonSchemaOwnerC":{"type":"object"}},"required":["jsonSchemaOwnerC"],"type":"object"}}},"description":"The JSON-Schema objects."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[],"summary":"List the contact schemas for a TLD.","tags":["Domain"]}},"/v2/domains/supported-tlds":{"get":{"description":"List the top level domains currently supported by our API.","responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[],"summary":"List TLDs.","tags":["Domain"],"deprecated":true}},"/v2/domain-tlds":{"get":{"operationId":"domain-list-tlds","description":"List the top level domains currently supported by our API.","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.domain.TopLevel"},"type":"array"}}},"description":""},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[],"summary":"List TLDs.","tags":["Domain"]}},"/v2/domains/{domainId}/actions/resend-email":{"post":{"operationId":"domain-resend-domain-email","description":"Trigger a resend of a confirmation or registrant verification email. Has no effect on .de Domains.","parameters":[{"in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Resend a Domain email.","tags":["Domain"]}},"/v2/domains/{domainId}/authcode":{"patch":{"description":"Update an incorrect auth code of an ongoing/failed Domain transfer. This route will also restart the transfer itself.","parameters":[{"in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"authCode":{"minLength":4,"type":"string"}},"required":["authCode"]}}}},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the auth code of a Domain.","tags":["Domain"],"deprecated":true}},"/v2/domains/{domainId}/auth-code":{"patch":{"operationId":"domain-update-domain-auth-code","description":"Update an incorrect auth code of an ongoing/failed Domain transfer. This route will also restart the transfer itself.","parameters":[{"in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"authCode":{"minLength":4,"type":"string"}},"required":["authCode"]}}}},"responses":{"200":{"$ref":"#/components/responses/de.mittwald.v1.domain.SuccessResponse"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the auth code of a Domain.","tags":["Domain"]}},"/v2/domains/{domainId}/contacts/{contact}":{"patch":{"operationId":"domain-update-domain-contact","parameters":[{"in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"contact","required":true,"schema":{"enum":["owner"],"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"contact":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.domain.HandleField"},"minItems":1,"type":"array"}},"required":["contact"]}}},"description":"The new contact data of the Domain."},"responses":{"200":{"$ref":"#/components/responses/de.mittwald.v1.domain.SuccessResponse"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a contact of a Domain.","tags":["Domain"]}},"/v2/domains/{domainId}/project-id":{"patch":{"operationId":"domain-update-domain-project-id","parameters":[{"in":"path","name":"domainId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"projectId":{"format":"uuid","type":"string"}}}}}},"responses":{"204":{"description":"No Content"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a Domain's project id.","tags":["Domain"]}},"/v2/extension-instances/{extensionInstanceId}/tokens":{"post":{"operationId":"extension-authenticate-instance","parameters":[{"in":"path","name":"extensionInstanceId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"extensionInstanceSecret":{"description":"The latest secret an external application received via lifecycle webhooks.\nNamely ExtensionAddedToContext and ExtensionInstanceSecretRotated.\n","type":"string"}},"required":["extensionInstanceSecret"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"expiry":{"format":"date-time","type":"string"},"publicToken":{"description":"Set this in the 'x-access-token' header when performing domain actions.","type":"string"}},"required":["publicToken","expiry"],"type":"object"}}},"description":"You received a public token with a short expiry. You can now perform domain actions."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Authenticate your external application using the extensionInstanceSecret.","tags":["Marketplace"]}},"/v2/extension-instances/{extensionInstanceId}/scopes":{"patch":{"operationId":"extension-consent-to-extension-scopes","parameters":[{"in":"path","name":"extensionInstanceId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"consentedScopes":{"items":{"type":"string"},"type":"array"}},"required":["consentedScopes"],"type":"object"}}},"required":true},"responses":{"204":{"content":{"application/json":{"schema":{}}},"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Consent to extension scopes.","tags":["Marketplace"]}},"/v2/extension-instances":{"post":{"operationId":"extension-create-extension-instance","requestBody":{"content":{"application/json":{"schema":{"properties":{"consentedScopes":{"items":{"type":"string"},"type":"array"},"context":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.Context"},"contextId":{"format":"uuid","type":"string"},"extensionId":{"format":"uuid","type":"string"}},"required":["extensionId","consentedScopes","context","contextId"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"uuid","type":"string"}},"required":["id"]}}},"description":"The ExtensionInstance ID."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create an ExtensionInstance.","tags":["Marketplace"]},"get":{"operationId":"extension-list-extension-instances","parameters":[{"in":"query","name":"limit","required":false,"schema":{"default":1000,"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"default":0,"type":"integer"}},{"in":"query","name":"page","required":false,"schema":{"default":1,"type":"integer"}},{"in":"query","name":"context","required":true,"schema":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.Context"}},{"description":"The ID of your customer, project or user.","in":"query","name":"contextId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ExtensionInstance"},"type":"array"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List ExtensionInstances.","tags":["Marketplace"]}},"/v2/extension-instances/{extensionInstanceId}/actions/create-access-token-retrieval-key":{"post":{"operationId":"extension-create-retrieval-key","parameters":[{"in":"path","name":"extensionInstanceId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"accessTokenRetrievalKey":{"type":"string"},"userId":{"format":"uuid","type":"string"}},"required":["accessTokenRetrievalKey","userId"],"type":"object"}}},"description":"An access token retrieval key. This key can be used to retrieve a scoped access token from an external application."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create an access token retrieval key for an extension instance.","tags":["Marketplace"]}},"/v2/extension-instances/{extensionInstanceId}":{"delete":{"operationId":"extension-delete-extension-instance","parameters":[{"in":"path","name":"extensionInstanceId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"content":{"application/json":{"schema":{}}},"description":"NoContent"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete an ExtensionInstance.","tags":["Marketplace"]},"get":{"operationId":"extension-get-extension-instance","parameters":[{"in":"path","name":"extensionInstanceId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ExtensionInstance"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get an ExtensionInstance.","tags":["Marketplace"]}},"/v2/extension-instances/{extensionInstanceId}/actions/disable":{"post":{"operationId":"extension-disable-extension-instance","parameters":[{"in":"path","name":"extensionInstanceId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"content":{"application/json":{"schema":{}}},"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Disable an ExtensionInstance.","tags":["Marketplace"]}},"/v2/extension-instances/{extensionInstanceId}/actions/enable":{"post":{"operationId":"extension-enable-extension-instance","parameters":[{"in":"path","name":"extensionInstanceId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"content":{"application/json":{"schema":{}}},"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Enable an ExtensionInstance.","tags":["Marketplace"]}},"/v2/contributors/{contributorId}":{"get":{"operationId":"extension-get-contributor","parameters":[{"in":"path","name":"contributorId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.Contributor"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a Contributor.","tags":["Marketplace"]}},"/v2/extensions/{extensionId}":{"get":{"operationId":"extension-get-extension","parameters":[{"in":"path","name":"extensionId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.Extension"}}},"description":"OK"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get an Extension.","tags":["Marketplace"]}},"/v2/webhook-public-keys/{serial}":{"get":{"operationId":"extension-get-public-key","parameters":[{"description":"The serial id of a specific public key. Use `latest` to get the latest public key.","in":"path","name":"serial","required":true,"schema":{"example":"latest","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.PublicKey"}}},"description":"Use this public key to verify the webhook signature on your end."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get the public key to verify the webhook signature.","tags":["Marketplace"]}},"/v2/contributors":{"get":{"operationId":"extension-list-contributors","parameters":[{"in":"query","name":"limit","required":false,"schema":{"default":1000,"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"default":0,"type":"integer"}},{"in":"query","name":"page","required":false,"schema":{"default":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.Contributor"},"type":"array"}}},"description":"OK"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List Contributors.","tags":["Marketplace"]}},"/v2/extensions":{"get":{"operationId":"extension-list-extensions","parameters":[{"in":"query","name":"context","required":false,"schema":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.Context"}},{"in":"query","name":"limit","required":false,"schema":{"default":1000,"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"default":0,"type":"integer"}},{"in":"query","name":"page","required":false,"schema":{"default":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.Extension"},"type":"array"}}},"description":"OK"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List Extensions.","tags":["Marketplace"]}},"/v2/files":{"post":{"operationId":"file-create-file","parameters":[{"in":"header","name":"Token","required":true,"schema":{"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6","format":"uuid","type":"string"}}],"requestBody":{"content":{"application/octet-stream":{"schema":{"properties":{"file":{"example":"binary","format":"binary","type":"string"}},"required":["file"],"type":"object"}}}},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.file.FileMeta"}}},"description":"Created"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"401":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"406":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"422":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Create a File.","tags":["File"]}},"/v2/files/{fileId}/meta":{"get":{"operationId":"file-get-file-meta","parameters":[{"description":"ID of the File to get the meta for.","in":"path","name":"fileId","required":true,"schema":{"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6","format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.file.FileMeta"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"401":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"422":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get a File's meta.","tags":["File"]}},"/v2/file-upload-tokens/{fileUploadToken}/rules":{"get":{"operationId":"file-get-file-upload-token-rules","parameters":[{"description":"FileUploadToken to retrieve rules for.","in":"path","name":"fileUploadToken","required":true,"schema":{"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6","format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.file.FileUploadRules"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get a FileUploadToken's rules.","tags":["File"]}},"/v2/file-upload-types/{fileUploadType}/rules":{"get":{"operationId":"file-get-file-upload-type-rules","parameters":[{"description":"FileUploadType to retrieve rules for.","in":"path","name":"fileUploadType","required":true,"schema":{"enum":["avatar","conversation"],"example":"avatar","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.file.FileUploadRules"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get a FileUploadType's rules.","tags":["File"]}},"/v2/files/{fileId}":{"get":{"operationId":"file-get-file","parameters":[{"description":"ID of the File to be retrieved.","in":"path","name":"fileId","required":true,"schema":{"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6","format":"uuid","type":"string"}},{"in":"header","name":"Accept","schema":{"default":"application/octet-stream","enum":["application/octet-stream","text/plain;base64"],"example":"application/octet-stream","type":"string"}},{"in":"header","name":"Content-Disposition","schema":{"default":"inline","enum":["inline","attachment"],"example":"inline","type":"string"}},{"description":"Only needed for protected Files.","in":"header","name":"Token","required":false,"schema":{"example":"jwt","type":"string"}}],"responses":{"200":{"content":{"application/octet-stream":{"schema":{"type":"string"}},"text/plain;base64":{"schema":{"type":"string"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"401":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"422":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get a File.","tags":["File"]}},"/v2/files/{fileId}/{fileName}":{"get":{"operationId":"file-get-file-with-name","parameters":[{"description":"ID of the File to be retrieved.","in":"path","name":"fileId","required":true,"schema":{"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6","format":"uuid","type":"string"}},{"in":"header","name":"Accept","schema":{"default":"application/octet-stream","enum":["application/octet-stream","text/plain;base64"],"example":"application/octet-stream","type":"string"}},{"in":"header","name":"Content-Disposition","schema":{"default":"inline","enum":["inline","attachment"],"example":"inline","type":"string"}},{"description":"Only needed for protected Files.","in":"header","name":"Token","required":false,"schema":{"example":"jwt","type":"string"}},{"description":"Name of the File to be retrieved.","in":"path","name":"fileName","required":true,"schema":{"example":"me.jpeg","type":"string"}}],"responses":{"200":{"content":{"application/octet-stream":{"schema":{"type":"string"}},"text/plain;base64":{"schema":{"type":"string"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"401":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"422":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get a File.","tags":["File"]}},"/v2/ingresses":{"post":{"operationId":"ingress-create-ingress","requestBody":{"content":{"application/json":{"schema":{"properties":{"hostname":{"format":"idn-hostname","type":"string"},"paths":{"description":"A list of paths. The default path `/` is always present and cannot be removed.","items":{"$ref":"#/components/schemas/de.mittwald.v1.ingress.Path"},"type":"array"},"projectId":{"format":"uuid","type":"string"}},"required":["hostname","projectId","paths"],"type":"object"}}}},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"uuid","type":"string"},"ownership":{"$ref":"#/components/schemas/de.mittwald.v1.ingress.Ownership"}},"required":["id","ownership"],"type":"object"}}},"description":"Created"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create an Ingress.","tags":["Domain"]},"get":{"operationId":"ingress-list-ingresses","parameters":[{"description":"ID of the Project to list Ingresses for.","in":"query","name":"projectId","required":false,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.ingress.Ingress"},"type":"array"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List Ingresses.","tags":["Domain"]}},"/v2/ingresses/{ingressId}":{"delete":{"operationId":"ingress-delete-ingress","parameters":[{"in":"path","name":"ingressId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"No Content"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete an Ingress.","tags":["Domain"]},"get":{"operationId":"ingress-get-ingress","parameters":[{"description":"ID of the Ingress to be retrieved.","in":"path","name":"ingressId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.ingress.Ingress"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get an Ingress.","tags":["Domain"]}},"/v2/ingresses/{ingressId}/actions/verify-ownership":{"post":{"operationId":"ingress-ingress-verify-ownership","parameters":[{"description":"UUID of the Ingress to verify the ownership for.","in":"path","name":"ingressId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Verifiy the ownership of an Ingress.","tags":["Domain"]}},"/v2/projects/{projectId}/ingresses":{"get":{"operationId":"ingress-list-ingresses-v2-deprecated","deprecated":true,"parameters":[{"description":"ID of the Project to list Ingresses for","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.ingress.IngressDeprecated"},"type":"array"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List Ingresses belonging to a project.","tags":["Domain"]}},"/v2/ingresses/{ingressId}/paths":{"put":{"operationId":"ingress-paths-deprecated","deprecated":true,"parameters":[{"in":"path","name":"ingressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.ingress.Path"},"type":"array"}}}},"responses":{"204":{"description":"No Content"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update an Ingresses paths.","tags":["Domain"]},"patch":{"operationId":"ingress-update-ingress-paths","parameters":[{"in":"path","name":"ingressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.ingress.Path"},"type":"array"}}}},"responses":{"204":{"description":"No Content"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the paths of an Ingress.","tags":["Domain"]}},"/v2/ingresses/{ingressId}/actions/request-acme-certificate-issuance":{"post":{"operationId":"ingress-request-ingress-acme-certificate-issuance","parameters":[{"description":"UUID of the Ingress to request the issuance for.","in":"path","name":"ingressId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Request the ACME certificate issuance of an Ingress.","tags":["Domain"]}},"/v2/ingresses/{ingressId}/tls":{"put":{"operationId":"ingress-tls-deprecated","deprecated":true,"parameters":[{"in":"path","name":"ingressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.ingress.TlsAcme"},{"$ref":"#/components/schemas/de.mittwald.v1.ingress.TlsCertificate"}]}}},"description":""},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update an Ingresses tls settings.","tags":["Domain"]},"patch":{"operationId":"ingress-update-ingress-tls","parameters":[{"in":"path","name":"ingressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.ingress.TlsAcme"},{"$ref":"#/components/schemas/de.mittwald.v1.ingress.TlsCertificate"}]}}},"description":""},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the tls settings of an Ingress.","tags":["Domain"]}},"/v2/invoices/{invoiceId}":{"get":{"operationId":"invoice-detail","parameters":[{"example":"154219e9-bf4a-4f41-9c72-0449a98db62f","in":"path","name":"invoiceId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.Invoice"}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get details of an Invoice.","tags":["Contract"]}},"/v2/customers/{customerId}/invoice-settings":{"get":{"operationId":"invoice-get-detail-of-invoice-settings","parameters":[{"example":"edefeee4-e8e9-4e2d-ab95-9a2eb6104cfb","in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.InvoiceSettings"}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get InvoiceSettings of a Customer.","tags":["Contract"]},"put":{"operationId":"invoice-update-invoice-settings","parameters":[{"example":"edefeee4-e8e9-4e2d-ab95-9a2eb6104cfb","in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"additionalEmailRecipients":{"example":["hallo@test.de"],"items":{"format":"email","type":"string"},"type":"array"},"invoicePeriod":{"example":1,"minimum":0,"type":"integer"},"paymentSettings":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.PaymentSettings"},"printedInvoices":{"type":"boolean"},"recipient":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.Recipient"},"recipientSameAsOwner":{"type":"boolean"},"targetDay":{"example":15,"maximum":28,"minimum":0,"type":"integer"}},"required":["invoicePeriod","paymentSettings"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.InvoiceSettings"}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update InvoiceSettings of a Customer.","tags":["Contract"]}},"/v2/customers/{customerId}/invoices/{invoiceId}/file-access-token":{"get":{"operationId":"invoice-get-file-access-token","parameters":[{"example":"edefeee4-e8e9-4e2d-ab95-9a2eb6104cfb","in":"path","name":"customerId","required":true,"schema":{"type":"string"}},{"example":"154219e9-bf4a-4f41-9c72-0449a98db62f","in":"path","name":"invoiceId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"accessToken":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"}},"required":["accessToken","expiresAt"],"type":"object"}}},"description":"The File Access Token required to access the Invoice file."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Request an Access Token for the Invoice file.","tags":["Contract"]}},"/v2/customers/{customerId}/invoices":{"get":{"operationId":"invoice-list-customer-invoices","parameters":[{"example":"ac3c8bbe-4c44-4f34-b6c7-1e6af48c3a7c","in":"path","name":"customerId","required":true,"schema":{"type":"string"}},{"example":["REGULAR","CORRECTION"],"in":"query","name":"invoiceTypes","required":false,"schema":{"items":{"enum":["REGULAR","REISSUE","CORRECTION","CANCELLATION"],"type":"string"},"type":"array"}},{"example":1000,"in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"example":0,"in":"query","name":"skip","required":false,"schema":{"type":"integer"}},{"example":1,"in":"query","name":"page","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.Invoice"},"type":"array"}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List Invoices of a Customer.","tags":["Contract"]}},"/v2/projects/{projectId}/deliveryboxes":{"post":{"parameters":[{"description":"ID of the Project to create the DeliveryBox in.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"type":"string"},"password":{"type":"string"}},"required":["description","password"],"type":"object"}}},"description":"DeliveryBox"},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create a DeliveryBox.","tags":["Mail"],"deprecated":true},"get":{"parameters":[{"description":"ID of the Project to list DeliveryBoxes for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List DeliveryBoxes belonging to a Project.","tags":["Mail"],"deprecated":true}},"/v2/projects/{projectId}/delivery-boxes":{"post":{"operationId":"mail-create-deliverybox","parameters":[{"description":"ID of the Project to create the DeliveryBox in.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"type":"string"},"password":{"type":"string"}},"required":["description","password"],"type":"object"}}},"description":"DeliveryBox"},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"uuid","type":"string"}},"required":["id"],"type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create a DeliveryBox.","tags":["Mail"]},"get":{"operationId":"mail-list-delivery-boxes","parameters":[{"description":"ID of the Project to list DeliveryBoxes for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.mail.Deliverybox"},"type":"array"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List DeliveryBoxes belonging to a Project.","tags":["Mail"]}},"/v2/projects/{projectId}/mailaddresses":{"post":{"parameters":[{"description":"ID of the project to create a MailAddress for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.mail.CreateForwardAddress"},{"$ref":"#/components/schemas/de.mittwald.v1.mail.CreateMailAddress"}]}}}},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create a MailAddress.","tags":["Mail"],"deprecated":true},"get":{"parameters":[{"description":"ID of the Project to list MailAddresses for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List MailAddresses belonging to a Project.","tags":["Mail"],"deprecated":true}},"/v2/projects/{projectId}/mail-addresses":{"post":{"operationId":"mail-create-mail-address","parameters":[{"description":"ID of the project to create a MailAddress for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.mail.CreateForwardAddress"},{"$ref":"#/components/schemas/de.mittwald.v1.mail.CreateMailAddress"}]}}}},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"uuid","type":"string"}},"required":["id"],"type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create a MailAddress.","tags":["Mail"]},"get":{"operationId":"mail-list-mail-addresses","parameters":[{"description":"ID of the Project to list MailAddresses for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.mail.MailAddress"},"type":"array"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List MailAddresses belonging to a Project.","tags":["Mail"]}},"/v2/deliveryboxes/{deliveryBoxId}":{"delete":{"parameters":[{"description":"ID of the DeliveryBox to be deleted.","in":"path","name":"deliveryBoxId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a DeliveryBox.","tags":["Mail"],"deprecated":true},"get":{"parameters":[{"description":"ID of the DeliveryBox to be retrieved.","in":"path","name":"deliveryBoxId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a DeliveryBox.","tags":["Mail"],"deprecated":true}},"/v2/delivery-boxes/{deliveryBoxId}":{"delete":{"operationId":"mail-delete-delivery-box","parameters":[{"description":"ID of the DeliveryBox to be deleted.","in":"path","name":"deliveryBoxId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a DeliveryBox.","tags":["Mail"]},"get":{"operationId":"mail-get-delivery-box","parameters":[{"description":"ID of the DeliveryBox to be retrieved.","in":"path","name":"deliveryBoxId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.mail.Deliverybox"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a DeliveryBox.","tags":["Mail"]}},"/v2/mailaddresses/{mailAddressId}":{"delete":{"parameters":[{"description":"ID of the MailAddress to be deleted.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a MailAddress.","tags":["Mail"],"deprecated":true},"get":{"parameters":[{"description":"ID of the MailAddress to be retrieved.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a MailAddress.","tags":["Mail"],"deprecated":true}},"/v2/mail-addresses/{mailAddressId}":{"delete":{"operationId":"mail-delete-mail-address","parameters":[{"description":"ID of the MailAddress to be deleted.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a MailAddress.","tags":["Mail"]},"get":{"operationId":"mail-get-mail-address","parameters":[{"description":"ID of the MailAddress to be retrieved.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.mail.MailAddress"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a MailAddress.","tags":["Mail"]}},"/v2/deliveryboxes/{id}/description":{"put":{"operationId":"mail-deliverybox-update-description-deprecated","deprecated":true,"parameters":[{"description":"ID of the deliverybox","in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"type":"string"}},"required":["description"]}}},"description":"Description of the deliverybox"},"responses":{"200":{"description":"OK"},"403":{"description":"You do not have the permissions to access this content"},"404":{"description":"A deliverybox with the specified id was not found"},"500":{"description":"Internal server error"},"503":{"description":"The service is unavailable."}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the description of an deliverybox","tags":["Mail"]}},"/v2/deliveryboxes/{id}/password":{"put":{"operationId":"mail-deliverybox-update-password-deprecated","deprecated":true,"parameters":[{"description":"ID of the deliverybox","in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"password":{"type":"string"}},"required":["password"]}}}},"responses":{"200":{"description":"OK"},"403":{"description":"You do not have the permissions to access this content"},"404":{"description":"A deliverybox with the specified id was not found"},"500":{"description":"Internal server error"},"503":{"description":"The service is unavailable."}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the password for a specific deliverybox","tags":["Mail"]}},"/v2/projects/{projectId}/mailsettings":{"get":{"parameters":[{"description":"ID of the Project to list mail settings for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List mail settings of a Project.","tags":["Mail"],"deprecated":true}},"/v2/projects/{projectId}/mail-settings":{"get":{"operationId":"mail-list-project-mail-settings","parameters":[{"description":"ID of the Project to list mail settings for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"blacklist":{"items":{"format":"idn-email","type":"string"},"type":"array"},"projectId":{"type":"string"},"whitelist":{"items":{"format":"idn-email","type":"string"},"type":"array"}},"required":["projectId","blacklist","whitelist"],"type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List mail settings of a Project.","tags":["Mail"]}},"/v2/mailaddresses/{id}/address":{"put":{"operationId":"mail-mailaddress-update-address-deprecated","deprecated":true,"parameters":[{"description":"ID of the mail address","in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"address":{"format":"idn-email","type":"string"}},"required":["address"]}}},"description":"set mail-address"},"responses":{"200":{"description":"OK"},"403":{"description":"You do not have the permissions to access this content"},"404":{"description":"A mailaddress with the specified id was not found"},"500":{"description":"Internal server error"},"503":{"description":"The service is unavailable."}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update mail-address","tags":["Mail"]}},"/v2/projects/{projectId}/mailsettings/blacklist":{"put":{"operationId":"mail-projectsetting-update-blacklist-deprecated","deprecated":true,"parameters":[{"description":"ID of the project you want to update blacklist for","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"blacklist":{"items":{"format":"idn-email","type":"string"},"type":"array"}},"required":["blacklist"],"type":"object"}}}},"responses":{"200":{"description":"OK"},"403":{"description":"You do not have the permissions to access this content"},"404":{"description":"A projectsetting with the specified id was not found"},"500":{"description":"Internal server error"},"503":{"description":"The service is unavailable."}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update blacklist for a given project ID","tags":["Mail"]}},"/v2/projects/{projectId}/mailsettings/whitelist":{"put":{"operationId":"mail-projectsetting-update-whitelist-deprecated","deprecated":true,"parameters":[{"description":"ID of the project you want to update whitelist for","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"whitelist":{"items":{"format":"idn-email","type":"string"},"type":"array"}},"required":["whitelist"],"type":"object"}}}},"responses":{"200":{"description":"OK"},"403":{"description":"You do not have the permissions to access this content"},"404":{"description":"A projectsetting with the specified id was not found"},"500":{"description":"Internal server error"},"503":{"description":"The service is unavailable."}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update whitelist for a given project ID","tags":["Mail"]}},"/v2/delivery-boxes/{deliveryBoxId}/description":{"patch":{"operationId":"mail-update-delivery-box-description","parameters":[{"description":"ID of the DeliveryBox to update the description for.","in":"path","name":"deliveryBoxId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"type":"string"}},"required":["description"]}}},"description":"Description of the DeliveryBox."},"responses":{"204":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the description of a DeliveryBox.","tags":["Mail"]}},"/v2/delivery-boxes/{deliveryBoxId}/password":{"patch":{"operationId":"mail-update-delivery-box-password","parameters":[{"description":"ID of the DeliveryBox to update the password for.","in":"path","name":"deliveryBoxId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"password":{"type":"string"}},"required":["password"]}}}},"responses":{"204":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the password of a DeliveryBox.","tags":["Mail"]}},"/v2/mail-addresses/{mailAddressId}/address":{"patch":{"operationId":"mail-update-mail-address-address","parameters":[{"description":"ID of the MailAddress to update the address for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"address":{"format":"idn-email","type":"string"}},"required":["address"]}}}},"responses":{"204":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a MailAddress.","tags":["Mail"]}},"/v2/mail-addresses/{mailAddressId}/autoresponder":{"patch":{"operationId":"mail-update-mail-address-autoresponder","parameters":[{"description":"ID of the MailAddress to update the autoresponder for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"autoResponder":{"nullable":true,"properties":{"active":{"type":"boolean"},"expiresAt":{"format":"date-time","type":"string"},"message":{"type":"string"},"startsAt":{"format":"date-time","type":"string"}},"required":["message","active"],"type":"object"}},"required":["autoResponder"]}}},"description":"Autoresponder for the MailAddress."},"responses":{"204":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the autoresponder of a MailAddress.","tags":["Mail"]},"put":{"operationId":"mail-update-mail-address-autoresponder-v2-deprecated","deprecated":true,"parameters":[{"description":"ID of the MailAddress to update the autoresponder for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"autoResponder":{"nullable":true,"properties":{"active":{"type":"boolean"},"expiresAt":{"format":"date-time","type":"string"},"message":{"type":"string"},"startsAt":{"format":"date-time","type":"string"}},"required":["message","active"],"type":"object"}},"required":["autoResponder"]}}},"description":"Autoresponder for the MailAddress."},"responses":{"200":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the autoresponder of a MailAddress.","tags":["Mail"]}},"/v2/mailaddresses/{mailAddressId}/autoResponder":{"put":{"deprecated":true,"parameters":[{"description":"ID of the MailAddress to update the autoresponder for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"autoResponder":{"nullable":true,"properties":{"active":{"type":"boolean"},"expiresAt":{"format":"date-time","type":"string"},"message":{"type":"string"},"startsAt":{"format":"date-time","type":"string"}},"required":["message","active"],"type":"object"}},"required":["autoResponder"]}}},"description":"Autoresponder for the MailAddress."},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the autoresponder of a MailAddress.","tags":["Mail"]}},"/v2/mail-addresses/{mailAddressId}/catch-all":{"patch":{"operationId":"mail-update-mail-address-catch-all","parameters":[{"description":"ID of the MailAddress to update the catchall for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"active":{"type":"boolean"}},"required":["active"]}}},"description":"Catchall of the MailAddress."},"responses":{"204":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the catchall of a MailAddress.","tags":["Mail"]}},"/v2/mailaddresses/{mailAddressId}/catchAll":{"put":{"deprecated":true,"parameters":[{"description":"ID of the MailAddress to update the catchall for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"active":{"type":"boolean"}},"required":["active"]}}},"description":"Catchall of the MailAddress."},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the catchall of a MailAddress.","tags":["Mail"]}},"/v2/mail-addresses/{mailAddressId}/catchall":{"put":{"operationId":"mail-update-mail-address-catchall-v2-deprecated","deprecated":true,"parameters":[{"description":"ID of the MailAddress to update the catchall for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"active":{"type":"boolean"}},"required":["active"]}}},"description":"Catchall of the MailAddress."},"responses":{"200":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the catchall of a MailAddress.","tags":["Mail"]}},"/v2/mail-addresses/{mailAddressId}/forward-addresses":{"patch":{"operationId":"mail-update-mail-address-forward-addresses","parameters":[{"description":"ID of the MailAddress to update the forward addresses for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"forwardAddresses":{"items":{"format":"idn-email","type":"string"},"type":"array"}},"required":["forwardAddresses"]}}}},"responses":{"204":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the forward addresses of a MailAddresses.","tags":["Mail"]},"put":{"operationId":"mail-update-mail-address-forward-addresses-v2-deprecated","deprecated":true,"parameters":[{"description":"ID of the MailAddress to update the forward addresses for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"forwardAddresses":{"items":{"format":"idn-email","type":"string"},"type":"array"}},"required":["forwardAddresses"]}}}},"responses":{"200":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the forward addresses of a MailAddresses.","tags":["Mail"]}},"/v2/mailaddresses/{mailAddressId}/forwardaddresses":{"put":{"deprecated":true,"parameters":[{"description":"ID of the MailAddress to update the forward addresses for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"forwardAddresses":{"items":{"format":"idn-email","type":"string"},"type":"array"}},"required":["forwardAddresses"]}}}},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the forward addresses of a MailAddresses.","tags":["Mail"]}},"/v2/mail-addresses/{mailAddressId}/password":{"patch":{"operationId":"mail-update-mail-address-password","parameters":[{"description":"ID of the MailAddress to update the password for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"password":{"type":"string"}},"required":["password"]}}}},"responses":{"204":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the password for a MailAddress.","tags":["Mail"]},"put":{"operationId":"mail-update-mail-address-password-v2-deprecated","deprecated":true,"parameters":[{"description":"ID of the MailAddress to update the password for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"password":{"type":"string"}},"required":["password"]}}}},"responses":{"200":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the password for a MailAddress.","tags":["Mail"]}},"/v2/mailaddresses/{mailAddressId}/password":{"put":{"deprecated":true,"parameters":[{"description":"ID of the MailAddress to update the password for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"password":{"type":"string"}},"required":["password"]}}}},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the password for a MailAddress.","tags":["Mail"]}},"/v2/mail-addresses/{mailAddressId}/quota":{"patch":{"operationId":"mail-update-mail-address-quota","parameters":[{"description":"ID of the MailAddress to update the quota for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"quotaInBytes":{"description":"2 GB","example":2147483648,"minimum":-1,"type":"number"}},"required":["quotaInBytes"]}}}},"responses":{"204":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the quota of a MailAddress.","tags":["Mail"]},"put":{"operationId":"mail-update-mail-address-quota-v2-deprecated","deprecated":true,"parameters":[{"description":"ID of the MailAddress to update the quota for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"quotaInBytes":{"description":"2 GB","example":2147483648,"minimum":-1,"type":"number"}},"required":["quotaInBytes"]}}}},"responses":{"200":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the quota of a MailAddress.","tags":["Mail"]}},"/v2/mailaddresses/{mailAddressId}/quota":{"put":{"deprecated":true,"parameters":[{"description":"ID of the MailAddress to update the quota for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"quotaInBytes":{"description":"2 GB","example":2147483648,"minimum":-1,"type":"number"}},"required":["quotaInBytes"]}}}},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the quota of a MailAddress.","tags":["Mail"]}},"/v2/mail-addresses/{mailAddressId}/spam-protection":{"patch":{"operationId":"mail-update-mail-address-spam-protection","parameters":[{"description":"ID of the MailAddress to update the spam protection for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"spamProtection":{"properties":{"active":{"type":"boolean"},"autoDeleteSpam":{"type":"boolean"},"folder":{"enum":["inbox","spam"],"type":"string"},"relocationMinSpamScore":{"maximum":10,"type":"integer"}},"required":["active","folder","relocationMinSpamScore","autoDeleteSpam"],"type":"object"}},"required":["spamProtection"]}}}},"responses":{"204":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the spam protection of a MailAddress.","tags":["Mail"]},"put":{"operationId":"mail-update-mail-address-spam-protection-v2-deprecated","deprecated":true,"parameters":[{"description":"ID of the MailAddress to update the spam protection for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"spamProtection":{"properties":{"active":{"type":"boolean"},"autoDeleteSpam":{"type":"boolean"},"folder":{"enum":["inbox","spam"],"type":"string"},"relocationMinSpamScore":{"maximum":10,"type":"integer"}},"required":["active","folder","relocationMinSpamScore","autoDeleteSpam"],"type":"object"}},"required":["spamProtection"]}}}},"responses":{"200":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the spam protection of a MailAddress.","tags":["Mail"]}},"/v2/mailaddresses/{mailAddressId}/spamprotection":{"put":{"deprecated":true,"parameters":[{"description":"ID of the MailAddress to update the spam protection for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"spamProtection":{"properties":{"active":{"type":"boolean"},"autoDeleteSpam":{"type":"boolean"},"folder":{"enum":["inbox","spam"],"type":"string"},"relocationMinSpamScore":{"maximum":10,"type":"integer"}},"required":["active","folder","relocationMinSpamScore","autoDeleteSpam"],"type":"object"}},"required":["spamProtection"]}}}},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update the spam protection of a MailAddress.","tags":["Mail"]}},"/v2/projects/{projectId}/mail-settings/{mailSetting}":{"patch":{"operationId":"mail-update-project-mail-setting","parameters":[{"description":"ID of the Project to update a mail setting for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"description":"The mail setting to update.","in":"path","name":"mailSetting","required":true,"schema":{"enum":["blacklist","whitelist"],"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"blacklist":{"items":{"format":"idn-email","type":"string"},"type":"array"}},"required":["blacklist"],"type":"object"},{"properties":{"whitelist":{"items":{"format":"idn-email","type":"string"},"type":"array"}},"required":["whitelist"],"type":"object"}]}}}},"responses":{"204":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a mail setting of a Project.","tags":["Mail"]}},"/v2/projects/{projectId}/mail-settings/{setting}":{"put":{"operationId":"mail-update-project-mail-setting-v2-deprecated","deprecated":true,"parameters":[{"description":"ID of the Project to update a mail setting for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"description":"The setting to update.","in":"path","name":"setting","required":true,"schema":{"enum":["blacklist","whitelist"],"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"blacklist":{"items":{"format":"idn-email","type":"string"},"type":"array"}},"required":["blacklist"],"type":"object"},{"properties":{"whitelist":{"items":{"format":"idn-email","type":"string"},"type":"array"}},"required":["whitelist"],"type":"object"}]}}}},"responses":{"200":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a mail setting of a Project.","tags":["Mail"]}},"/v2/newsletter-subscriptions/self":{"get":{"operationId":"newsletter-get-info","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"active":{"example":true,"type":"boolean"},"email":{"example":"a.lovelace@example.com","type":"string"},"registered":{"example":true,"type":"boolean"}},"required":["email","active","registered"],"type":"object"}}},"description":"Status information about the subscription."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Getting the subscription status of the subscription.","tags":["Notification"]},"delete":{"operationId":"newsletter-unsubscribe-user","responses":{"204":{"description":"User has been unsubscribed."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Unsubscribe a user from the mStudio newsletter.","tags":["Notification"]}},"/v2/notifications/unread-counts":{"get":{"description":"The user is determined by the access token used.\nLighter weight route instead of getting all unread notifications and count yourself.\n","parameters":[],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get the counts for unread notifications of the user.","tags":["Notification"],"deprecated":true}},"/v2/notification-unread-counts":{"get":{"operationId":"notifications-count-unread-notifications","description":"The user is determined by the access token used.\nLighter weight route instead of getting all unread notifications and count yourself.\n","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"error":{"minimum":0,"type":"integer"},"info":{"minimum":0,"type":"integer"},"success":{"minimum":0,"type":"integer"},"total":{"minimum":0,"type":"integer"},"warning":{"minimum":0,"type":"integer"}},"required":["total","success","info","warning","error"],"type":"object"}}},"description":"Counts of unread notifications"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get the counts for unread notifications of the user.","tags":["Notification"]}},"/v2/notifications":{"get":{"operationId":"notifications-list-notifications","description":"","parameters":[{"in":"query","name":"status","required":false,"schema":{"enum":["unread","read"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.messaging.Notification"},"type":"array"}}},"description":"List of notifications"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List all unread notifications.","tags":["Notification"]}},"/v2/notifications/status":{"put":{"operationId":"notifications-read-all-notifications-deprecated","deprecated":true,"description":"Deprecated route. Please use /v2/notifications/actions/read-all instead.","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"status":{"$ref":"#/components/schemas/de.mittwald.v1.messaging.NotificationStatus"}},"required":["status"],"type":"object"}}},"description":"OK"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Mark all notifications as read (deprecated).","tags":["Notification"]}},"/v2/notifications/actions/read-all":{"post":{"operationId":"notifications-read-all-notifications","description":"Mark all notifications for the authenticated user as read.","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"status":{"$ref":"#/components/schemas/de.mittwald.v1.messaging.NotificationStatus"}},"required":["status"],"type":"object"}}},"description":"OK"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Mark all notifications as read.","tags":["Notification"]}},"/v2/notifications/{notificationId}/status":{"put":{"operationId":"notifications-read-notification","parameters":[{"in":"path","name":"notificationId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"status":{"$ref":"#/components/schemas/de.mittwald.v1.messaging.NotificationStatus"}},"required":["status"],"type":"object"}}},"description":"","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"status":{"$ref":"#/components/schemas/de.mittwald.v1.messaging.NotificationStatus"}},"required":["status"],"type":"object"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Mark notification as read.","tags":["Notification"]}},"/v2/orders":{"post":{"operationId":"order-create-order","description":"","requestBody":{"content":{"application/json":{"schema":{"properties":{"orderData":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.order.ProjectHostingOrder"},{"$ref":"#/components/schemas/de.mittwald.v1.order.ServerOrder"},{"$ref":"#/components/schemas/de.mittwald.v1.order.DomainOrder"}]},"orderType":{"enum":["domain","projectHosting","server"],"type":"string"}},"type":"object"}}},"description":"The Order to create.","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"orderId":{"type":"string"}},"required":["orderId"]}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create an Order.","tags":["Contract"]},"get":{"operationId":"order-list-orders","description":"The list of Orders the User has access to.","parameters":[{"example":1000,"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"example":0,"in":"query","name":"skip","required":false,"schema":{"minimum":0,"type":"integer"}},{"example":1,"in":"query","name":"page","required":false,"schema":{"minimum":0,"type":"integer"}},{"example":[],"in":"query","name":"includesStatus","required":false,"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.order.OrderStatus"},"type":"array"}},{"example":[],"in":"query","name":"excludesStatus","required":false,"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.order.OrderStatus"},"type":"array"}},{"example":["PS23-BASIC-0001"],"in":"query","name":"templateNames","required":false,"schema":{"items":{"type":"string"},"type":"array"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.order.CustomerOrder"},"type":"array"}}},"description":""},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get list of Orders.","tags":["Contract"]}},"/v2/tariff-changes":{"post":{"operationId":"order-create-tariff-change","description":"","requestBody":{"content":{"application/json":{"schema":{"properties":{"tariffChangeData":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.order.ProjectHostingTariffChange"},{"$ref":"#/components/schemas/de.mittwald.v1.order.ServerTariffChange"}]},"tariffChangeType":{"enum":["projectHosting","server"],"type":"string"}},"type":"object"}}},"description":"The Order to create.","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"orderId":{"type":"string"}},"required":["orderId"]}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create TariffChange Order.","tags":["Contract"]}},"/v2/orders/{orderId}":{"get":{"operationId":"order-get-order","description":"Get details of a single Order, User must have access to the Order/Customer.","parameters":[{"example":"123e4567-e89b-12d3-a456-426614174000","in":"path","name":"orderId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.order.CustomerOrder"}}},"description":""},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get Order for Customer.","tags":["Contract"]}},"/v2/customers/{customerId}/orders":{"get":{"operationId":"order-list-customer-orders","description":"The list of Orders of a Customer the User has access to, can be filtered by orderStatus, articleTemplate and count.","parameters":[{"example":"154219e9-bf4a-4f41-9c72-0449a98db62f","in":"path","name":"customerId","required":true,"schema":{"type":"string"}},{"example":1000,"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"example":0,"in":"query","name":"skip","required":false,"schema":{"minimum":0,"type":"integer"}},{"example":1,"in":"query","name":"page","required":false,"schema":{"minimum":0,"type":"integer"}},{"example":[],"in":"query","name":"includesStatus","required":false,"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.order.OrderStatus"},"type":"array"}},{"example":[],"in":"query","name":"excludesStatus","required":false,"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.order.OrderStatus"},"type":"array"}},{"example":["PS23-BASIC-0001"],"in":"query","name":"templateNames","required":false,"schema":{"items":{"type":"string"},"type":"array"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.order.CustomerOrder"},"type":"array"}}},"description":""},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get list of Orders of a Customer.","tags":["Contract"]}},"/v2/projects/{projectId}/orders":{"get":{"operationId":"order-list-project-orders","description":"The list of Order of a Project the User has access to, can be filtered by orderStatus, articleTemplate and count.","parameters":[{"example":"e7c4b2e6-e38f-4c9b-8583-08bd627ff4d8","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}},{"example":1000,"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"example":0,"in":"query","name":"skip","required":false,"schema":{"minimum":0,"type":"integer"}},{"example":1,"in":"query","name":"page","required":false,"schema":{"minimum":0,"type":"integer"}},{"example":[],"in":"query","name":"includesStatus","required":false,"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.order.OrderStatus"},"type":"array"}},{"example":[],"in":"query","name":"excludesStatus","required":false,"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.order.OrderStatus"},"type":"array"}},{"example":["PS23-BASIC-0001"],"in":"query","name":"templateNames","required":false,"schema":{"items":{"type":"string"},"type":"array"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.order.CustomerOrder"},"type":"array"}}},"description":""},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get list of Orders of a Project.","tags":["Contract"]}},"/v2/order-previews":{"post":{"operationId":"order-preview-order","requestBody":{"content":{"application/json":{"schema":{"properties":{"orderData":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.order.ProjectHostingOrderPreview"},{"$ref":"#/components/schemas/de.mittwald.v1.order.ServerOrderPreview"},{"$ref":"#/components/schemas/de.mittwald.v1.order.DomainOrderPreview"}]},"orderType":{"enum":["domain","projectHosting","server"],"type":"string"}},"type":"object"}}},"description":"Your order information","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.order.HostingOrderPreviewResponse"},{"$ref":"#/components/schemas/de.mittwald.v1.order.DomainOrderPreviewResponse"}]}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"422":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"object"}}}}},"description":"Unprocessable Content"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[],"summary":"Preview Order.","tags":["Contract"]}},"/v2/tariff-change-previews":{"post":{"operationId":"order-preview-tariff-change","description":"","requestBody":{"content":{"application/json":{"schema":{"properties":{"tariffChangeData":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.order.ProjectHostingTariffChange"},{"$ref":"#/components/schemas/de.mittwald.v1.order.ServerTariffChange"}]},"tariffChangeType":{"enum":["projectHosting","server"],"type":"string"}},"type":"object"}}},"description":"Your order information","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"machineTypePrice":{"example":100,"type":"number"},"storagePrice":{"example":900,"type":"number"},"totalPrice":{"example":1000,"type":"number"}},"required":["totalPrice","storagePrice","machineTypePrice"]}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"422":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"object"}}}}},"description":"Unprocessable Content"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Preview TariffChange.","tags":["Contract"]}},"/v2/pageinsights":{"get":{"parameters":[{"description":"A domain or subdomain.","example":"mittwald.de","in":"query","name":"domain","required":true,"schema":{"type":"string"}},{"description":"A path of the domain.","example":"/","in":"query","name":"path","required":true,"schema":{"type":"string"}},{"description":"Query data for a specific date, defaults to date today.","example":"2017-07-21","in":"query","name":"date","required":false,"schema":{"format":"date","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get detailed performance data for a given domain and path.","tags":["Page Insights"],"deprecated":true}},"/v2/page-insights":{"get":{"operationId":"pageinsights-get-performance-data","parameters":[{"description":"A domain or subdomain.","example":"mittwald.de","in":"query","name":"domain","required":true,"schema":{"type":"string"}},{"description":"A path of the domain.","example":"/","in":"query","name":"path","required":true,"schema":{"type":"string"}},{"description":"Query data for a specific date, defaults to date today.","example":"2017-07-21","in":"query","name":"date","required":false,"schema":{"format":"date","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"createdAt":{"format":"date-time","type":"string"},"domain":{"type":"string"},"metrics":{"items":{"properties":{"createdAt":{"format":"date-time","type":"string"},"name":{"type":"string"},"score":{"format":"double","nullable":true,"type":"number"},"value":{"format":"double","type":"number"}},"required":["name","value","createdAt"],"type":"object"},"type":"array"},"moreDataAvailable":{"items":{"format":"date","type":"string"},"type":"array"},"path":{"type":"string"},"performanceScore":{"format":"double","type":"number"},"screenshot":{"properties":{"createdAt":{"format":"date-time","type":"string"},"fileRef":{"type":"string"}},"required":["fileRef","createdAt"],"type":"object"}},"required":["domain","path","performanceScore"],"type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get detailed performance data for a given domain and path.","tags":["Page Insights"]}},"/v2/projects/{projectId}/straces/{straceId}":{"get":{"operationId":"pageinsights-get-strace-data","parameters":[{"description":"ID of the strace to get the data for.","in":"path","name":"straceId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"ID of the project the strace belongs to.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"executedAt":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"result":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.strace.Error"},{"$ref":"#/components/schemas/de.mittwald.v1.strace.Data"}]}},"required":["id","executedAt","result"],"type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get all data for a given strace.","tags":["Page Insights"]}},"/v2/projects/{projectId}/pageinsights":{"get":{"parameters":[{"description":"ID of the Project to list domains for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"Filter for a specific domain.","example":"mittwald.de","in":"query","name":"domain","required":false,"schema":{"type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List websites (specified as domain and path) from a project where performance data is available.","tags":["Page Insights"],"deprecated":true}},"/v2/projects/{projectId}/page-insights":{"get":{"operationId":"pageinsights-list-performance-data-for-project","parameters":[{"description":"ID of the Project to list domains for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"Filter for a specific domain.","example":"mittwald.de","in":"query","name":"domain","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"domain":{"type":"string"},"paths":{"items":{"properties":{"createdAt":{"format":"date-time","type":"string"},"path":{"type":"string"},"performanceScore":{"type":"integer"},"screenshotFileRef":{"type":"string"}},"required":["path","performanceScore","createdAt"],"type":"object"},"type":"array"}},"required":["domain","paths"],"type":"object"},"type":"array"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List websites (specified as domain and path) from a project where performance data is available.","tags":["Page Insights"]}},"/v2/projects/{projectId}/straces":{"post":{"operationId":"pageinsights-schedule-strace","parameters":[{"description":"ID of a project to own the created strace. It must exist a ingress with the same hostname as in the url to be measured.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"url":{"description":"A call to this URL is measured via strace.","example":"https://example.com","type":"string"}},"required":["url"],"type":"object"}}},"description":""},"responses":{"202":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"uuid","type":"string"}},"required":["id"],"type":"object"}}},"description":"Scheduled"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Schedule a strace measurement for a single http request.","tags":["Page Insights"]}},"/v2/password-policies/{passwordPolicy}":{"get":{"operationId":"password-validation-get-password-policy","parameters":[{"description":"The name of the PasswordPolicy to be retrieved.","examples":{"default":{"description":"The default PasswordPolicy of mittwald.","value":"mittwald"},"example":{"description":"An example policy showcasing possible rule definitions.","value":"examplePolicy"}},"in":"path","name":"passwordPolicy","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.policy.Policy"}}},"description":"The PasswordPolicy to be retrieved."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get a PasswordPolicy.","tags":["User"]}},"/v2/password/policies/{path}":{"get":{"operationId":"password-validation-get-password-policy-v2-deprecated","deprecated":true,"parameters":[{"in":"path","name":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.policy.Policy"}}},"description":"The requested password policy"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get a password policy.","tags":["User"]}},"/v2/project-invites/{projectInviteId}/actions/accept":{"post":{"operationId":"project-accept-project-invite","parameters":[{"description":"ID of the ProjectInvite to be accepted.","in":"path","name":"projectInviteId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"invitationToken":{"description":"Token contained in the invite for authentication.","type":"string"}},"type":"object"}}},"required":true},"responses":{"204":{"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Accept a ProjectInvite.","tags":["Project"]}},"/v2/project/{projectId}/invites":{"post":{"parameters":[{"description":"ID of the Project to create a ProjectInvite for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"mailAddress":{"description":"Mail-address of the person to be invited.","format":"email","type":"string"},"membershipExpiresAt":{"description":"Time the resulting ProjectMembership should expire at.","format":"date-time","type":"string"},"message":{"description":"Message contained in the ProjectInvite.","type":"string"},"role":{"$ref":"#/components/schemas/de.mittwald.v1.membership.ProjectRoles"}},"required":["mailAddress","role"],"type":"object"}}},"required":true},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create a ProjectInvite.","tags":["Project"],"deprecated":true}},"/v2/projects/{projectId}/invites":{"post":{"operationId":"project-create-project-invite","parameters":[{"description":"ID of the Project to create a ProjectInvite for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"mailAddress":{"description":"Mail-address of the person to be invited.","format":"email","type":"string"},"membershipExpiresAt":{"description":"Time the resulting ProjectMembership should expire at.","format":"date-time","type":"string"},"message":{"description":"Message contained in the ProjectInvite.","type":"string"},"role":{"$ref":"#/components/schemas/de.mittwald.v1.membership.ProjectRoles"}},"required":["mailAddress","role"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.membership.ProjectInvite"}}},"description":"Created"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"409":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create a ProjectInvite.","tags":["Project"]},"get":{"operationId":"project-list-invites-for-project","parameters":[{"description":"ID of the Project to list invites for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.membership.ProjectInvite"},"type":"array"}}},"description":"OK","headers":{"X-Pagination-Limit":{"schema":{"type":"number"}},"X-Pagination-Skip":{"schema":{"type":"number"}},"X-Pagination-TotalCount":{"schema":{"type":"number"}}}},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List Invites belonging to a Project.","tags":["Project"]}},"/v2/servers/{serverId}/projects":{"post":{"operationId":"project-create-project","parameters":[{"description":"ID of the Server to create the Project for.","in":"path","name":"serverId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"description":"Name of the Project as it is displayed in the mStudio.","example":"My first Project!","type":"string"}},"required":["description"],"type":"object"}}},"description":""},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"uuid","type":"string"}},"required":["id"],"type":"object"}}},"description":"Created"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create a Project belonging to a Server.","tags":["Project"]}},"/v2/project-invites/{projectInviteId}/actions/decline":{"post":{"operationId":"project-decline-project-invite","parameters":[{"description":"ID of the ProjectInvite to be declined.","in":"path","name":"projectInviteId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{}}}},"responses":{"204":{"description":""},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Decline a ProjectInvite.","tags":["Project"]}},"/v2/projects/{projectId}/avatar":{"delete":{"operationId":"project-delete-project-avatar","parameters":[{"description":"ID of the Project the avatar should be deleted for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a Project's avatar.","tags":["Project"]},"post":{"operationId":"project-request-project-avatar-upload","parameters":[{"description":"ID of the Project you want to request an avatar upload for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"refId":{"format":"uuid","type":"string"},"rules":{"$ref":"#/components/schemas/de.mittwald.v1.project.AvatarRules"}},"required":["refId","rules"],"type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Request a Project avatar upload.","tags":["Project"]}},"/v2/project-invites/{projectInviteId}":{"delete":{"operationId":"project-delete-project-invite","parameters":[{"description":"ID of the ProjectInvite to be deleted.","in":"path","name":"projectInviteId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":""},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a ProjectInvite.","tags":["Project"]},"get":{"operationId":"project-get-project-invite","parameters":[{"description":"ID of the ProjectInvite to be retrieved.","in":"path","name":"projectInviteId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.membership.ProjectInvite"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a ProjectInvite.","tags":["Project"]}},"/v2/project-memberships/{projectMembershipId}":{"delete":{"operationId":"project-delete-project-membership","parameters":[{"description":"ID of the ProjectMembership to be deleted.","in":"path","name":"projectMembershipId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"OK"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a ProjectMembership.","tags":["Project"]},"get":{"operationId":"project-get-project-membership","parameters":[{"description":"ID of the ProjectMembership to be retrieved.","in":"path","name":"projectMembershipId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.membership.ProjectMembership"}}},"description":""},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a ProjectMembership","tags":["Project"]},"patch":{"operationId":"project-update-project-membership","parameters":[{"description":"ID of the ProjectMembership to be updated.","in":"path","name":"projectMembershipId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"expiresAt":{"description":"Time the ProjectMembership should expire at.","format":"date-time","type":"string"},"role":{"$ref":"#/components/schemas/de.mittwald.v1.membership.ProjectRoles"}},"required":["role"],"type":"object"}}},"required":true},"responses":{"204":{"description":""},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a ProjectMembership.","tags":["Project"]}},"/v2/projects/{projectId}":{"delete":{"operationId":"project-delete-project","parameters":[{"description":"The ID of the Project.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a Project.","tags":["Project"]},"get":{"operationId":"project-get-project","parameters":[{"description":"ID of the Project to be retrieved.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.project.Project"}}},"description":"OK"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a Project.","tags":["Project"]}},"/v2/servers/{serverId}/avatar":{"delete":{"operationId":"project-delete-server-avatar","parameters":[{"description":"ID of the Server to delete the avatar for.","in":"path","name":"serverId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a Server's avatar.","tags":["Project"]},"post":{"operationId":"project-request-server-avatar-upload","parameters":[{"description":"ID of the Server to request an avatar upload for.","in":"path","name":"serverId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"refId":{"format":"uuid","type":"string"},"rules":{"$ref":"#/components/schemas/de.mittwald.v1.project.AvatarRules"}},"required":["refId","rules"],"type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Request a Server avatar upload.","tags":["Project"]}},"/v2/projects/{projectId}/filesystem/directories":{"get":{"parameters":[{"description":"ID of the Project to list the directories for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"description":"The directory to start listing subdirectories from.","in":"query","name":"directory","required":false,"schema":{"type":"string"}},{"description":"Search for specific filenames, only. The name may be a glob expression.","in":"query","name":"name","required":false,"schema":{"type":"string"}},{"description":"The nesting depth for recursively listing directory contents.","in":"query","name":"max_depth","required":false,"schema":{"type":"integer"}},{"description":"One of file or directory (may be specified multiple times), to restrict results to directory items of this specific type.","in":"query","name":"type","required":false,"schema":{"items":{"type":"string"},"type":"array"}},{"description":"Set to true to constrain search results to executable files.","in":"query","name":"executable","required":false,"schema":{"type":"boolean"}},{"description":"Set to true to include hidden files. (with . prefix in the search results).","in":"query","name":"hidden","required":false,"schema":{"type":"boolean"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List directories belonging to a Project.","tags":["Project File System"],"deprecated":true}},"/v2/projects/{projectId}/filesystem-directories":{"get":{"operationId":"project-file-system-get-directories","parameters":[{"description":"ID of the Project to list the directories for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"description":"The directory to start listing subdirectories from.","in":"query","name":"directory","required":false,"schema":{"type":"string"}},{"description":"Search for specific filenames, only. The name may be a glob expression.","in":"query","name":"name","required":false,"schema":{"type":"string"}},{"description":"The nesting depth for recursively listing directory contents.","in":"query","name":"max_depth","required":false,"schema":{"type":"integer"}},{"description":"One of file or directory (may be specified multiple times), to restrict results to directory items of this specific type.","in":"query","name":"type","required":false,"schema":{"items":{"type":"string"},"type":"array"}},{"description":"Set to true to constrain search results to executable files.","in":"query","name":"executable","required":false,"schema":{"type":"boolean"}},{"description":"Set to true to include hidden files. (with . prefix in the search results).","in":"query","name":"hidden","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.project.FilesystemDirectoryListing"}}},"description":"OK"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List directories belonging to a Project.","tags":["Project File System"]}},"/v2/projects/{projectId}/filesystem/usages/disk":{"get":{"parameters":[{"description":"ID of the Project.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"Starting directory for the disk usage calculation.","in":"query","name":"directory","required":false,"schema":{"example":"/home/example.log","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a Project directory filesystem usage.","tags":["Project File System"],"deprecated":true}},"/v2/projects/{projectId}/filesystem-disk-usage":{"get":{"operationId":"project-file-system-get-disk-usage","parameters":[{"description":"ID of the Project.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"Starting directory for the disk usage calculation.","in":"query","name":"directory","required":false,"schema":{"example":"/home/example.log","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.project.FilesystemUsagesDisk"}}},"description":"OK"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a Project directory filesystem usage.","tags":["Project File System"]}},"/v2/projects/{projectId}/filesystem/files/raw":{"get":{"parameters":[{"description":"ID of the Project.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"Name of the file.","in":"query","name":"file","required":false,"schema":{"example":"/home/example.log","type":"string"}},{"description":"Set to true to serve the file with Content-Disposition: inline. Otherwise, it will be served with Content-Disposition: attachment. filename=...","in":"query","name":"inline","required":false,"schema":{"type":"boolean"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a Project file's content.","tags":["Project File System"],"deprecated":true}},"/v2/projects/{projectId}/filesystem-file-content":{"get":{"operationId":"project-file-system-get-file-content","parameters":[{"description":"ID of the Project.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"Name of the file.","in":"query","name":"file","required":false,"schema":{"example":"/home/example.log","type":"string"}},{"description":"Set to true to serve the file with Content-Disposition: inline. Otherwise, it will be served with Content-Disposition: attachment. filename=...","in":"query","name":"inline","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"text/plain":{"schema":{"type":"string"}}},"description":"OK"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a Project file's content.","tags":["Project File System"]}},"/v2/projects/{projectId}/jwt":{"get":{"operationId":"project-file-system-get-jwt","parameters":[{"description":"ID of the Project to retrieve an authorization token for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.project.FsApiJwt"}}},"description":"OK"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a Project's file/filesystem authorization token.","tags":["Project File System"]}},"/v2/projects/{projectId}/filesystem/files":{"get":{"parameters":[{"description":"ID of the Project.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"Name of the file to retrieve.","in":"query","name":"file","required":false,"schema":{"example":"/home/example.log","type":"string"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a Project file's information.","tags":["Project File System"],"deprecated":true}},"/v2/projects/{projectId}/filesystem-files":{"get":{"operationId":"project-file-system-list-files","parameters":[{"description":"ID of the Project.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"Name of the file to retrieve.","in":"query","name":"file","required":false,"schema":{"example":"/home/example.log","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.project.FilesystemDirectoryListing"}}},"description":"OK"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"503":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a Project file's information.","tags":["Project File System"]}},"/v2/project-token-invite":{"get":{"operationId":"project-get-project-token-invite","parameters":[{"description":"Token of the ProjectInvite to be retrieved.","in":"header","name":"token","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.membership.ProjectInvite"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a ProjectInvite by token.","tags":["Project"]}},"/v2/projects/{projectId}/memberships/self":{"get":{"operationId":"project-get-self-membership-for-project","parameters":[{"description":"ID of the Project to get the membership for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.membership.ProjectMembership"}}},"description":"OK"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get the executing user's membership in a Project.","tags":["Project"]}},"/v2/servers/{serverId}":{"get":{"operationId":"project-get-server","parameters":[{"description":"ID of the Server to be retrieved.","in":"path","name":"serverId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.project.Server"}}},"description":"OK"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a Server.","tags":["Project"]}},"/v2/projects/{projectId}/leave":{"post":{"operationId":"project-leave-project","parameters":[{"description":"ID of the Project to be left.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{}}}},"responses":{"204":{"description":""},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Leave a Project.","tags":["Project"]}},"/v2/projects/{projectId}/memberships":{"get":{"operationId":"project-list-memberships-for-project","parameters":[{"description":"ID of the Project to list memberships for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.membership.ProjectMembership"},"type":"array"}}},"description":"OK","headers":{"X-Pagination-Limit":{"schema":{"type":"number"}},"X-Pagination-Skip":{"schema":{"type":"number"}},"X-Pagination-TotalCount":{"schema":{"type":"number"}}}},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List Memberships belonging to a Project.","tags":["Project"]}},"/v2/project-invites":{"get":{"operationId":"project-list-project-invites","parameters":[{"in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.membership.ProjectInvite"},"type":"array"}}},"description":"OK","headers":{"X-Pagination-Limit":{"schema":{"type":"number"}},"X-Pagination-Skip":{"schema":{"type":"number"}},"X-Pagination-TotalCount":{"schema":{"type":"number"}}}},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List ProjectInvites belonging to the executing user.","tags":["Project"]}},"/v2/project-memberships":{"get":{"operationId":"project-list-project-memberships","parameters":[{"in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.membership.ProjectMembership"},"type":"array"}}},"description":"OK","headers":{"X-Pagination-Limit":{"schema":{"type":"number"}},"X-Pagination-Skip":{"schema":{"type":"number"}},"X-Pagination-TotalCount":{"schema":{"type":"number"}}}},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List ProjectMemberships belonging to the executing user.","tags":["Project"]}},"/v2/projects":{"get":{"operationId":"project-list-projects","parameters":[{"description":"ID of the Organization to list Projects for.","in":"query","name":"customerId","required":false,"schema":{"example":"15b8a787-8d46-43b0-907e-01af35032c0a","type":"string"}},{"description":"ID of the Server to list Projects for.","in":"query","name":"serverId","required":false,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"createdAt":{"format":"date-time","type":"string"},"customerId":{"type":"string"},"customerMeta":{"properties":{"id":{"type":"string"}},"required":["id"],"type":"object"},"description":{"type":"string"},"disableReason":{"$ref":"#/components/schemas/de.mittwald.v1.project.DisableReason"},"disabledAt":{"format":"date-time","type":"string"},"enabled":{"type":"boolean"},"id":{"type":"string"},"imageRefId":{"type":"string"},"isReady":{"deprecated":true,"description":"deprecated","type":"boolean"},"projectHostingId":{"format":"uuid","type":"string"},"readiness":{"$ref":"#/components/schemas/de.mittwald.v1.project.DeprecatedProjectReadinessStatus"},"serverId":{"type":"string"},"shortId":{"type":"string"},"status":{"$ref":"#/components/schemas/de.mittwald.v1.project.ProjectStatus"},"statusSetAt":{"format":"date-time","type":"string"},"webStorageUsageInBytes":{"type":"integer"},"webStorageUsageInBytesSetAt":{"format":"date-time","type":"string"}},"required":["id","shortId","description","enabled","customerMeta","customerId","createdAt","isReady","readiness","status","statusSetAt","webStorageUsageInBytes","webStorageUsageInBytesSetAt"],"type":"object"},"type":"array"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List Projects belonging to the executing user.","tags":["Project"]}},"/v2/servers":{"get":{"operationId":"project-list-servers","parameters":[{"description":"ID of the Organization to list PlacementGroups for. If no ID is provided, the ID of the executing User is used instead.","in":"query","name":"customerId","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"page","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.project.Server"},"type":"array"}}},"description":"OK"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List Servers belonging to the executing user.","tags":["Project"]}},"/v2/project-invites/{projectInviteId}/actions/resend":{"post":{"operationId":"project-resend-project-invite-mail","parameters":[{"description":"ID of the ProjectInvite to resend the mail for.","in":"path","name":"projectInviteId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{}}}},"responses":{"204":{"description":""},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Resend the mail for a ProjectInvite.","tags":["Project"]}},"/v2/projects/{projectId}/description":{"patch":{"operationId":"project-update-project-description","parameters":[{"description":"ID of the Project to update the description for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"example":"My new description!","type":"string"}},"required":["description"]}}}},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a Project's description.","tags":["Project"]}},"/v2/servers/{serverId}/description":{"patch":{"operationId":"project-update-server-description","parameters":[{"description":"ID of the Server to update the description of.","in":"path","name":"serverId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"example":"My first Server!","type":"string"}},"required":["description"]}}}},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a Servers's description.","tags":["Project"]}},"/v2/legacy-tariff-change":{"post":{"operationId":"relocation-create-legacy-tariff-change","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"properties":{"pAccount":{"pattern":"^[pr][0-9]{2,8}$","type":"string"},"targetTariff":{"minLength":1,"type":"string"}},"required":["pAccount","targetTariff"],"type":"object"}}},"description":"","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"messageId":{"format":"uuid","type":"string"}},"required":["messageId"],"type":"object"}}},"description":""},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[],"summary":"Register a tariff change for a legacy tariff.","tags":["Relocation"]}},"/v2/relocation":{"post":{"operationId":"relocation-create-relocation","description":"Give mittwald access to your Provider and let them move your Project to mittwald.","requestBody":{"content":{"application/json":{"schema":{"properties":{"allDomains":{"description":"Should all project releated domains should be transferred to mittwald?","type":"boolean"},"allowPasswordChange":{"description":"Has to be true. Do you accept that our mittwald team can change and get password from your current provider?","type":"boolean"},"contact":{"properties":{"email":{"format":"email","minLength":1,"type":"string"},"firstName":{"minLength":1,"type":"string"},"lastName":{"minLength":1,"type":"string"},"phoneNumber":{"pattern":"|^\\+([0-9]{2,3}|1)-[0-9]{2,5}-[0-9]+$","type":"string"}},"required":["firstName","lastName","email"],"type":"object"},"domains":{"description":"List of domains which should be transferred (when allDomains is not checked).","items":{"$ref":"#/components/schemas/de.mittwald.v1.directus.Domain"},"type":"array"},"notes":{"description":"Anything our customer service needs to know for the relocation process.","type":"string"},"provider":{"properties":{"loginUrl":{"description":"Url to the control panel of the provider","minLength":1,"type":"string"},"name":{"description":"Name of your provider","oneOf":[{"minLength":1,"type":"string"},{"enum":["1und1","strato"],"type":"string"}]},"password":{"minLength":1,"type":"string"},"sourceAccount":{"description":"Which account of your provider should be moved?","minLength":1,"type":"string"},"userName":{"description":"Login name to your provider","minLength":1,"type":"string"}},"required":["name","loginUrl","userName","password","sourceAccount"],"type":"object"},"target":{"properties":{"organisation":{"description":"Your customer or organisation number","minLength":1,"type":"string"},"product":{"description":"Help our customer service finding your target account","oneOf":[{"minLength":1,"type":"string"},{"enum":["Space-Server","proSpace","Agentur-Server","CMS-Hosting","Shop-Hosting"],"type":"string"}],"type":"string"},"projectName":{"description":"In which p-account or short project id your project should be moved.","minLength":1,"type":"string"},"system":{"description":"Which mittwald system does the targetProject use?","enum":["kc","mstudio"],"type":"string"}},"required":["organisation","projectName","system","product"],"type":"object"}},"required":["provider","contact","target","allowPasswordChange"],"type":"object"}}},"description":"","required":true},"responses":{"204":{"description":"No content"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[],"summary":"Relocate an external Project to mittwald.","tags":["Relocation"]}},"/v2/service/{accessKeyId}/actions/authenticate":{"post":{"parameters":[{"in":"path","name":"accessKeyId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"secretAccessKey":{"type":"string"}},"required":["secretAccessKey"],"type":"object"}}},"required":true},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Obtain a service token.","tags":[],"deprecated":true}},"/v2/services/{accessKeyId}/actions/authenticate":{"post":{"operationId":"servicetoken-authenticate-service","parameters":[{"in":"path","name":"accessKeyId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"secretAccessKey":{"type":"string"}},"required":["secretAccessKey"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"accessToken":{"properties":{"id":{"type":"string"},"jwtClaims":{"properties":{"exp":{"type":"string"},"iat":{"type":"string"},"iss":{"type":"string"},"sub":{"type":"string"}},"required":["iat","iss","sub","exp"],"type":"object"},"publicToken":{"type":"string"}},"required":["id","jwtClaims","publicToken"],"type":"object"}},"required":["accessToken"],"type":"object"}}},"description":"Authentication has been successful."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Obtain a service token.","tags":[]}},"/v2/projects/{projectId}/sftp-users":{"post":{"operationId":"sftp-user-create-sftp-user","parameters":[{"description":"ID of the Project to create an SFTPUser for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"accessLevel":{"enum":["read","full"],"type":"string"},"authentication":{"$ref":"#/components/schemas/de.mittwald.v1.sshuser.Authentication"},"description":{"type":"string"},"directories":{"items":{"type":"string"},"minItems":1,"type":"array"},"expiresAt":{"format":"date-time","type":"string"}},"required":["description","authentication","directories"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.sshuser.SftpUser"}}},"description":"Created"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create an SFTPUser for a Project.","tags":["SSH/SFTP User"]},"get":{"operationId":"sftp-user-list-sftp-users","parameters":[{"description":"ID of the Project to request SFTPUsers for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.sshuser.SftpUser"},"type":"array"}}},"description":"OK","headers":{"X-Pagination-Limit":{"schema":{"type":"number"}},"X-Pagination-Skip":{"schema":{"type":"number"}},"X-Pagination-TotalCount":{"schema":{"type":"number"}}}},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get all SFTPUsers for a Project.","tags":["SSH/SFTP User"]}},"/v2/sftp-users/{sftpUserId}":{"delete":{"operationId":"sftp-user-delete-sftp-user","parameters":[{"description":"ID of the SFTPUser to be deleted.","in":"path","name":"sftpUserId","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"NoContent"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete an SFTPUser.","tags":["SSH/SFTP User"]},"get":{"operationId":"sftp-user-get-sftp-user","parameters":[{"description":"ID of the SFTPUser to get.","in":"path","name":"sftpUserId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.sshuser.SftpUser"}}},"description":"OK"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get an SFTPUser.","tags":["SSH/SFTP User"]},"patch":{"operationId":"sftp-user-update-sftp-user","parameters":[{"description":"ID of the SFTPUser to be updated.","in":"path","name":"sftpUserId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"accessLevel":{"enum":["read","full"],"type":"string"},"active":{"type":"boolean"},"description":{"type":"string"},"directories":{"items":{"type":"string"},"minItems":1,"type":"array"},"expiresAt":{"format":"date-time","type":"string"},"password":{"maxLength":72,"type":"string"},"publicKeys":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.sshuser.PublicKey"},"type":"array"}},"type":"object"}}}},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update an SFTPUser.","tags":["SSH/SFTP User"]}},"/v2/project/{projectId}/sftp-users":{"get":{"parameters":[{"description":"ID of the Project to request SFTPUsers for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"type":"integer"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get all SFTPUsers for a Project.","tags":["SSH/SFTP User"],"deprecated":true}},"/v2/projects/{projectId}/ssh-users":{"post":{"operationId":"ssh-user-create-ssh-user","parameters":[{"description":"ID of the Project to create an SSHUser for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"authentication":{"$ref":"#/components/schemas/de.mittwald.v1.sshuser.Authentication"},"description":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"}},"required":["description","authentication"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.sshuser.SshUser"}}},"description":"Created"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Create an SSHUser for a Project.","tags":["SSH/SFTP User"]},"get":{"operationId":"ssh-user-list-ssh-users","parameters":[{"description":"ID of the Project to retrieve SSHUsers for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"in":"query","name":"skip","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.sshuser.SshUser"},"type":"array"}}},"description":"OK","headers":{"X-Pagination-Limit":{"schema":{"type":"number"}},"X-Pagination-Skip":{"schema":{"type":"number"}},"X-Pagination-TotalCount":{"schema":{"type":"number"}}}},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get all SSHUsers for a Project.","tags":["SSH/SFTP User"]}},"/v2/ssh-users/{sshUserId}":{"delete":{"operationId":"ssh-user-delete-ssh-user","parameters":[{"description":"ID of the SSHUser to be deleted.","in":"path","name":"sshUserId","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"NoContent"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete an SSHUser.","tags":["SSH/SFTP User"]},"get":{"operationId":"ssh-user-get-ssh-user","parameters":[{"description":"ID of the SSHUser to be retrieved.","in":"path","name":"sshUserId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.sshuser.SshUser"}}},"description":"OK"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get an SSHUser.","tags":["SSH/SFTP User"]},"patch":{"operationId":"ssh-user-update-ssh-user","parameters":[{"description":"ID of the SSHUser to be updated.","in":"path","name":"sshUserId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"active":{"type":"boolean"},"description":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"password":{"maxLength":72,"type":"string"},"publicKeys":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.sshuser.PublicKey"},"type":"array"}},"type":"object"}}}},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update an SSHUser.","tags":["SSH/SFTP User"]}},"/v2/sshusers/{sshUserId}":{"patch":{"parameters":[{"description":"ID of the SSHUser to be updated.","in":"path","name":"sshUserId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"active":{"type":"boolean"},"description":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"password":{"maxLength":72,"type":"string"},"publicKeys":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.sshuser.PublicKey"},"type":"array"}},"type":"object"}}}},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update an SSHUser.","tags":["SSH/SFTP User"],"deprecated":true}},"/v2/users/{userId}/phone":{"post":{"operationId":"user-add-phone-number","parameters":[{"description":"`self` or the id of a user.","examples":{"self":{"summary":"You","value":"self"},"userId":{"summary":"ID of a user.","value":"10203040-1234-5678-abcd-badc0de01234"}},"in":"path","name":"userId","required":true,"schema":{"oneOf":[{"enum":["self"],"type":"string"},{"format":"uuid","type":"string"}]}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"phoneNumber":{"example":"+491701234567","type":"string"}},"required":["phoneNumber"],"type":"object"}}},"required":true},"responses":{"204":{"description":"Phone number was added successfully. Now, it can be verified via /v2/users/:userId/actions/verify-phone."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"409":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Add phone number and start verification process.","tags":["User"]},"delete":{"operationId":"user-remove-phone-number","parameters":[{"description":"`self` or the id of a user.","examples":{"self":{"summary":"You","value":"self"},"userId":{"summary":"ID of a user.","value":"10203040-1234-5678-abcd-badc0de01234"}},"in":"path","name":"userId","required":true,"schema":{"oneOf":[{"enum":["self"],"type":"string"},{"format":"uuid","type":"string"}]}}],"responses":{"204":{"description":"PhoneNumber removal was successful"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Remove phone number.","tags":["User"]}},"/v2/signup/authentication/mfa":{"post":{"requestBody":{"content":{"application/json":{"schema":{"properties":{"email":{"description":"The email of the user.","example":"a.lovelace@example.com","format":"email","type":"string"},"multiFactorCode":{"description":"The second factor - otp code or recovery code.","example":"123456","maxLength":16,"minLength":6,"type":"string"},"password":{"description":"The password of the user.","type":"string"}},"required":["multiFactorCode"],"type":"object"}}},"required":true},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"summary":"Validate your second factor.","tags":["User"],"deprecated":true}},"/v2/authenticate-mfa":{"post":{"operationId":"user-authenticate-mfa","requestBody":{"content":{"application/json":{"schema":{"properties":{"email":{"description":"The email of the user.","example":"a.lovelace@example.com","format":"email","type":"string"},"multiFactorCode":{"description":"The second factor - otp code or recovery code.","example":"123456","maxLength":16,"minLength":6,"type":"string"},"password":{"description":"The password of the user.","type":"string"}},"required":["multiFactorCode"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"expires":{"description":"The expiration date of the token.","format":"date-time","type":"string"},"refreshToken":{"description":"Refresh token to refresh your access token even after it has expired.","type":"string"},"token":{"description":"Public token to identify yourself against the api gateway.","type":"string"}},"required":["token","refreshToken","expires"],"type":"object"}}},"description":"Your authentication request was successful and you've got an access token."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values do not meet our requirements.\nPossible your multiFactorCode is not valid\n"},"408":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/de.mittwald.v1.signup.DomainError"},{"properties":{"name":{"enum":["FirstAuthenticationFactorExpired"],"type":"string"}},"type":"object"}]}}},"description":"Your first factor has been expired. Please call '/authentication' again\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Validate your second factor.","tags":["User"]}},"/v2/signup/authentication":{"post":{"requestBody":{"content":{"application/json":{"schema":{"properties":{"email":{"description":"The users Email-Address.","example":"a.lovelace@example.com","type":"string"},"password":{"description":"Password of the User.","type":"string"}},"required":["email","password"],"type":"object"}}},"required":true},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"summary":"Authenticate yourself to get an access token.","tags":["User"],"deprecated":true}},"/v2/authenticate":{"post":{"operationId":"user-authenticate","requestBody":{"content":{"application/json":{"schema":{"properties":{"email":{"description":"The users Email-Address.","example":"a.lovelace@example.com","type":"string"},"password":{"description":"Password of the User.","type":"string"}},"required":["email","password"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"expires":{"description":"The expiration date of the token.","format":"date-time","type":"string"},"refreshToken":{"description":"Refresh token to refresh your access token even after it has expired.","type":"string"},"token":{"description":"Public token to identify yourself against the api gateway.","type":"string"}},"required":["token","refreshToken","expires"],"type":"object"}}},"description":"Your authentication request was successfull and you've got an access token."},"202":{"content":{"application/json":{"schema":{"properties":{"name":{"enum":["SecondFactorRequired"],"type":"string"}},"type":"object"}}},"description":"Multi factor authentication is activated for this user. After calling this, you need to call '/authentication/mfa' with a valid multi factor code.\n"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Authentication failed because of wrong credentials.\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Authenticate yourself to get an access token.","tags":["User"]}},"/v2/authenticate-token-retrieval-key":{"post":{"operationId":"user-authenticate-with-access-token-retrieval-key","requestBody":{"content":{"application/json":{"schema":{"properties":{"accessTokenRetrievalKey":{"maxLength":37,"minLength":37,"type":"string"},"userId":{"format":"uuid","type":"string"}},"required":["userId","accessTokenRetrievalKey","refreshToken"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"expiresAt":{"description":"The expiration date of the token.","format":"date-time","type":"string"},"refreshToken":{"description":"Refresh token to refresh your access token even after it has expired.","type":"string"},"token":{"description":"Public token to identify yourself against the public api.","type":"string"}},"required":["token","refreshToken","expiresAt"],"type":"object"}}},"description":"Your authentication request was successful and you've got an access token."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Authenticate an user with an access token retrieval key.","tags":["User"]}},"/v2/users/self/credentials/email":{"put":{"operationId":"user-change-email","requestBody":{"content":{"application/json":{"schema":{"properties":{"email":{"description":"The new Email-Address","example":"ada.lovelace@example.com","format":"email","type":"string"}},"required":["email"],"type":"object"}}},"required":true},"responses":{"204":{"description":"Your email has been added, but needs to be verfied. Check your mails and\ncall /email/verify with the verification code sent with the mail.\n"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values does not meet our requirements.\nPossible domain specific `type` values are:\n * EmailInUse\n * EmailBlacklisted\n * EmailMXInvalid\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Change your Email-Address.","tags":["User"]},"get":{"operationId":"user-get-own-email","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"email":{"example":"a.lovelace@example.com","format":"email","type":"string"}},"required":["email"],"type":"object"}}},"description":"Your Email-Address."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get your verified Email-Address.","tags":["User"]}},"/v2/signup/password":{"put":{"requestBody":{"content":{"application/json":{"schema":{"properties":{"multiFactorCode":{"description":"Multi Factor Code to confirm MFA.\nThis is optional, depending on the MFA activation status of the profile.\n","example":"123456","maxLength":16,"minLength":6,"type":"string"},"newPassword":{"description":"The new password.","type":"string"},"oldPassword":{"description":"The old password.","type":"string"}},"required":["oldPassword","newPassword"],"type":"object"}}},"required":true},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Change your password.","tags":["User"],"deprecated":true},"get":{"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":false},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"The timestamp of your latest password change.","tags":["User"],"deprecated":true}},"/v2/users/self/credentials/password":{"put":{"operationId":"user-change-password","requestBody":{"content":{"application/json":{"schema":{"properties":{"multiFactorCode":{"description":"Multi Factor Code to confirm MFA.\nThis is optional, depending on the MFA activation status of the profile.\n","example":"123456","maxLength":16,"minLength":6,"type":"string"},"newPassword":{"description":"The new password.","type":"string"},"oldPassword":{"description":"The old password.","type":"string"}},"required":["oldPassword","newPassword"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"expires":{"description":"The expiration date of the token.","format":"date-time","type":"string"},"token":{"description":"Public token to identify yourself against the api gateway.","type":"string"}},"required":["token","expires"],"type":"object"}}},"description":"Your password has been changed."},"202":{"$ref":"#/components/responses/de.mittwald.v1.signup.SecondFactorRequiredError"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values does not meet our requirements.\nPossible domain specific `type` values are:\n * EmailAddressNotVerified\n * WrongPassword\n * SamePassword\n * PasswordIsLeaked\n * MfaCodeNotValid\n * PasswordEqualsEmail\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Change your password.","tags":["User"]}},"/v2/signup/token/check":{"post":{"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":false},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Check token for validity.","tags":["User"],"deprecated":true}},"/v2/users/self/credentials/token":{"post":{"operationId":"user-check-token","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"uuid","type":"string"},"publicToken":{"type":"string"}},"required":["id","publicToken"],"type":"object"}}},"description":"Your token is valid."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Check token for validity.","tags":["User"]}},"/v2/signup/mfa/confirm":{"post":{"requestBody":{"content":{"application/json":{"schema":{"properties":{"multiFactorCode":{"description":"Multi Factor Code to confirm MFA.","example":"123456","maxLength":16,"minLength":6,"type":"string"}},"required":["multiFactorCode"],"type":"object"}}},"required":true},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Confirm Multi Factor Authentication.","tags":["User"],"deprecated":true}},"/v2/users/self/credentials/mfa":{"post":{"operationId":"user-confirm-mfa","requestBody":{"content":{"application/json":{"schema":{"properties":{"multiFactorCode":{"description":"Multi Factor Code to confirm MFA.","example":"123456","maxLength":16,"minLength":6,"type":"string"}},"required":["multiFactorCode"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"recoveryCodesList":{"items":{"example":1234123412341234,"maxLength":16,"minLength":16,"type":"string"},"maxItems":20,"minItems":20,"type":"array"}},"required":["recoveryCodesList"],"type":"object"}}},"description":"Mfa is now activated and recovery codes are in the response body."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values does not meet our requirements.\nPossible domain specific `type` values are:\n * EmailAddressNotVerified\n * MfaNotInitialized\n * MfaAlreadyConfirmed\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Confirm Multi Factor Authentication.","tags":["User"]},"delete":{"operationId":"user-disable-mfa","requestBody":{"content":{"application/json":{"schema":{"properties":{"multiFactorCode":{"description":"Multi Factor Code to confirm MFA.","maxLength":16,"minLength":6,"type":"string"}},"required":["multiFactorCode"],"type":"object"}}},"required":true},"responses":{"204":{"description":"Multi Factor Authentication was disabled."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values does not meet our requirements.\nPossible domain specific `type` values are:\n * MultiFactorCodeNotValid\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Disable Multi Factor Authentication.","tags":["User"]},"get":{"operationId":"user-get-mfa-status","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"confirmed":{"type":"boolean"},"initialized":{"type":"boolean"}},"required":["initialized","confirmed"],"type":"object"}}},"description":"Multi factor auth status"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get your current multi factor auth status.","tags":["User"]},"put":{"operationId":"user-reset-recoverycodes","requestBody":{"content":{"application/json":{"schema":{"properties":{"multiFactorCode":{"description":"Multi Factor Code to authorize your request.","example":"123456","maxLength":16,"minLength":6,"type":"string"}},"required":["multiFactorCode"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"recoveryCodesList":{"items":{"example":1234123412341234,"maxLength":16,"minLength":16,"type":"string"},"maxItems":20,"minItems":20,"type":"array"}},"required":["recoveryCodesList"],"type":"object"}}},"description":"Recovery-Codes are reset now. The new Recovery-Codes are in the response body."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values does not meet our requirements.\nPossible domain specific `type` values are:\n * MultiFactorCodeNotValid\n * MfaNotInitialized\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Reset RecoveryCodes for MFA.","tags":["User"]}},"/v2/users/self/credentials/password/confirm-reset":{"post":{"operationId":"user-confirm-password-reset","requestBody":{"content":{"application/json":{"schema":{"properties":{"password":{"description":"The new password.","type":"string"},"token":{"description":"Password reset token","maxLength":6,"minLength":6,"type":"string"},"userId":{"description":"UserId of the user to reset the password for.","format":"uuid","type":"string"}},"required":["userId","token","password"],"type":"object"}}},"required":true},"responses":{"204":{"description":"Password reset was successful."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values do not meet our requirements.\nPossible domain specific `type` values are:\n * WrongPasswordResetToken\n * EmailAddressNotVerified\n * PasswordIsLeaked\n * ValidationError\n * PasswordEqualsEmail\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Confirm password reset.","tags":["User"]}},"/v2/signup/token/api":{"post":{"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"example":"Api Token - read","type":"string"},"expiresAt":{"format":"date-time","type":"string"},"roles":{"description":"Determines the access rights of the ApiToken.","example":{"value":["api_read"]},"items":{"enum":["api_read","api_write"],"type":"string"},"minItems":1,"type":"array","uniqueItems":true}},"required":["roles","description"],"type":"object"}}},"required":true},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Store a new ApiToken.","tags":["User"],"deprecated":true},"get":{"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List all of your ApiTokens.","tags":["User"],"deprecated":true}},"/v2/users/self/api-tokens":{"post":{"operationId":"user-create-api-token","requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"example":"Api Token - read","type":"string"},"expiresAt":{"format":"date-time","type":"string"},"roles":{"description":"Determines the access rights of the ApiToken.","example":{"value":["api_read"]},"items":{"enum":["api_read","api_write"],"type":"string"},"minItems":1,"type":"array","uniqueItems":true}},"required":["roles","description"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"token":{"description":"The `ApiToken`.","type":"string"}},"required":["token"],"type":"object"}}},"description":"ApiToken was added."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Store a new ApiToken.","tags":["User"]},"get":{"operationId":"user-list-api-tokens","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.signup.ApiToken"},"type":"array"}}},"description":"A list of ApiTokens."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List all of your ApiTokens.","tags":["User"]}},"/v2/users/self/feedback":{"post":{"operationId":"user-create-feedback","requestBody":{"content":{"application/json":{"schema":{"properties":{"message":{"description":"Personal feedback message.","maxLength":5000,"type":"string"},"origin":{"description":"Origin of the feedback.","example":"https://studio.mittwald.de/app/dashboard","maxLength":1000,"type":"string"},"subject":{"description":"Descriptive subject.","maxLength":100,"type":"string"},"type":{"description":"Type of feedback.","enum":["feedback","bug"],"type":"string"},"vote":{"description":"Feedback rating from bad to good. Set to 0 or skip this field to not vote at all.","maximum":10,"minimum":0,"type":"number"}},"required":["subject"],"type":"object"}}},"description":"The feedback to give."},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Feedback successfully submitted."},"401":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Submit your user feedback.","tags":["User"]}},"/v2/signup/ssh":{"post":{"requestBody":{"content":{"application/json":{"schema":{"properties":{"expiresAt":{"format":"date-time","type":"string"},"publicKey":{"example":"ssh-rsa ...","type":"string"}},"required":["publicKey"],"type":"object"}}},"required":true},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Store a new ssh-key.","tags":["User"],"deprecated":true},"get":{"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get your stored ssh-keys.","tags":["User"],"deprecated":true}},"/v2/users/self/ssh-keys":{"post":{"operationId":"user-create-ssh-key","requestBody":{"content":{"application/json":{"schema":{"properties":{"expiresAt":{"format":"date-time","type":"string"},"publicKey":{"example":"ssh-rsa ...","type":"string"}},"required":["publicKey"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"The ssh-key was stored."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Store a new ssh-key.","tags":["User"]},"get":{"operationId":"user-list-ssh-keys","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"sshKeys":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.signup.SshKey"},"type":"array"}},"type":"object"}}},"description":"The list of stored ssh-keys."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get your stored ssh-keys.","tags":["User"]}},"/v2/users/self/api-tokens/{apiTokenId}":{"delete":{"operationId":"user-delete-api-token","parameters":[{"description":"The uuid of an ApiToken.","in":"path","name":"apiTokenId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"The `ApiToken` has been deleted."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Deletes an ApiToken.","tags":["User"]},"put":{"operationId":"user-edit-api-token","parameters":[{"in":"path","name":"apiTokenId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"example":"Api Token for ...","type":"string"},"expiresAt":{"format":"date-time","type":"string"}},"required":["description"],"type":"object"}}},"required":true},"responses":{"204":{"description":"ApiToken was updated."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update an existing `ApiToken`.","tags":["User"]},"get":{"operationId":"user-get-api-token","parameters":[{"description":"The id of an ApiToken.","in":"path","name":"apiTokenId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.signup.ApiToken"}}},"description":"The ApiToken."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a specific ApiToken.","tags":["User"]}},"/v2/users/self/ssh-keys/{sshKeyId}":{"delete":{"operationId":"user-delete-ssh-key","parameters":[{"in":"path","name":"sshKeyId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"The ssh-key has been removed."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Remove a ssh-key.","tags":["User"]},"put":{"operationId":"user-edit-ssh-key","parameters":[{"in":"path","name":"sshKeyId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"comment":{"example":"a.lovelace@example.com","type":"string"},"expiresAt":{"format":"date-time","type":"string"}},"required":["comment"],"type":"object"}}},"required":true},"responses":{"204":{"description":"The ssh-key has been edited."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Edit a stored ssh-key.","tags":["User"]},"get":{"operationId":"user-get-ssh-key","parameters":[{"in":"path","name":"sshKeyId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"sshKey":{"$ref":"#/components/schemas/de.mittwald.v1.signup.SshKey"}},"required":["sshKey"],"type":"object"}}},"description":"The requested ssh-key."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a specific stored ssh-key.","tags":["User"]}},"/v2/users/self":{"delete":{"operationId":"user-delete-user","requestBody":{"content":{"application/json":{"schema":{"properties":{"multiFactorCode":{"description":"Multi Factor Code to authorize your request.","example":"123456","maxLength":16,"minLength":6,"type":"string"},"password":{"type":"string"}},"required":["password"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Your user has been deleted."},"202":{"$ref":"#/components/responses/de.mittwald.v1.signup.SecondFactorRequiredError"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values does not meet our requirements.\nPossible domain specific `type` values are:\n * WrongPassword\n * MfaCodeNotValid\n"},"409":{"$ref":"#/components/responses/de.mittwald.v1.signup.RemovingLastOwnerNotAllowedError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete your account and all your personal data.","tags":["User"]}},"/v2/users/self/personal-information":{"get":{"operationId":"user-get-own-account","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.signup.Account"}}},"description":"Account information."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get your account information.","tags":["User"]},"put":{"operationId":"user-update-account","requestBody":{"content":{"application/json":{"schema":{"properties":{"person":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Person"}},"required":["person"],"type":"object"}}},"required":true},"responses":{"204":{"description":"Account has been updated."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values does not meet our requirements.\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update your account information.","tags":["User"]}},"/v2/users/self/credentials/password-updated-at":{"get":{"operationId":"user-get-password-updated-at","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"passwordUpdatedAt":{"format":"date-time","type":"string"}},"required":["passwordUpdatedAt"],"type":"object"}}},"description":"Timestamp of latest password change."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"The timestamp of your latest password change.","tags":["User"]}},"/v2/users/{userId}/settings":{"get":{"operationId":"user-get-personalized-settings","parameters":[{"description":"`self` or the id of a user.","examples":{"self":{"summary":"You","value":"self"},"userId":{"summary":"ID of a user.","value":"10203040-1234-5678-abcd-badc0de01234"}},"in":"path","name":"userId","required":true,"schema":{"oneOf":[{"enum":["self"],"type":"string"},{"format":"uuid","type":"string"}]}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"settingsString":{"example":"eyJvbmJvYXJkaW5nIjp7ImNvbXBsZXRlZCI6W119LCJyZWNlbnRWaXNpdHMiOnsicmVjZW50VmlzaXRzIjp7fSwicmVjZW50VmlzaXRlZFBhdGhzIjp7fX0sImNoYW5nZWxvZ3MiOnsicmVhZElkcyI6WzIsMSwzLDQsNSw2LDgsNyw5XX19","format":"base64","type":"string"}},"type":"object"}}},"description":"Personal settings of the user."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get personalized settings.","tags":["User"]},"put":{"operationId":"user-update-personalized-settings","parameters":[{"description":"`self` or the id of a user.","examples":{"self":{"summary":"You","value":"self"},"userId":{"summary":"ID of a user.","value":"10203040-1234-5678-abcd-badc0de01234"}},"in":"path","name":"userId","required":true,"schema":{"oneOf":[{"enum":["self"],"type":"string"},{"format":"uuid","type":"string"}]}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"settingsString":{"example":"eyJvbmJvYXJkaW5nIjp7ImNvbXBsZXRlZCI6W119LCJyZWNlbnRWaXNpdHMiOnsicmVjZW50VmlzaXRzIjp7fSwicmVjZW50VmlzaXRlZFBhdGhzIjp7fX0sImNoYW5nZWxvZ3MiOnsicmVhZElkcyI6WzIsMSwzLDQsNSw2LDgsNyw5XX19","format":"base64","type":"string"}},"required":["settingsString"],"type":"object"}}},"required":true},"responses":{"204":{"description":"PersonalSettings have been updated"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update personalized GUI settings.","tags":["User"]}},"/v2/poll-settings/{userId}":{"get":{"operationId":"user-get-poll-status","parameters":[{"in":"path","name":"userId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.poll.UserPollSettings"}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get poll settings for the specified user.","tags":["User"]},"post":{"operationId":"user-post-poll-status","parameters":[{"in":"path","name":"userId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"status":{"enum":["completed","muted","ignored"],"type":"string"},"userId":{"type":"string"}},"required":["userId","status"],"type":"object"}}},"description":"","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.poll.UserPollSettings"}}},"description":"The updated poll settings."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Store new or update poll settings.","tags":["User"]}},"/v2/users/self/sessions/{tokenId}":{"get":{"operationId":"user-get-session","parameters":[{"description":"TokenId to identify a specific session.","in":"path","name":"tokenId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.signup.UserSession"}}},"description":"The session."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a specific session.","tags":["User"]},"delete":{"operationId":"user-terminate-session","parameters":[{"description":"The sessionId is the id of the token used to create the session.","in":"path","name":"tokenId","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Session terminated."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Terminate a specific Session.","tags":["User"]}},"/v2/users/{userId}":{"get":{"operationId":"user-get-user","parameters":[{"description":"`self` or the id of a user.","examples":{"self":{"summary":"You","value":"self"},"userId":{"summary":"ID of a user.","value":"10203040-1234-5678-abcd-badc0de01234"}},"in":"path","name":"userId","required":true,"schema":{"oneOf":[{"enum":["self"],"type":"string"},{"format":"uuid","type":"string"}]}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.user.User"}}},"description":"The user profile."},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get profile information for a user.","tags":["User"]},"put":{"operationId":"user-update-personal-information","parameters":[{"description":"`self` or the id of a user.","examples":{"self":{"summary":"You","value":"self"},"userId":{"summary":"ID of a user.","value":"10203040-1234-5678-abcd-badc0de01234"}},"in":"path","name":"userId","required":true,"schema":{"oneOf":[{"enum":["self"],"type":"string"},{"format":"uuid","type":"string"}]}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"person":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Person"}},"required":["person"],"type":"object"}}},"required":true},"responses":{"204":{"description":"Your personal information has been changed"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Change personal information.","tags":["User"]}},"/v2/users/self/credentials/init-mfa":{"post":{"operationId":"user-init-mfa","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"barcode":{"description":"base64 encoded barcode content to scan from your mfa app. e.g. `iVBORw0KGgoAAAANSUhEUgAAAMgAAADIEAAAAADYoy...`. You\ncan display it with ``\n","type":"string"},"url":{"description":"Same as barcode, but in URL form.\n","example":"otpauth://totp/mStudio:test@gmail.com?algorithm=SHA1&digits=6&issuer=mStudio&period=30&secret=HTXT7KJFVNAJUPYWQRWMNVQE5AF5YZI2","type":"string"}},"required":["barcode","url"],"type":"object"}}},"description":"The process of activating Multi Factor Authentication is initialized."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values does not meet our requirements.\nPossible domain specific `type` values are:\n * EmailAddressNotVerified\n * MfaAlreadyConfirmed\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Initialize Multi Factor Authentication. If successful, it needs to be confirmed, before usage of mfa.","tags":["User"]}},"/v2/users/self/credentials/actions/init-password-reset":{"post":{"operationId":"user-init-password-reset","requestBody":{"content":{"application/json":{"schema":{"properties":{"email":{"description":"Email address to reset the password for.","example":"a.lovelace@example.com","format":"email","type":"string"}},"required":["email"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"The password reset process has been initialized and an email with confirmation code has been sent.\n"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values do not meet our requirements.\n"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Initialize password reset process.","tags":["User"]}},"/v2/users/{userId}/feedback":{"get":{"operationId":"user-list-feedback","parameters":[{"description":"`self` or the id of a user.","examples":{"self":{"summary":"You","value":"self"},"userId":{"summary":"ID of a user.","value":"10203040-1234-5678-abcd-badc0de01234"}},"in":"path","name":"userId","required":true,"schema":{"oneOf":[{"enum":["self"],"type":"string"},{"format":"uuid","type":"string"}]}},{"description":"Filter for subject content.","in":"query","name":"subject","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.user.UserFeedback"},"type":"array"}}},"description":"Feedback submitted by the user."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Submitted feedback of the given user.","tags":["User"]}},"/v2/users/self/sessions":{"get":{"operationId":"user-list-sessions","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.signup.UserSession"},"type":"array"}}},"description":"List of all sessions."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List all sessions.","tags":["User"]},"put":{"operationId":"user-refresh-session","requestBody":{"content":{"application/json":{"schema":{"properties":{"refreshToken":{"type":"string"}},"required":["refreshToken"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"expiresAt":{"description":"The expiration date of the token.","format":"date-time","type":"string"},"refreshToken":{"description":"Refresh token to refresh your access token even after it has expired.","type":"string"},"token":{"description":"Public token to identify yourself against the public api.","type":"string"}},"required":["token","refreshToken","expiresAt"],"type":"object"}}},"description":"Your token refresh was successful and you've got new a new access token. The used one in this call is no longer valid."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Refresh a session.","tags":["User"]},"delete":{"operationId":"user-terminate-all-sessions","responses":{"204":{"description":"All sessions terminated."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Terminate all sessions, except the current session.","tags":["User"]}},"/v2/logout":{"put":{"operationId":"user-logout","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":false},"responses":{"204":{"description":"You've been logged out. The access token has been removed and invalidated."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values do not meet our requirements.\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Terminate session and invalidate access token.","tags":["User"]}},"/v2/oauth2/authorize":{"get":{"operationId":"user-oauth-get-authorization","description":"The OAuth 2.0 client requests authorization from the resource owner according to\n[RFC6749](https://datatracker.ietf.org/doc/html/rfc6749). The\nauthorization request is made indirectly via the authorization\nserver as an intermediary.\n","parameters":[{"description":"Access Token of the Resource Owner.\n","in":"cookie","name":"x-access-token","required":false,"schema":{"type":"string"}},{"description":"Can be set in combination with `Authorization`-Header to grant consent for the requested scopes.\nIf set to `true`, the scopes will be marked as consented and the authorization server will\nredirect the user-agent back to the client.\nIf set to `false`, the authorization server will redirect the user-agent back to the client with an\naccess denied error.\nIf not set and `Authorization`-Header is set, the user will be asked for consent.\n","in":"query","name":"grant_consent","required":false,"schema":{"type":"boolean"}},{"description":"The grant type. Must be set to `authorization_code` for this endpoint.\n","in":"query","name":"grant_type","required":false,"schema":{"enum":["authorization_code"],"type":"string"}},{"description":"The response type. Must be set to `code` for this endpoint.\n","in":"query","name":"response_type","required":true,"schema":{"enum":["code"],"type":"string"}},{"description":"The client identifier as described in\n[RFC6749](https://datatracker.ietf.org/doc/html/rfc6749#section-2.2).\n","in":"query","name":"client_id","required":true,"schema":{"type":"string"}},{"description":"The redirection URI to which the authorization server\ndirects the user-agent back after the authorization\nendpoint. Must be a valid URI.\n","in":"query","name":"redirect_uri","required":false,"schema":{"format":"uri","type":"string"}},{"description":"The scope of the access request as described by\n[RFC6749](https://datatracker.ietf.org/doc/html/rfc6749#section-3.3).\n","in":"query","name":"scope","required":false,"schema":{"type":"string"}},{"description":"An opaque value used by the client to maintain state\nbetween the request and callback. The authorization server\nincludes this value when redirecting the user-agent back to\nthe client. The parameter SHOULD be used for preventing\ncross-site request forgery as described in\n[RFC6749](https://datatracker.ietf.org/doc/html/rfc6749#section-10.12).\n","in":"query","name":"state","required":false,"schema":{"type":"string"}},{"description":"The code challenge as described by\n[RFC7636](https://datatracker.ietf.org/doc/html/rfc7636#section-4.2).\nIf the authorization code flow should be used with Proof Key for Code Exchange (PKCE), this parameter\n must be set and the code verifier has to be given to the token endpoint.\n","in":"query","name":"code_challenge","required":false,"schema":{"type":"string"}},{"description":"The code challenge method as described in\n[RFC7636](https://datatracker.ietf.org/doc/html/rfc7636#section-4.3).\nIf used, the code_challenge must be set as well and the code verifier\nhas to be given to the token endpoint\n","in":"query","name":"code_challenge_method","required":false,"schema":{"enum":["S256"],"type":"string"}}],"responses":{"302":{"description":"The authorization server redirects the user-agent by\nsending the HTTP response with status code 302 and the HTTP\n`Location`-Header field containing the authorization endpoint URI\nwith either the query parameters `code` added, if successful or `error`\nand `error_description` added, if not. Fore more Information see\n[Authorization Response](https://datatracker.ietf.org/doc/html/rfc6749#section-4.1.2).\n"},"400":{"content":{"application/json":{"schema":{"properties":{"error":{"enum":["invalid_request"],"type":"string"},"error_description":{"type":"string"}},"required":["error"],"type":"object"}}},"description":"The request is missing a required parameter, includes an\ninvalid parameter value, includes a parameter more than\nonce, or is otherwise malformed.\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Obtain authorization from the resource owner.","tags":["User"]}},"/v2/oauth2/token":{"post":{"operationId":"user-oauth-retrieve-access-token","description":"The OAuth 2.0 client retrieves an Access Token from an existing authorization code according to\n[RFC6749](https://datatracker.ietf.org/doc/html/rfc6749).\n","parameters":[{"description":"The client credentials (`client_id` and `client_secret`), separated with a colon\nand base64 encoded as described in\n[RFC6749](https://datatracker.ietf.org/doc/html/rfc6749#section-2.3.1).\nSubmitting the `client_id` and `client_secret` as request-body as suggested is forbidden.\n","in":"header","name":"Authorization","required":false,"schema":{"example":"Basic Y2xpZW50X2lkOmNsaWVudF9zZWNyZXQ=","type":"string"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"properties":{"code":{"description":"The authorization code received from the authorization server.\n","type":"string"},"code_verifier":{"description":"The code verifier used to generate the code challenge as described in\n[RFC7636](https://datatracker.ietf.org/doc/html/rfc7636#section-4.1).\nIf the authorization flow was initiated with a code challenge, this parameter is required.\n","type":"string"},"grant_type":{"description":"The grant type as described in\n[RFC6749](https://datatracker.ietf.org/doc/html/rfc6749#section-4.1.3).\n","enum":["authorization_code"],"type":"string"},"redirect_uri":{"description":"The redirection URI used in the authorization request.\nMust be a valid URI.\n","format":"uri","type":"string"}},"required":["grant_type","redirect_uri","code"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"access_token":{"description":"The access token issued by the authorization server.\n","type":"string"},"expires_in":{"description":"The lifetime in seconds of the access token. For\nexample, the value \"3600\" denotes that the access\ntoken will expire in one hour from the time the\nresponse was generated.\n","type":"integer"},"refresh_token":{"description":"The refresh token issued by the authorization server.\n","type":"string"},"scope":{"description":"The scope of the access token as described by\n[RFC6749](https://datatracker.ietf.org/doc/html/rfc6749#section-3.3).\n","type":"string"},"token_type":{"description":"The type of the token issued as described in\n[RFC6749](https://datatracker.ietf.org/doc/html/rfc6749#section-7.1).\n","enum":["bearer"],"type":"string"}},"required":["access_token","refresh_token","token_type","expires_in"],"type":"object"}}},"description":"The authorization server issues an access token as described in\n[RFC6749](https://datatracker.ietf.org/doc/html/rfc6749#section-5.1).\n"},"400":{"content":{"application/json":{"schema":{"properties":{"error":{"enum":["invalid_request","invalid_client","invalid_grant","unauthorized_client","unsupported_grant_type","invalid_scope"],"type":"string"},"error_description":{"type":"string"}},"required":["error"],"type":"object"}}},"description":"The request of an access token is invalid as described in\n[RFC6749](https://datatracker.ietf.org/doc/html/rfc6749#section-5.2).\n"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Retrieve Access Token from Authorization Code.","tags":["User"]}},"/v2/signup/registration":{"post":{"requestBody":{"content":{"application/json":{"schema":{"properties":{"email":{"description":"The users email address","format":"email","type":"string"},"password":{"description":"The users password.","type":"string"},"person":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Person"}},"required":["email","password","person"],"type":"object"}}},"required":true},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"summary":"Register with email and password.","tags":["User"],"deprecated":true}},"/v2/register":{"post":{"operationId":"user-register","requestBody":{"content":{"application/json":{"schema":{"properties":{"email":{"description":"The users email address","format":"email","type":"string"},"password":{"description":"The users password.","type":"string"},"person":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Person"}},"required":["email","password","person"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"userId":{"format":"uuid","type":"string"}},"required":["userId"],"type":"object"}}},"description":"Registration was successfull. A verification email will be sent to the specified email address.\nThe users can be used as soon as the verification link was opened\n"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values does not meet our requirements.\nPossible domain specific `type` values are:\n * EmailInUse\n * PasswordIsLeaked\n * ValidationError\n * PasswordEqualsEmail\n"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Register with email and password.","tags":["User"]}},"/v2/users/{userId}/avatar":{"delete":{"operationId":"user-remove-avatar","parameters":[{"description":"`self` or the id of a user.","examples":{"self":{"summary":"You","value":"self"},"userId":{"summary":"ID of a user.","value":"10203040-1234-5678-abcd-badc0de01234"}},"in":"path","name":"userId","required":true,"schema":{"oneOf":[{"enum":["self"],"type":"string"},{"format":"uuid","type":"string"}]}}],"responses":{"204":{"description":"Avatar removal was successful."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Remove Avatar.","tags":["User"]},"post":{"operationId":"user-request-avatar-upload","parameters":[{"description":"`self` or the id of a user.","examples":{"self":{"summary":"You","value":"self"},"userId":{"summary":"ID of a user.","value":"10203040-1234-5678-abcd-badc0de01234"}},"in":"path","name":"userId","required":true,"schema":{"oneOf":[{"enum":["self"],"type":"string"},{"format":"uuid","type":"string"}]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"refId":{"description":"The `refId` to be used to upload your avatar to the /v2/files/:refId route.","format":"uuid","type":"string"},"rules":{"description":"Contstraints for the avatar image upload.","properties":{"maxSizeInKB":{"description":"Maximum size in kilobytes of the avatar image.","example":3000,"type":"integer"},"mimeTypes":{"description":"List of supported mime types.","items":{"example":"image/png","type":"string"},"type":"array"},"properties":{"properties":{"imageDimensions":{"description":"Supported range of dimensions for the avatar image.","properties":{"max":{"properties":{"height":{"type":"integer"},"width":{"type":"integer"}},"type":"object"},"min":{"properties":{"height":{"type":"integer"},"width":{"type":"integer"}},"type":"object"}},"type":"object"}},"type":"object"}},"required":["mimeTypes","maxSizeInKB"],"type":"object"}},"required":["refId","rules"],"type":"object"}}},"description":"Avatar upload request was successful."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Request a new avatar image upload.","tags":["User"]}},"/v2/users/self/credentials/email/actions/resend-email":{"post":{"operationId":"user-resend-verification-email","requestBody":{"content":{"application/json":{"schema":{"properties":{"email":{"example":"ada.lovelace@example.com","format":"email","type":"string"},"userId":{"format":"uuid","type":"string"}},"required":["userId","email"],"type":"object"}}},"required":true},"responses":{"204":{"description":"New Email-Address verification email was sent."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values do not meet our requirements.\n"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Resend the Email-Address verification email.","tags":["User"]}},"/v2/signup/mfa/reset-recoverycodes":{"put":{"requestBody":{"content":{"application/json":{"schema":{"properties":{"multiFactorCode":{"description":"Multi Factor Code to authorize your request.","example":"123456","maxLength":16,"minLength":6,"type":"string"}},"required":["multiFactorCode"],"type":"object"}}},"required":true},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Reset RecoveryCodes for MFA.","tags":["User"],"deprecated":true}},"/v2/signup/supportcode":{"get":{"parameters":[{"in":"query","name":"forceRecreate","required":false,"schema":{"type":"boolean"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Request a support code.","tags":["User"],"deprecated":true}},"/v2/signup/supportcodes":{"get":{"parameters":[{"in":"query","name":"forceRecreate","required":false,"schema":{"type":"boolean"}}],"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Request a support code.","tags":["User"],"deprecated":true}},"/v2/users/self/credentials/support-code":{"get":{"operationId":"user-support-code-request","parameters":[{"in":"query","name":"forceRecreate","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"expiresAt":{"description":"Expiration of the support code","format":"date-time","type":"string"},"supportCode":{"description":"support code to authenticate yourself against the mittwald support via telephone","example":"123456","type":"string"}},"required":["supportCode","expiresAt"],"type":"object"}}},"description":"The requested support code and the expiry."},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Request a support code.","tags":["User"]}},"/v2/users/self/credentials/email/actions/verify-email":{"post":{"operationId":"user-verify-email","requestBody":{"content":{"application/json":{"schema":{"properties":{"email":{"description":"The Email-Address to verify.","example":"ada.lovelace@example.com","format":"email","type":"string"},"token":{"description":"The token found in the verification email.","example":"123456","type":"string"}},"required":["email"],"type":"object"}}},"required":true},"responses":{"204":{"description":"Email has been verified."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values do not meet our requirements.\nPossible domain specific `type` values are:\n * WrongVerificationToken\n * EmailNotFound\n * WrongVerificationToken\n * EmailAddressAlreadyVerified\n"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Verify an added Email-Address.","tags":["User"]}},"/v2/users/{userId}/phone/verify":{"post":{"parameters":[{"description":"`self` or the id of a user.","examples":{"self":{"summary":"You","value":"self"},"userId":{"summary":"ID of a user.","value":"10203040-1234-5678-abcd-badc0de01234"}},"in":"path","name":"userId","required":true,"schema":{"oneOf":[{"enum":["self"],"type":"string"},{"format":"uuid","type":"string"}]}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"code":{"example":"123456","maxLength":6,"minLength":6,"type":"string"},"phoneNumber":{"example":"+491701234567","type":"string"}},"required":["phoneNumber","code"],"type":"object"}}},"required":true},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Verify phone number.","tags":["User"],"deprecated":true}},"/v2/users/{userId}/actions/verify-phone":{"post":{"operationId":"user-verify-phone-number","parameters":[{"description":"`self` or the id of a user.","examples":{"self":{"summary":"You","value":"self"},"userId":{"summary":"ID of a user.","value":"10203040-1234-5678-abcd-badc0de01234"}},"in":"path","name":"userId","required":true,"schema":{"oneOf":[{"enum":["self"],"type":"string"},{"format":"uuid","type":"string"}]}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"code":{"example":"123456","maxLength":6,"minLength":6,"type":"string"},"phoneNumber":{"example":"+491701234567","type":"string"}},"required":["phoneNumber","code"],"type":"object"}}},"required":true},"responses":{"204":{"description":"The phone number has been verified."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"409":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Verify phone number.","tags":["User"]}},"/v2/signup/registration/verification":{"post":{"requestBody":{"content":{"application/json":{"schema":{"properties":{"email":{"description":"The users email address.","format":"email","type":"string"},"token":{"description":"The token that was send to your email address","example":123456,"maxLength":16,"minLength":6,"type":"string"},"userId":{"description":"UUID of the registered user.","format":"uuid","type":"string"}},"required":["email","token","userId"],"type":"object"}}},"required":true},"responses":{"308":{"description":"This route is deprecated, and will redirect you to another URL.","headers":{"location":{"description":"The new URL to use; clients should redirect their request to this URL, using the same request method and body as the original request.","schema":{"type":"string"}}}}},"summary":"Verify your registration.","tags":["User"],"deprecated":true}},"/v2/verify-registration":{"post":{"operationId":"user-verify-registration","requestBody":{"content":{"application/json":{"schema":{"properties":{"email":{"description":"The users email address.","format":"email","type":"string"},"token":{"description":"The token that was send to your email address","example":123456,"maxLength":16,"minLength":6,"type":"string"},"userId":{"description":"UUID of the registered user.","format":"uuid","type":"string"}},"required":["email","token","userId"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"User is verified and you can now login to your user account.\n"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Some of the specified values do not meet our requirements.\nPossible domain specific `type` values are:\n * UserRegistrationAlreadyVerified\n * WrongVerificationToken\n"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Verify your registration.","tags":["User"]}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}]}
\ No newline at end of file