{"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, SSL certificates 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."},{"name":"Misc","description":"API endpoints that are not related to any specific API domain"},{"name":"LeadFyndr","description":"The lead fyndr api allow you to manage you leads and your fyndr profile."},{"name":"AI hosting","description":"The AI hosting provides access to multiple large language and embedding models – GDPR compliant and hosted in Germany."},{"name":"License","description":"The license API allows you to manage your paid licenses."}],"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.ssl.ValidationError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.ssl.CertificateError"}}},"description":"An unexpected Error that occurred while handling the request"},"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.SecondFactorRequiredError":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/de.mittwald.v1.signup.DomainError"},{"properties":{"name":{"enum":["SecondFactorRequired"],"type":"string"}},"required":["name"],"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.aihosting.ContainerMeta":{"properties":{"containerId":{"type":"string"},"errorMessage":{"type":"string"},"ingressId":{"type":"string"},"stackId":{"type":"string"},"status":{"enum":["created","requested","failed"],"type":"string"}},"required":["status"],"type":"object"},"de.mittwald.v1.aihosting.Key":{"properties":{"containerMeta":{"$ref":"#/components/schemas/de.mittwald.v1.aihosting.ContainerMeta"},"customerId":{"type":"string"},"isBlocked":{"default":false,"description":"Indicates whether the key is blocked.","type":"boolean"},"key":{"description":"The secret API key which is required for authentication with the AI hosting.","type":"string"},"keyId":{"description":"Auto generated uuid to identify keys in requests.","type":"string"},"models":{"deprecated":true,"description":"This Field is deprecated. You can find the allowed models in the /ai-hosting route.","items":{"type":"string"},"type":"array"},"name":{"type":"string"},"projectId":{"type":"string"},"rateLimit":{"$ref":"#/components/schemas/de.mittwald.v1.aihosting.RateLimit"},"tokenUsage":{"$ref":"#/components/schemas/de.mittwald.v1.aihosting.TokenUsage"}},"required":["keyId","key","models","name","isBlocked","tokenUsage","rateLimit"],"type":"object"},"de.mittwald.v1.aihosting.Model":{"properties":{"displayName":{"type":"string"},"docLink":{"type":"string"},"name":{"type":"string"},"termsOfServiceLink":{"type":"string"}},"required":["name","displayName","docLink","termsOfServiceLink"],"type":"object"},"de.mittwald.v1.aihosting.PlanOptions":{"properties":{"customerId":{"type":"string"},"deletedAt":{"format":"date-time","type":"string"},"keys":{"$ref":"#/components/schemas/de.mittwald.v1.aihosting.PlanUsage"},"nextTokenReset":{"format":"date-time","type":"string"},"rateLimit":{"$ref":"#/components/schemas/de.mittwald.v1.aihosting.RateLimit"},"tokens":{"$ref":"#/components/schemas/de.mittwald.v1.aihosting.PlanUsageBig"},"topUsages":{"items":{"properties":{"keyId":{"type":"string"},"name":{"type":"string"},"projectId":{"type":"string"},"tokenUsed":{"format":"int64","type":"integer"}},"required":["name","tokenUsed"],"type":"object"},"type":"array"}},"required":["customerId","keys","tokens","rateLimit","nextTokenReset"],"type":"object"},"de.mittwald.v1.aihosting.PlanUsageBig":{"properties":{"available":{"format":"int64","minimum":-1,"type":"integer"},"planLimit":{"format":"int64","minimum":-1,"type":"integer"},"used":{"format":"int64","minimum":0,"type":"integer"}},"required":["used","available","planLimit"],"type":"object"},"de.mittwald.v1.aihosting.PlanUsage":{"properties":{"available":{"minimum":-1,"type":"integer"},"planLimit":{"minimum":-1,"type":"integer"},"used":{"minimum":0,"type":"integer"}},"required":["used","available","planLimit"],"type":"object"},"de.mittwald.v1.aihosting.RateLimit":{"description":"The number of allowed requests per unit. Limits are shared across all keys within the same project.","properties":{"allowedRequestsPerUnit":{"type":"integer"},"unit":{"enum":["minute"],"type":"string"}},"required":["allowedRequestsPerUnit","unit"],"type":"object"},"de.mittwald.v1.aihosting.TokenUsage":{"properties":{"planLimit":{"format":"int64","minimum":-1,"type":"integer"},"used":{"format":"int64","minimum":0,"type":"integer"}},"required":["used","planLimit"],"type":"object"},"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.AdditionalValidationSchema":{"description":"AdditionalValidationSchema is a stringified custom validation schema, e.g password rules.","properties":{"kind":{"$ref":"#/components/schemas/de.mittwald.v1.app.AdditionalValidationSchemaKind"},"schema":{"type":"string"}},"type":"object"},"de.mittwald.v1.app.AdditionalValidationSchemaKind":{"description":"AdditionalValidationSchemaKind is an enum, describing the possible types of an additional validation schema.","enum":["password-rule"],"type":"string"},"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":"integer"},"logFileLocation":{"type":"string"},"state":{"enum":["running","stopped","exited"],"type":"string"},"uptimeSeconds":{"format":"double","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.LockPurpose":{"description":"LockPurpose describes why a given AppInstallation is locked from deletion.","enum":["unspecified","copy"],"type":"string"},"de.mittwald.v1.app.Phase":{"description":"Phase describes the current phase/state of an AppInstallation in its lifecycle.","enum":["pending","installing","upgrading","ready","disabled","reconfiguring"],"example":"ready","type":"string"},"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"},"createdAt":{"example":"2024-09-20T22:57:32.000Z","format":"date-time","type":"string"},"customDocumentRoot":{"type":"string"},"deletionRequested":{"default":false,"type":"boolean"},"description":{"type":"string"},"disabled":{"default":false,"type":"boolean"},"id":{"format":"uuid","type":"string"},"installationPath":{"type":"string"},"lastError":{"description":"The last error that occurred during an update. Resets on success.","type":"string"},"linkedDatabases":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.LinkedDatabase"},"type":"array"},"lockedBy":{"additionalProperties":{"$ref":"#/components/schemas/de.mittwald.v1.app.LockPurpose"},"type":"object"},"phase":{"$ref":"#/components/schemas/de.mittwald.v1.app.Phase"},"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","createdAt","projectId","systemSoftware","userInputs","updatePolicy","linkedDatabases","phase"],"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":{"format":"uuid","type":"string"},"backendPathTemplate":{"type":"string"},"breakingNote":{"$ref":"#/components/schemas/de.mittwald.v1.app.BreakingNote"},"databases":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.DatabaseDependency"},"type":"array"},"defaultCronjobs":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.DefaultCronjob"},"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","appId","externalVersion","internalVersion","docRoot","docRootUserEditable"],"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.CronjobCommand":{"properties":{"interpreterTemplate":{"example":"bash","type":"string"},"parametersTemplate":{"example":"-c","type":"string"},"pathTemplate":{"example":"/bin/bash","type":"string"}},"required":["interpreterTemplate","pathTemplate"],"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.DefaultCronjob":{"properties":{"active":{"example":true,"type":"boolean"},"command":{"$ref":"#/components/schemas/de.mittwald.v1.app.CronjobCommand"},"description":{"example":"Beschreibung des Cronjobs","type":"string"},"interval":{"example":"0 5 * * *","type":"string"},"timeout":{"example":300,"format":"int32","type":"integer"},"urlTemplate":{"example":"https://example.com/cronjob","type":"string"}},"required":["interval","active","description","timeout"],"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":{"additionalValidationSchema":{"$ref":"#/components/schemas/de.mittwald.v1.app.AdditionalValidationSchema"},"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":"integer"},"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.backup.BackupSortOrder":{"enum":["oldestFirst","newestFirst"],"type":"string"},"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"},"requestedAt":{"format":"date-time","type":"string"},"restore":{"$ref":"#/components/schemas/de.mittwald.v1.backup.ProjectBackupRestore"},"restorePath":{"$ref":"#/components/schemas/de.mittwald.v1.backup.ProjectBackupRestorePathDeprecated"},"status":{"example":"Completed","type":"string"}},"required":["id","projectId","status","deletable","requestedAt"],"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"},"sha256Checksum":{"type":"string"},"withPassword":{"type":"boolean"}},"required":["format","withPassword"],"type":"object"},"de.mittwald.v1.backup.ProjectBackupPath":{"properties":{"absolutePath":{"type":"string"},"isDirectory":{"type":"boolean"},"isExecutable":{"type":"boolean"},"isFile":{"type":"boolean"},"isSymlink":{"type":"boolean"},"items":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.backup.ProjectBackupPath"},"type":"array"},"name":{"type":"string"},"size":{"format":"int64","type":"integer"},"target":{"type":"string"}},"required":["absolutePath","name","size"],"type":"object"},"de.mittwald.v1.backup.ProjectBackupRestoreDatabaseRequest":{"properties":{"databaseBackupDump":{"description":"Database backup dump from the backup to restore from.","example":"dbdump-mysql-123456","type":"string"},"targetDatabaseId":{"description":"ID of the target database to restore to.","format":"uuid","type":"string"}},"required":["databaseBackupDump","targetDatabaseId"],"type":"object"},"de.mittwald.v1.backup.ProjectBackupRestoreDatabase":{"properties":{"databaseBackupDump":{"type":"string"},"targetDatabaseId":{"format":"uuid","type":"string"}},"required":["databaseBackupDump","targetDatabaseId"],"type":"object"},"de.mittwald.v1.backup.ProjectBackupRestorePathDeprecated":{"properties":{"clearTargetPath":{"default":false,"type":"boolean"},"determinedTargetPath":{"type":"string"},"phase":{"$ref":"#/components/schemas/de.mittwald.v1.backup.ProjectBackupRestorePhase"},"sourcePath":{"type":"string"},"targetPath":{"type":"string"}},"required":["phase","sourcePath","determinedTargetPath","clearTargetPath"],"type":"object"},"de.mittwald.v1.backup.ProjectBackupRestorePathRequestDeprecated":{"properties":{"clearTargetPath":{"default":false,"description":"Whether to clear the target path before restoring. If true, existing files in the target path will be deleted before the restore. If false, existing files will be kept and may be overwritten if they exist in the backup.","type":"boolean"},"sourcePath":{"example":"/html/mainApp/config/","type":"string"},"targetPath":{"description":"Target path where the source path should be restored to. If not set, the target path will be determined to equal the origin source. The target path should always be a folder, no files allowed here.","example":"/html/mainApp","type":"string"}},"required":["sourcePath"],"type":"object"},"de.mittwald.v1.backup.ProjectBackupRestorePathRequest":{"properties":{"clearTargetPath":{"default":false,"description":"Whether to clear the target path before restoring. If true, existing files in the target path will be deleted before the restore. If false, existing files will be kept and may be overwritten if they exist in the backup.","type":"boolean"},"sourcePaths":{"example":["/html/mainApp/config/","/html/assets/"],"items":{"type":"string"},"type":"array"},"targetRestorePath":{"description":"Target path where the source paths should be restored to. If not set, the target path will be determined to equal the origin source. The target path should always be a folder, no files allowed here.","example":"/html/mainApp","type":"string"}},"required":["sourcePaths"],"type":"object"},"de.mittwald.v1.backup.ProjectBackupRestorePath":{"properties":{"clearTargetPath":{"default":false,"type":"boolean"},"determinedTargetPath":{"type":"string"},"sourcePaths":{"items":{"type":"string"},"type":"array"},"targetRestorePath":{"type":"string"}},"required":["sourcePaths","determinedTargetPath","clearTargetPath"],"type":"object"},"de.mittwald.v1.backup.ProjectBackupRestorePhase":{"enum":["running","completed"],"type":"string"},"de.mittwald.v1.backup.ProjectBackupRestoreRequest":{"properties":{"databaseRestores":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.backup.ProjectBackupRestoreDatabaseRequest"},"type":"array"},"pathRestore":{"$ref":"#/components/schemas/de.mittwald.v1.backup.ProjectBackupRestorePathRequest"}},"type":"object"},"de.mittwald.v1.backup.ProjectBackupRestore":{"properties":{"databaseRestores":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.backup.ProjectBackupRestoreDatabase"},"type":"array"},"pathRestore":{"$ref":"#/components/schemas/de.mittwald.v1.backup.ProjectBackupRestorePath"},"phase":{"$ref":"#/components/schemas/de.mittwald.v1.backup.ProjectBackupRestorePhase"}},"required":["phase"],"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.extension.ExtensionInstanceContract":{"description":"The Extension Instance Contract.","oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.extension.SubscriptionBasedContract"}]},"de.mittwald.v1.extension.PricePlan":{"description":"PricePlan with Variants.","properties":{"isDowngradeAllowed":{"description":"Indicates whether downgrading between variants is allowed.","type":"boolean"},"isUpgradeAllowed":{"description":"Indicates whether upgrading between variants is allowed.","type":"boolean"},"variants":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.extension.Variant"},"type":"array"}},"required":["variants"],"type":"object"},"de.mittwald.v1.extension.SubscriptionBasedContract":{"description":"A strategy for Contracts that will be paid periodically.","properties":{"contractPeriodEndDate":{"format":"date-time","type":"string"},"currentPrice":{"description":"monthly price in Euro Cent","example":999,"type":"integer"},"interactionDeadline":{"format":"date-time","type":"string"},"interactionRequired":{"type":"boolean"},"pendingVariantChange":{"properties":{"effectiveDate":{"format":"date-time","type":"string"},"targetVariantKey":{"type":"string"}},"required":["targetVariantKey","effectiveDate"],"type":"object"},"status":{"enum":["notStarted","pending","active","terminationPending"],"type":"string"},"terminationTargetDate":{"format":"date-time","type":"string"},"variantDescription":{"type":"string"},"variantKey":{"type":"string"},"variantName":{"type":"string"}},"required":["status","interactionRequired"],"type":"object"},"de.mittwald.v1.extension.Variant":{"properties":{"deletionDeadline":{"description":"deadline for scheduled deletion of extension variant","format":"date-time","type":"string"},"description":{"description":"Description of Variant.","type":"string"},"descriptionChangeType":{"description":"DescriptionChangeType defines how the description change should be handled. Values:\n - FEATURE_SET_MODIFIED: The users have to confirm to the new contract details equal as price changes.\n - FEATURE_SET_UNCHANGED: The changes are only wording updates and do not impact the contract details, so no confirm is required.\n","enum":["FEATURE_SET_MODIFIED","FEATURE_SET_UNCHANGED"],"type":"string"},"isBookingStopped":{"description":"stop extension variant from being booked","type":"boolean"},"isDeletionScheduled":{"description":"deletion of extension variant is scheduled","type":"boolean"},"key":{"description":"Key that needs to be unique in Variant.","type":"string"},"name":{"description":"Name of Variant.","type":"string"},"priceInCents":{"description":"Price in cents.","type":"number"}},"required":["key","priceInCents"],"type":"object"},"de.mittwald.v1.container.CreateRegistry":{"properties":{"credentials":{"$ref":"#/components/schemas/de.mittwald.v1.container.SetRegistryCredentials"},"description":{"example":"DockerHub","type":"string"},"uri":{"example":"index.docker.io","type":"string"}},"required":["uri","description"],"type":"object"},"de.mittwald.v1.container.ContainerImageConfig":{"properties":{"command":{"description":"Command of the container image.","items":{"example":"mysqld","type":"string"},"type":"array"},"digest":{"description":"The image digest.","example":"sha256:216aab5860821ba2eecad636722a6891e40a81791fbb61e2bd49bfc5aeeacdca","type":"string"},"entrypoint":{"description":"Entrypoint of the container image.","items":{"example":"docker-entrypoint.sh","type":"string"},"type":"array"},"env":{"description":"List of environment variables the container image has.","items":{"$ref":"#/components/schemas/de.mittwald.v1.container.ContainerImageConfigEnv"},"type":"array"},"exposedPorts":{"description":"List of exposed ports the container image has.","items":{"$ref":"#/components/schemas/de.mittwald.v1.container.ContainerImageConfigExposedPort"},"type":"array"},"hasAiGeneratedData":{"description":"Whether the image config has ai generated data.","example":true,"type":"boolean"},"isAiAvailable":{"description":"Whether ai generation is available for the image reference.","example":true,"type":"boolean"},"isUserRoot":{"description":"Whether the container user is root.","example":false,"type":"boolean"},"overwritingUser":{"deprecated":true,"description":"Deprecated, user will never be overwritten.","example":1000,"type":"integer"},"user":{"description":"The user the container image is running with.","example":"mysql","type":"string"},"userId":{"description":"The user id the container image is running with.","example":0,"type":"integer"},"volumes":{"description":"List of volumes the container image has.","items":{"$ref":"#/components/schemas/de.mittwald.v1.container.ContainerImageConfigVolume"},"type":"array"}},"required":["user","userId","isUserRoot","hasAiGeneratedData","isAiAvailable","digest"],"type":"object"},"de.mittwald.v1.container.ContainerImageConfigEnv":{"properties":{"description":{"description":"The description of the env key.","example":"The mysql user password.","type":"string"},"isAiGenerated":{"description":"Whether the env has been ai generated.","example":true,"type":"boolean"},"isSensitive":{"description":"Whether the env key is a sensitive field, e.g. password fields.","example":true,"type":"boolean"},"key":{"description":"The env key.","example":"MYSQL_PASSWORD","type":"string"},"value":{"description":"The env default value.","example":"my_password","type":"string"}},"required":["key","isAiGenerated"],"type":"object"},"de.mittwald.v1.container.ContainerImageConfigExposedPort":{"properties":{"description":{"description":"The description of the exposed port.","example":"The mysql connection port.","type":"string"},"isAiGenerated":{"description":"Whether the port has been ai generated.","example":true,"type":"boolean"},"port":{"description":"The exposed port.","example":"3306/tcp","type":"string"}},"required":["port","isAiGenerated"],"type":"object"},"de.mittwald.v1.container.ContainerImageConfigVolume":{"properties":{"description":{"description":"The description of the volume path.","example":"The mysql database files.","type":"string"},"isAiGenerated":{"description":"Whether the volume has been ai generated.","example":true,"type":"boolean"},"volume":{"description":"The volume path.","example":"/var/lib/mysql","type":"string"}},"required":["volume","isAiGenerated"],"type":"object"},"de.mittwald.v1.container.Registry":{"properties":{"credentials":{"$ref":"#/components/schemas/de.mittwald.v1.container.RegistryCredentials"},"description":{"example":"DockerHub","type":"string"},"id":{"format":"uuid","type":"string"},"projectId":{"format":"uuid","type":"string"},"uri":{"example":"index.docker.io","type":"string"}},"required":["id","projectId","uri","description"],"type":"object"},"de.mittwald.v1.container.RegistryCredentials":{"properties":{"username":{"description":"Your registry username.","example":"username","type":"string"},"valid":{"description":"Status of the credentials.","example":true,"type":"boolean"}},"required":["username","valid"],"type":"object"},"de.mittwald.v1.container.ServiceDeclareRequest":{"properties":{"command":{"description":"The container command (equivalent to the [Docker cmd](https://docs.docker.com/reference/dockerfile/#cmd)). When omitted, this defaults to the command defined in the image.\n","example":["mysqld"],"items":{"type":"string"},"type":"array"},"deploy":{"$ref":"#/components/schemas/de.mittwald.v1.container.Deploy"},"description":{"example":"MySQL DB","type":"string"},"entrypoint":{"description":"The container entrypoint (equivalent to the [Docker entrypoint](https://docs.docker.com/reference/dockerfile/#entrypoint)). When omitted, this defaults to the entrypoint defined in the image.\n","example":["docker-entrypoint.sh"],"items":{"type":"string"},"type":"array"},"environment":{"additionalProperties":{"type":"string"},"description":"Key-value map of environment variables that should be passed into the container.\n","example":{"MYSQL_DATABASE":"my_db","MYSQL_PASSWORD":"my_password","MYSQL_ROOT_PASSWORD":"my_root_password","MYSQL_USER":"my_user"},"type":"object"},"envs":{"additionalProperties":{"type":"string"},"deprecated":true,"description":"DEPRECATED: Use 'environment' instead. This field will be removed in a future version.","example":{"MYSQL_DATABASE":"my_db","MYSQL_PASSWORD":"my_password","MYSQL_ROOT_PASSWORD":"my_root_password","MYSQL_USER":"my_user"},"type":"object"},"image":{"description":"The image to run, in the usual format also used by `docker run` and `docker compose`. When\nthe image is pulled from a private registry, make sure to create the registry first\nusing the `container-create-registry` endpoint (you can push the image later, although\nthe container will remain in a pending state until the image is actually available).\n\nThe appropriate registry is matched by hostname.\n","example":"mysql:8.0","type":"string"},"ports":{"description":"Exposed ports. Follows the format `:/`. Exposed ports can be accessed from other containers (or managed apps) within the same project. To expose a port publicly, connect it with an ingress resource.\n","example":["3306/tcp"],"items":{"type":"string"},"type":"array"},"volumes":{"description":"Volume mounts for this container. These items always follow the format `:`. The `` may either be a named volume, or a file path in the (always present) project file system (which is shared among containers and managed apps within a project).\n","example":["data:/var/lib/mysql:ro","/home/p-XXXXX/html:/var/www"],"items":{"type":"string"},"type":"array"}},"required":["image"],"type":"object"},"de.mittwald.v1.container.Deploy":{"properties":{"resources":{"$ref":"#/components/schemas/de.mittwald.v1.container.Resources"}},"type":"object"},"de.mittwald.v1.container.ServiceRequest":{"properties":{"command":{"description":"The container command (equivalent to the [Docker cmd](https://docs.docker.com/reference/dockerfile/#cmd)). When omitted, this defaults to the command defined in the image.\n","example":["mysqld"],"items":{"type":"string"},"type":"array"},"deploy":{"$ref":"#/components/schemas/de.mittwald.v1.container.Deploy"},"description":{"example":"MySQL DB","type":"string"},"entrypoint":{"description":"The container entrypoint (equivalent to the [Docker entrypoint](https://docs.docker.com/reference/dockerfile/#entrypoint)). When omitted, this defaults to the entrypoint defined in the image.\n","example":["docker-entrypoint.sh"],"items":{"type":"string"},"type":"array"},"environment":{"additionalProperties":{"type":"string"},"description":"Key-value map of environment variables that should be passed into the container.\n","example":{"MYSQL_DATABASE":"my_db","MYSQL_PASSWORD":"my_password","MYSQL_ROOT_PASSWORD":"my_root_password","MYSQL_USER":"my_user"},"type":"object"},"envs":{"additionalProperties":{"type":"string"},"deprecated":true,"description":"Deprecated by 'environment'. This field will be removed in a future version.","example":{"MYSQL_DATABASE":"my_db","MYSQL_PASSWORD":"my_password","MYSQL_ROOT_PASSWORD":"my_root_password","MYSQL_USER":"my_user"},"type":"object"},"image":{"description":"The image to run, in the usual format also used by `docker run` and `docker compose`. When\nthe image is pulled from a private registry, make sure to create the registry first\nusing the `container-create-registry` endpoint (you can push the image later, although\nthe container will remain in a pending state until the image is actually available).\n\nThe appropriate registry is matched by hostname.\n","example":"mysql:8.0","type":"string"},"ports":{"description":"Exposed ports. Follows the format `:/`. Exposed ports can be accessed from other containers (or managed apps) within the same project. To expose a port publicly, connect it with an ingress resource.\n","example":["3306/tcp"],"items":{"type":"string"},"type":"array"},"volumes":{"description":"Volume mounts for this container. These items always follow the format `:`. The `` may either be a named volume, or a file path in the (always present) project file system (which is shared among containers and managed apps within a project).\n","example":["data:/var/lib/mysql:ro","/home/p-XXXXX/html:/var/www"],"items":{"type":"string"},"type":"array"}},"type":"object"},"de.mittwald.v1.container.ResourceSpec":{"properties":{"cpus":{"description":"CPU limit for the container. The value can be specified as a decimal number, where `1` corresponds to\none full CPU core. For example, `0.5` means that the container is limited to using half of a CPU core.\n","example":"0.5","type":"string"},"memory":{"description":"Memory limit for the container. The value can be specified in bytes or using a suffix to indicate\nthe unit.\n\nThe format matches the one [used by Docker Compose](https://docs.docker.com/reference/compose-file/extension/#specifying-byte-values):\n\n> Values express a byte value as a string in `{amount}{byte unit}` format: The supported units are\n`b` (bytes), `k` or `kb` (kilo bytes), `m` or `mb` (mega bytes) and `g` or `gb` (giga bytes).\n","example":"1gb","type":"string"}}},"de.mittwald.v1.container.Resources":{"properties":{"limits":{"$ref":"#/components/schemas/de.mittwald.v1.container.ResourceSpec"}},"type":"object"},"de.mittwald.v1.container.ServiceResponse":{"properties":{"deploy":{"$ref":"#/components/schemas/de.mittwald.v1.container.Deploy"},"deployedState":{"$ref":"#/components/schemas/de.mittwald.v1.container.ServiceState"},"description":{"example":"MySQL DB","type":"string"},"id":{"format":"uuid","type":"string"},"message":{"description":"Message explaining the current state of the container. This may contain information about the current state of the container, or errors that occurred during deployment.\n","example":"Container ready","type":"string"},"pendingState":{"$ref":"#/components/schemas/de.mittwald.v1.container.ServiceState"},"projectId":{"format":"uuid","type":"string"},"requiresRecreate":{"type":"boolean"},"serviceName":{"example":"mysql-db","type":"string"},"shortId":{"description":"A short ID of the container. This is a unique identifier for the container within the project, and can be used to reference it in other API calls, or for SSH connections.\n","example":"c-12e4u6","type":"string"},"stackId":{"format":"uuid","type":"string"},"status":{"$ref":"#/components/schemas/de.mittwald.v1.container.ServiceStatus"},"statusSetAt":{"format":"date-time","type":"string"}},"required":["id","stackId","projectId","description","serviceName","pendingState","deployedState","status","shortId","statusSetAt","requiresRecreate"],"type":"object"},"de.mittwald.v1.container.ServiceState":{"properties":{"command":{"description":"The container command (equivalent to the [Docker cmd](https://docs.docker.com/reference/dockerfile/#cmd)). When omitted, this defaults to the command defined in the image.\n","example":["mysqld"],"items":{"type":"string"},"type":"array"},"entrypoint":{"description":"The container entrypoint (equivalent to the [Docker entrypoint](https://docs.docker.com/reference/dockerfile/#entrypoint)). When omitted, this defaults to the entrypoint defined in the image.\n","example":["docker-entrypoint.sh"],"items":{"type":"string"},"type":"array"},"envs":{"additionalProperties":{"type":"string"},"description":"Key-value map of environment variables that should be passed into the container.\n","example":{"MYSQL_DATABASE":"my_db","MYSQL_PASSWORD":"my_password","MYSQL_ROOT_PASSWORD":"my_root_password","MYSQL_USER":"my_user"},"type":"object"},"image":{"description":"The image to run, in the usual format also used by `docker run` and `docker compose`. When\nthe image is pulled from a private registry, make sure to create the registry first\nusing the `container-create-registry` endpoint (you can push the image later, although\nthe container will remain in a pending state until the image is actually available).\n\nThe appropriate registry is matched by hostname.\n","example":"mysql:8.0","type":"string"},"imageDigest":{"description":"The digest of the image that is currently deployed.\n","type":"string"},"ports":{"description":"Exposed ports. Follows the format `:/`. Exposed ports can be accessed from other containers (or managed apps) within the same project. To expose a port publicly, connect it with an ingress resource.\n","example":["3306/tcp"],"items":{"type":"string"},"type":"array"},"volumes":{"description":"Volume mounts for this container. These items always follow the format `:`. The `` may either be a named volume, or a file path in the (always present) project file system (which is shared among containers and managed apps within a project).\n","example":["data:/var/lib/mysql:ro","/home/p-XXXXX/html:/var/www"],"items":{"type":"string"},"type":"array"}},"required":["image"],"type":"object"},"de.mittwald.v1.container.ServiceStatus":{"enum":["running","stopped","restarting","error","creating","starting"],"type":"string"},"de.mittwald.v1.container.SetRegistryCredentials":{"properties":{"password":{"description":"Your registry password or access token.","example":"password","type":"string"},"username":{"description":"Your registry username, use 'oauth2accesstoken' for access token authentication.","example":"username","type":"string"}},"required":["username","password"],"type":"object"},"de.mittwald.v1.container.ServiceSortOrder":{"enum":["descriptionAsc","descriptionDesc"],"type":"string"},"de.mittwald.v1.container.StackResponse":{"properties":{"description":{"type":"string"},"disabled":{"type":"boolean"},"id":{"format":"uuid","type":"string"},"prefix":{"description":"Prefix for all service-names in this stack.","type":"string"},"projectId":{"format":"uuid","type":"string"},"services":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.container.ServiceResponse"},"type":"array"},"updateSchedule":{"nullable":true,"properties":{"cron":{"type":"string"},"timezone":{"type":"string"}},"required":["cron"],"type":"object"},"volumes":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.container.VolumeResponse"},"type":"array"}},"required":["id","projectId","description","disabled","prefix"],"type":"object"},"de.mittwald.v1.container.UpdateRegistry":{"properties":{"credentials":{"allOf":[{"$ref":"#/components/schemas/de.mittwald.v1.container.SetRegistryCredentials"}],"nullable":true},"description":{"example":"DockerHub","type":"string"},"uri":{"example":"index.docker.io","type":"string"}},"type":"object"},"de.mittwald.v1.container.VolumeDeclareRequest":{"properties":{"name":{"example":"mysql-volume","type":"string"}},"required":["name"],"type":"object"},"de.mittwald.v1.container.VolumeRequest":{"properties":{"name":{"example":"mysql-volume","type":"string"}},"type":"object"},"de.mittwald.v1.container.VolumeResponse":{"properties":{"id":{"format":"uuid","type":"string"},"linkedServices":{"items":{"format":"uuid","type":"string"},"type":"array"},"name":{"type":"string"},"orphaned":{"description":"Whether the Volume is attached to a Stack.","type":"boolean"},"stackId":{"format":"uuid","type":"string"},"storageUsageInBytes":{"format":"int64","type":"integer"},"storageUsageInBytesSetAt":{"format":"date-time","type":"string"}},"required":["id","stackId","name","orphaned","storageUsageInBytes","storageUsageInBytesSetAt"],"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":{"cancellationForbidden":{"description":"Indicates whether the User is allowed to cancel the Termination.","type":"boolean"},"explanation":{"example":"Not needed anymore","type":"string"},"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","extensionInstance"],"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"},"lastMessage":{"properties":{"createdAt":{"format":"date-time","type":"string"},"createdBy":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.User"}},"required":["createdAt"],"type":"object"},"lastMessageAt":{"format":"date-time","type":"string"},"lastMessageBy":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.User"},"mainUser":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.User"},"notificationRoles":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.NotificationRole"},"type":"array"},"relatedTo":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.RelatedAggregateReference"},"relations":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.AggregateReference"},"type":"array"},"sharedWith":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.ShareableAggregateReference"},"shortId":{"type":"string"},"status":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.Status"},"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","accounting","cloudHosting","customerService","productManagement","generic"],"type":"string"},"de.mittwald.v1.conversation.Error":{"properties":{"message":{"type":"string"},"type":{"type":"string"}},"required":["type","message"],"type":"object"},"de.mittwald.v1.conversation.DeletedFile":{"properties":{"deletionDate":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"status":{"enum":["deleted"],"type":"string"},"type":{"type":"string"}},"required":["id","status","name","type","deletionDate"],"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"},{"$ref":"#/components/schemas/de.mittwald.v1.conversation.DeletedFile"}]},"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.Group":{"properties":{"acronym":{"type":"string"},"id":{"type":"string"},"isDefaultGroup":{"type":"boolean"},"name":{"type":"string"}},"required":["id","name"],"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.NotificationRole":{"enum":["customer_owner","customer_accountant","customer_member","project_owner","project_emailadmin","project_external"],"type":"string"},"de.mittwald.v1.conversation.RelatedAggregateReference":{"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":["appinstallation"],"type":"string"},"domain":{"enum":["app"],"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"},{"properties":{"aggregate":{"enum":["extensionInstance"],"type":"string"},"domain":{"enum":["extension"],"type":"string"},"id":{"type":"string"}},"required":["id","aggregate","domain"],"type":"object"},{"properties":{"aggregate":{"enum":["container"],"type":"string"},"domain":{"enum":["container"],"type":"string"},"id":{"type":"string"}},"required":["id","aggregate","domain"],"type":"object"}]},"de.mittwald.v1.conversation.ServiceRequestRelocationPayload":{"properties":{"contact":{"properties":{"email":{"type":"string"},"firstname":{"type":"string"},"lastname":{"type":"string"},"phone":{"type":"string"}},"required":["firstname","lastname","email"],"type":"object"},"domain":{"properties":{"allDomains":{"type":"boolean"},"domains":{"items":{"properties":{"authCode":{"type":"string"},"domainName":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"notes":{"type":"string"},"preferredRelocationDate":{"format":"date-time","type":"string"},"redirectusKey":{"type":"number"},"source":{"properties":{"providerName":{"type":"string"},"providerPassword":{"type":"string"},"providerUrl":{"type":"string"},"providerUsername":{"type":"string"},"sourceAccount":{"type":"string"}},"required":["sourceAccount","providerName","providerUrl","providerUsername","providerPassword"],"type":"object"},"target":{"properties":{"accountShortId":{"type":"string"},"application":{"type":"string"},"articleType":{"type":"string"},"organisation":{"type":"string"},"prices":{"items":{"properties":{"name":{"type":"string"},"price":{"type":"number"}},"type":"object"},"type":"array"},"product":{"type":"string"},"withDataCompare":{"type":"boolean"}},"required":["organisation","accountShortId","product","articleType"],"type":"object"},"userId":{"format":"uuid","type":"string"}},"required":["redirectusKey","source","target","contact","userId"],"type":"object"},"de.mittwald.v1.conversation.ServiceRequest":{"properties":{"conversationId":{"format":"uuid","type":"string"},"createdAt":{"format":"date-time","type":"string"},"files":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.File"},"maxItems":0,"type":"array"},"messageContent":{"enum":["relocation","call"],"type":"string"},"messageId":{"format":"uuid","type":"string"},"meta":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.conversation.ServiceRequestRelocationPayload"}]},"type":{"enum":["SERVICE_REQUEST"],"type":"string"}},"required":["conversationId","messageId","messageContent","createdAt","type","meta"],"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.Status":{"enum":["open","closed","answered","inProgress","waiting"],"type":"string"},"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"},"atlasGroup":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.Group"},"avatarRefId":{"type":"string"},"clearName":{"type":"string"},"department":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.Department"},"group":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.Group"},"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.ConcurrencyPolicy":{"enum":["allow","forbid","replace"],"type":"string"},"de.mittwald.v1.cronjob.Cronjob":{"properties":{"active":{"type":"boolean"},"appId":{"deprecated":true,"description":"DEPRECATED: Use 'appInstallationId' instead. This field will be removed in a future version.","format":"uuid","type":"string"},"appInstallationId":{"format":"uuid","type":"string"},"concurrencyPolicy":{"$ref":"#/components/schemas/de.mittwald.v1.cronjob.ConcurrencyPolicy"},"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"},"failedExecutionAlertThreshold":{"minimum":1,"type":"integer"},"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"},"timeZone":{"type":"string"},"timeout":{"maximum":86400,"minimum":1,"type":"integer"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","appId","shortId","interval","active","createdAt","updatedAt","description","destination","timeout","failedExecutionAlertThreshold"],"type":"object"},"de.mittwald.v1.cronjob.CronjobExecution":{"properties":{"abortedBy":{"properties":{"id":{"format":"uuid","type":"string"}},"type":"object"},"cronjobId":{"type":"string"},"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"},"exitCode":{"example":0,"format":"int32","type":"integer"},"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","cronjobId"],"type":"object"},"de.mittwald.v1.cronjob.CronjobExecutionAnalysis":{"properties":{"message":{"example":"Überprüfe die URL im Cronjob-Konfigurationsformular und korrigiere sie gegebenenfalls. Stelle sicher, dass die Domain gültig ist und DNS-Einträge korrekt konfiguriert wurden. Falls die URL falsch ist, aktualisiere sie mit der richtigen Adresse.","type":"string"}},"required":["message"],"type":"object"},"de.mittwald.v1.cronjob.CronjobExecutionSortOrder":{"enum":["oldestFirst","newestFirst","slowestFirst","fastestFirst"],"type":"string"},"de.mittwald.v1.cronjob.CronjobRequest":{"properties":{"active":{"type":"boolean"},"appId":{"deprecated":true,"description":"DEPRECATED: Use 'appInstallationId' instead. This field will be removed in a future version.","format":"uuid","type":"string"},"appInstallationId":{"format":"uuid","type":"string"},"concurrencyPolicy":{"$ref":"#/components/schemas/de.mittwald.v1.cronjob.ConcurrencyPolicy"},"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"},"failedExecutionAlertThreshold":{"minimum":1,"type":"integer"},"interval":{"example":"*/5 * * * *","type":"string"},"timeZone":{"example":"Europe/Berlin","type":"string"},"timeout":{"maximum":86400,"minimum":1,"type":"integer"}},"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.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.CustomerFlag":{"enum":["agency","employee"],"type":"string"},"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"},"deletionProhibitedBy":{"items":{"enum":["hasOpenInvoices","hasActiveContracts","hasActiveExtensionSubscriptions","isActiveContributor"],"type":"string"},"type":"array"},"executingUserRoles":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.customer.Role"},"type":"array"},"flags":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.customer.CustomerFlag"},"type":"array"},"isAllowedToPlaceOrders":{"type":"boolean"},"isBanned":{"type":"boolean"},"isInDefaultOfPayment":{"type":"boolean"},"isMailAddressInvalid":{"type":"boolean"},"levelOfUndeliverableDunningNotice":{"enum":["first","second"],"type":"string"},"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":{"description":"A description of the MySQLDatabase. This is for your own reference and has no effect on the database itself.\n","type":"string"},"version":{"description":"The MySQL version to use for this database, in `.` format. Use the `GET /v2/mysql-versions` endpoint to query available versions.\n","example":"8.4","type":"string"}},"required":["version","description"],"type":"object"},"de.mittwald.v1.database.CreateMySqlUser":{"properties":{"accessIpMask":{"description":"An IP range (in CIDR notation) for which access should be allowed.","example":"203.0.113.123/32","type":"string"},"accessLevel":{"description":"The access level that this MySQLUser should have for the database. The `full` access level grants the user read/write privileges on the database.\n","enum":["full","readonly"],"type":"string"},"databaseId":{"format":"uuid","type":"string"},"description":{"type":"string"},"externalAccess":{"description":"Describes if users should be able to connection to this database from external\nsources. Defaults to `false` when not set.\n\nTo find out how to connect to your database from external sources, refer to the `externalHostname` field of the `GET /v2/mysql-databases/{id}` endpoint.\n","type":"boolean"},"password":{"type":"string"}},"required":["databaseId","password","description","accessLevel"],"type":"object"},"de.mittwald.v1.database.CreateMySqlUserWithDatabase":{"properties":{"accessIpMask":{"type":"string"},"accessLevel":{"description":"The access level that this MySQLUser should have for the database. The `full` access level grants the user read/write privileges on the database.\n\nFor MySQLUsers that are created in the same step as the database itself, `full` is the only available option.\n","enum":["full"],"type":"string"},"externalAccess":{"description":"Describes if users should be able to connection to this database from external\nsources. Defaults to `false` when not set.\n\nTo find out how to connect to your database from external sources, refer to the `externalHostname` field of the `GET /v2/mysql-databases/{id}` endpoint.\n","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.DatabaseUserStatus":{"enum":["pending","ready","error","terminating","disabled"],"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":{"description":"A valid MySQL character set. Refer to https://dev.mysql.com/doc/refman/8.4/en/charset-mysql.html for more information and available character sets.\n","example":"utf8mb4","type":"string"},"collation":{"description":"A valid MySQL collation. Refer to https://dev.mysql.com/doc/refman/8.4/en/charset-mysql.html for more information and available collations.\n","example":"utf8mb4_general_ci","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":{"description":"A description of the MySQLDatabase. This is for your own reference and has no effect on the database itself.\n","type":"string"},"externalHostname":{"description":"The hostname that you can use to connect to this MySQLDatabase from external sources, like your local machine or services running outside the mittwald cloud platform.\n\nNote that you still need a database user with `externalAccess` enabled to connect via this hostname.\n","example":"mysql.example-cluster.project.host","type":"string"},"finalizers":{"items":{"minLength":1,"type":"string"},"type":"array","uniqueItems":true},"hostname":{"description":"The hostname that you can use to connect to this MySQLDatabase from _within_ the hosting environment.\n","example":"mysql-XXXXXX.pg-YYYYYY.db.project.host","type":"string"},"id":{"format":"uuid","type":"string"},"isReady":{"type":"boolean"},"isShared":{"type":"boolean"},"mainUser":{"$ref":"#/components/schemas/de.mittwald.v1.database.MySqlUser"},"name":{"description":"The name of the MySQLDatabase. This is also the name of the database that you can use when connecting to it. It is automatically generated and cannot be changed.\n","type":"string"},"projectId":{"format":"uuid","type":"string"},"status":{"$ref":"#/components/schemas/de.mittwald.v1.database.DatabaseStatus"},"statusSetAt":{"format":"date-time","type":"string"},"storageUsageInBytes":{"format":"int64","type":"integer"},"storageUsageInBytesSetAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"version":{"description":"The MySQL version that this database is running, in `.` format. Use the `GET /v2/mysql-versions` endpoint to query available versions.\n","example":"8.4","type":"string"}},"required":["id","createdAt","updatedAt","projectId","name","description","version","characterSettings","hostname","isShared","isReady","storageUsageInBytes","storageUsageInBytesSetAt","status","statusSetAt","externalHostname"],"type":"object"},"de.mittwald.v1.database.PhpMyAdminURL":{"properties":{"url":{"type":"string"}},"required":["url"],"type":"object"},"de.mittwald.v1.database.MySqlUser":{"properties":{"accessIpMask":{"description":"An IP range (in CIDR notation) for which access should be allowed.","example":"203.0.113.123/32","type":"string"},"accessLevel":{"description":"The access level that this MySQLUser should have for the database. The `full` access level grants\nthe user read/write privileges on the database.\n","enum":["full","readonly"],"type":"string"},"createdAt":{"format":"date-time","type":"string"},"databaseId":{"format":"uuid","type":"string"},"description":{"type":"string"},"disabled":{"type":"boolean"},"externalAccess":{"description":"Describes if users should be able to connection to this database from external sources.\nDefaults to `false` when not set.\n\nTo find out how to connect to your database from external sources, refer to the `externalHostname`\nfield of the `GET /v2/mysql-databases/{id}` endpoint.\n","type":"boolean"},"id":{"format":"uuid","type":"string"},"mainUser":{"description":"Indicates whether this MySQL user is the main user of the database. The main user is created by\ndefault when a new MySQL database is provisioned. It can neither be deleted nor disabled,\nbut its password can be updated.\n","type":"boolean"},"name":{"description":"The name of the MySQL user. This can be used as the username when connecting to the database.\n","example":"dbu_XXXXXX","type":"string"},"passwordUpdatedAt":{"format":"date-time","type":"string"},"status":{"$ref":"#/components/schemas/de.mittwald.v1.database.DatabaseUserStatus"},"statusSetAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","createdAt","updatedAt","databaseId","name","passwordUpdatedAt","mainUser","disabled","accessLevel","externalAccess","status","statusSetAt"],"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-05T09:26:32.000Z","storageUsageInBytes":10485760,"storageUsageInBytesSetAt":"2024-03-05T09: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":{"format":"int64","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.RecordCAA":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordUnset"},{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordCAAComponent"}]},"de.mittwald.v1.dns.RecordCAAComponent":{"additionalProperties":false,"properties":{"records":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordCAARecord"},"minItems":1,"type":"array"},"settings":{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordSettings"}},"required":["records","settings"],"type":"object"},"de.mittwald.v1.dns.RecordCAARecord":{"additionalProperties":false,"properties":{"flags":{"maximum":255,"minimum":0,"type":"integer"},"tag":{"enum":["issue","issuewild","iodef"],"type":"string"},"value":{"format":"idn-dnsname","type":"string"}},"required":["flags","tag","value"],"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","maxLength":255,"minLength":1,"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":255,"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":255,"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":60,"type":"integer"}},"required":["seconds"],"type":"object"},"de.mittwald.v1.dns.Zone":{"properties":{"domain":{"type":"string"},"id":{"format":"uuid","type":"string"},"recordSet":{"properties":{"caa":{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordCAA"},"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","caa"],"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"},"contactHash":{"type":"string"},"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"},"scheduledDeletionDate":{"format":"date-time","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.SuggestedDomains":{"properties":{"domains":{"items":{"type":"string"},"type":"array"}},"required":["domains"],"type":"object"},"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.AggregateReference":{"properties":{"aggregate":{"enum":["project","customer"],"type":"string"},"domain":{"enum":["project","customer"],"type":"string"},"id":{"type":"string"}},"required":["id","domain","aggregate"],"type":"object"},"de.mittwald.v1.marketplace.AggregateReferenceFilter":{"properties":{"aggregate":{"enum":["project","customer"],"type":"string"},"domain":{"enum":["project","customer"],"type":"string"},"id":{"type":"string"}},"type":"object"},"de.mittwald.v1.marketplace.ContractOwner":{"properties":{"contact":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Contact"},"inherited":{"type":"boolean"}},"required":["contact","inherited"],"type":"object"},"de.mittwald.v1.marketplace.Contributor":{"properties":{"customerId":{"format":"uuid","type":"string"},"description":{"type":"string"},"descriptions":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.LocalizedDescription"},"email":{"deprecated":true,"type":"string"},"homepage":{"format":"uri","type":"string"},"id":{"format":"uuid","type":"string"},"imprint":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ContributorImprint"},"logoRefId":{"format":"uuid","type":"string"},"name":{"type":"string"},"phone":{"deprecated":true,"type":"string"},"state":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ContributorState"},"supportInformation":{"allOf":[{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.SupportMeta"},{"properties":{"inherited":{"description":"Whether the support information is inherited from the customer.","type":"boolean"}},"required":["inherited"],"type":"object"}]},"url":{"deprecated":true,"type":"string"}},"required":["id","customerId","state","name","supportInformation","email"],"type":"object"},"de.mittwald.v1.marketplace.ContributorImprint":{"oneOf":[{"properties":{"text":{"minLength":1,"type":"string"}},"required":["text"],"type":"object"},{"properties":{"url":{"format":"uri","minLength":1,"type":"string"}},"required":["url"],"type":"object"}]},"de.mittwald.v1.marketplace.ContributorState":{"deprecated":true,"enum":["enabled","disabled"],"type":"string"},"de.mittwald.v1.marketplace.Extension":{"properties":{"assets":{"description":"The assets/media (images and videos) of the extension.","items":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ExtensionAsset"},"maxItems":4,"type":"array"},"blocked":{"deprecated":true,"type":"boolean"},"context":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.Context"},"contributorId":{"format":"uuid","type":"string"},"createdAt":{"format":"date-time","type":"string"},"deprecation":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ExtensionDeprecation"},"description":{"description":"A short description of the capabilites of the Extension.","type":"string"},"detailedDescriptions":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.DetailedDescriptions"},"disabled":{"deprecated":true,"type":"boolean"},"externalFrontends":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ExternalComponent"},"type":"array"},"frontendComponents":{"deprecated":true,"items":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ExternalComponent"},"type":"array"},"frontendFragments":{"additionalProperties":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.FrontendFragment"},"type":"object"},"id":{"format":"uuid","type":"string"},"logoRefId":{"description":"This is the FileId of the Logo. Retrieve the file with this id on `/v2/files/{logoRefId}`.","format":"uuid","type":"string"},"name":{"example":"MyPingExtension","type":"string"},"pricing":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.MonthlyPricePlanStrategy"}]},"pricingDetails":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.PricePlanDetails"},"published":{"description":"Whether the extension has been published by the contributor.","enum":[true],"type":"boolean"},"scopes":{"items":{"type":"string"},"type":"array"},"state":{"deprecated":true,"description":"deprecated","enum":["enabled","blocked","disabled"],"type":"string"},"statistics":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ExtensionStatistics"},"subTitle":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.SubTitle"},"support":{"allOf":[{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.SupportMeta"},{"properties":{"inherited":{"description":"Whether the support information is inherited from the contributor.","type":"boolean"}},"required":["inherited"],"type":"object"}]},"tags":{"items":{"type":"string"},"minItems":0,"type":"array"}},"required":["id","contributorId","state","published","name","subTitle","description","tags","context","scopes","disabled","blocked","assets","statistics","support","logoRefId","createdAt"],"type":"object"},"de.mittwald.v1.marketplace.ExtensionAsset":{"description":"The following assets are the media that are associated with the extension and will be shown in extension details page.","properties":{"assetType":{"enum":["image","video"],"example":"image","type":"string"},"fileName":{"deprecated":true,"example":"myFile.png","type":"string"},"id":{"description":"The asset ID and reference ID to its file. Retrieve the file with this id on `/v2/files/{id}","format":"uuid","type":"string"},"index":{"description":"The index of the asset. Does not have to be successive. Can be used to order the assets.","example":1,"type":"integer"}},"required":["id","index","assetType"],"type":"object"},"de.mittwald.v1.marketplace.BackendComponent":{"deprecated":true,"properties":{"url":{"minLength":1,"type":"string"}},"required":["url"],"type":"object"},"de.mittwald.v1.marketplace.BackendComponents":{"deprecated":true,"properties":{"extensionAddedToContext":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.BackendComponent"},"extensionInstanceRemovedFromContext":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.BackendComponent"},"extensionInstanceSecretRotated":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.BackendComponent"},"extensionInstanceUpdated":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.BackendComponent"}},"type":"object"},"de.mittwald.v1.marketplace.Context":{"enum":["project","customer"],"type":"string"},"de.mittwald.v1.marketplace.ExtensionDeprecation":{"description":"The Extension is deprecated by the contributor and will expire at the given date.","properties":{"deprecatedAt":{"format":"date-time","type":"string"},"note":{"example":"This extension is no longer actively maintained. Please Use the successor extension instead.","type":"string"},"successorId":{"description":"The ID of the successor extension.","format":"uuid","type":"string"}},"required":["deprecatedAt"],"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":"A detailed description of the capabilities of the extension.","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.ExtensionHealth":{"properties":{"extensionInstances":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ExtensionInstanceHealth"},"type":"array"},"functional":{"default":false,"type":"boolean"},"id":{"format":"uuid","type":"string"},"inoperableReason":{"example":"9 of 10 webhooks in the last hour were unsuccessful.","type":"string"},"published":{"default":false,"type":"boolean"},"withdrawalReason":{"type":"string"}},"required":["id","functional","published","extensionInstances"],"type":"object"},"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"},"chargeability":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ExtensionInstanceChargeability"},"consentedScopes":{"items":{"type":"string"},"type":"array"},"contributorId":{"type":"string"},"contributorName":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"disabled":{"default":false,"type":"boolean"},"extensionId":{"format":"uuid","type":"string"},"extensionName":{"type":"string"},"extensionSubTitle":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.SubTitle"},"frontendFragments":{"additionalProperties":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.FrontendFragment"},"type":"object"},"id":{"format":"uuid","type":"string"},"pendingInstallation":{"default":false,"type":"boolean"},"pendingRemoval":{"default":false,"type":"boolean"},"variantKey":{"example":"default","type":"string"}},"required":["id","extensionId","contributorId","disabled","pendingInstallation","pendingRemoval","consentedScopes","aggregateReference","extensionName","contributorName","chargeability"],"type":"object"},"de.mittwald.v1.marketplace.ExtensionInstanceChargeability":{"properties":{"isChargeable":{"default":false,"type":"boolean"},"reasons":{"properties":{"isNonChargeableCustomer":{"type":"boolean"},"isOwnExtension":{"type":"boolean"}},"required":["isOwnExtension","isNonChargeableCustomer"],"type":"object"}},"required":["isChargeable","reasons"],"type":"object"},"de.mittwald.v1.marketplace.ExtensionInstanceHealth":{"properties":{"aggregateReference":{"properties":{"aggregate":{"type":"string"},"domain":{"type":"string"},"id":{"format":"uuid","type":"string"}},"required":["id","domain","aggregate"],"type":"object"},"id":{"format":"uuid","type":"string"},"instantiationIsPending":{"default":false,"type":"boolean"},"pendingWebhooksCount":{"default":0,"minimum":0,"type":"integer"},"removalIsPending":{"default":false,"type":"boolean"},"webhooksAreHalted":{"default":false,"type":"boolean"}},"required":["id","aggregateReference","webhooksAreHalted","instantiationIsPending","removalIsPending","pendingWebhooksCount"],"type":"object"},"de.mittwald.v1.marketplace.ExtensionSecret":{"properties":{"secretId":{"format":"uuid","type":"string"},"usableUntil":{"format":"date-time","type":"string"}},"required":["secretId"],"type":"object"},"de.mittwald.v1.marketplace.ExtensionStatistics":{"properties":{"amountOfInstances":{"description":"The amout of instances for this extension. Accurate for the Contributor. Publicly rounded to the next lower hundred.","example":42,"minimum":0,"type":"integer"}},"type":"object"},"de.mittwald.v1.marketplace.WebhookUrl":{"properties":{"url":{"minLength":1,"type":"string"}},"required":["url"],"type":"object"},"de.mittwald.v1.marketplace.WebhookUrls":{"properties":{"extensionAddedToContext":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.WebhookUrl"},"extensionInstanceRemovedFromContext":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.WebhookUrl"},"extensionInstanceSecretRotated":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.WebhookUrl"},"extensionInstanceUpdated":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.WebhookUrl"}},"required":["extensionAddedToContext","extensionInstanceUpdated","extensionInstanceSecretRotated","extensionInstanceRemovedFromContext"],"type":"object"},"de.mittwald.v1.marketplace.ExternalComponent":{"properties":{"name":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"type":"object"},"de.mittwald.v1.marketplace.FrontendFragment":{"allOf":[{"properties":{"additionalProperties":{"additionalProperties":{"type":"string"},"type":"object"}},"type":"object"},{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.UrlFrontendFragment"}]}]},"de.mittwald.v1.marketplace.LocalizedDescription":{"description":"A few words about the introduction as a contributor","properties":{"de":{"example":"Ich bin ein Contributor","type":"string"},"en":{"example":"I am a contributor","type":"string"}},"required":["de"],"type":"object"},"de.mittwald.v1.marketplace.OwnContributor":{"properties":{"contactPersonUserId":{"format":"uuid","type":"string"},"contractOwner":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ContractOwner"},"contributorNumber":{"type":"string"},"customerId":{"type":"string"},"description":{"type":"string"},"descriptions":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.LocalizedDescription"},"email":{"deprecated":true,"format":"email","type":"string"},"homepage":{"format":"uri","type":"string"},"id":{"type":"string"},"imprint":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ContributorImprint"},"logoInherited":{"type":"boolean"},"logoRefId":{"format":"uuid","type":"string"},"name":{"type":"string"},"nameInherited":{"type":"boolean"},"phone":{"deprecated":true,"type":"string"},"state":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ContributorState"},"supportInformation":{"allOf":[{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.SupportMeta"},{"properties":{"inherited":{"description":"Whether the support information is inherited from the customer.","type":"boolean"}},"required":["inherited"],"type":"object"}]},"url":{"deprecated":true,"type":"string"},"verificationRequested":{"type":"boolean"},"verified":{"type":"boolean"}},"required":["id","customerId","state","verified","verificationRequested","name","nameInherited","supportInformation","email","contactPersonUserId","contractOwner","contributorNumber"],"type":"object"},"de.mittwald.v1.marketplace.OwnExtension":{"properties":{"assets":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ExtensionAsset"},"type":"array"},"backendComponents":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.BackendComponents"},"blocked":{"deprecated":true,"type":"boolean"},"context":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.Context"},"contributorId":{"type":"string"},"deprecation":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ExtensionDeprecation"},"description":{"type":"string"},"detailedDescriptions":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.DetailedDescriptions"},"disabled":{"deprecated":true,"type":"boolean"},"externalFrontends":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ExternalComponent"},"type":"array"},"frontendComponents":{"deprecated":true,"items":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ExternalComponent"},"type":"array"},"frontendFragments":{"additionalProperties":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.FrontendFragment"},"type":"object"},"functional":{"type":"boolean"},"id":{"format":"uuid","type":"string"},"logoRefId":{"description":"This is the FileId of the Logo. Retrieve the file with this id on `/v2/files/{logoRefId}`.","format":"uuid","type":"string"},"name":{"type":"string"},"pricing":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.MonthlyPricePlanStrategy"}]},"pricingDetails":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.PricePlanDetails"},"published":{"type":"boolean"},"requestedChanges":{"additionalProperties":false,"properties":{"context":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.Context"},"scopes":{"items":{"type":"string"},"type":"array"},"webhookUrls":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.WebhookUrls"},{"additionalProperties":false,"properties":{},"type":"object"}]}},"type":"object"},"scopes":{"items":{"type":"string"},"type":"array"},"secrets":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ExtensionSecret"},"type":"array"},"state":{"deprecated":true,"description":"deprecated","enum":["enabled","blocked","disabled"],"type":"string"},"statistics":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ExtensionStatistics"},"subTitle":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.SubTitle"},"support":{"allOf":[{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.SupportMeta"},{"properties":{"inherited":{"description":"Whether the support information is inherited from the contributor.","type":"boolean"}},"required":["inherited"],"type":"object"}]},"tags":{"items":{"type":"string"},"minItems":0,"type":"array"},"verificationRequested":{"type":"boolean"},"verified":{"type":"boolean"},"webhookUrls":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.WebhookUrls"}},"required":["id","contributorId","name","statistics","assets","published","verified","verificationRequested","functional","secrets"],"type":"object"},"de.mittwald.v1.marketplace.PricePlanDetails":{"description":"The details section of the price plan. It informs if choosing different variants as a upgrade or downgrade is possible.","properties":{"isDowngradeAllowed":{"type":"boolean"},"isUpgradeAllowed":{"type":"boolean"}},"required":["isUpgradeAllowed","isDowngradeAllowed"],"type":"object"},"de.mittwald.v1.marketplace.MonthlyPricePlanStrategy":{"description":"A price plan with (multiple) variants, including different prices for different included service descriptions","items":{"properties":{"deletionDeadline":{"format":"date-time","type":"string"},"description":{"type":"string"},"isBookingStopped":{"description":"If a variant is no longer bookable the existing extension instances will not be removed but no new ones can be created.","type":"boolean"},"isDeletionScheduled":{"type":"boolean"},"key":{"type":"string"},"name":{"type":"string"},"priceInCents":{"description":"The monthly price in Euro Cents before tax.","type":"integer"}},"required":["key","priceInCents","isBookingStopped","isDeletionScheduled"],"type":"object"},"type":"array"},"de.mittwald.v1.marketplace.PublicKey":{"properties":{"algorithm":{"example":"Ed25519","type":"string"},"key":{"anyOf":[{"description":"raw base64 public key","format":"byte","type":"string"},{"description":"SPKI, ASN.1 DER serialized, PEM encoded public key","type":"string"}]},"serial":{"format":"uuid","type":"string"}},"required":["serial","algorithm","key"],"type":"object"},"de.mittwald.v1.marketplace.SubTitle":{"description":"A few words to promote your Extension.","properties":{"de":{"example":"Ping deine App an","maxLength":40,"type":"string"},"en":{"example":"Ping your app","maxLength":40,"type":"string"}},"required":["de"],"type":"object"},"de.mittwald.v1.marketplace.SupportMeta":{"properties":{"email":{"example":"a.lovelace@example.com","format":"email","type":"string"},"phone":{"type":"string"}},"required":["email"],"type":"object"},"de.mittwald.v1.marketplace.UnpublishedExtension":{"properties":{"assets":{"description":"The assets/media (images and videos) of the extension.","items":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ExtensionAsset"},"maxItems":4,"type":"array"},"blocked":{"deprecated":true,"type":"boolean"},"context":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.Context"},"contributorId":{"format":"uuid","type":"string"},"deprecation":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ExtensionDeprecation"},"description":{"description":"A short description of the capabilites of the Extension.","type":"string"},"detailedDescriptions":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.DetailedDescriptions"},"disabled":{"type":"boolean"},"externalFrontends":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ExternalComponent"},"type":"array"},"frontendComponents":{"deprecated":true,"items":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ExternalComponent"},"type":"array"},"frontendFragments":{"additionalProperties":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.FrontendFragment"},"type":"object"},"id":{"format":"uuid","type":"string"},"logoRefId":{"description":"This is the FileId of the Logo. Retrieve the file with this id on `/v2/files/{logoRefId}`.","format":"uuid","type":"string"},"name":{"example":"MyPingExtension","type":"string"},"pricing":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.MonthlyPricePlanStrategy"}]},"pricingDetails":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.PricePlanDetails"},"published":{"description":"Whether the extension has been published by the contributor.","enum":[false],"type":"boolean"},"scopes":{"items":{"type":"string"},"type":"array"},"state":{"deprecated":true,"description":"deprecated","enum":["enabled","blocked","disabled"],"type":"string"},"statistics":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ExtensionStatistics"},"subTitle":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.SubTitle"},"support":{"allOf":[{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.SupportMeta"},{"properties":{"inherited":{"description":"Whether the support information is inherited from the contributor.","type":"boolean"}},"required":["inherited"],"type":"object"}]},"tags":{"items":{"type":"string"},"type":"array"}},"required":["id","contributorId","state","name","tags","context","scopes","disabled","blocked","assets","statistics"],"type":"object"},"de.mittwald.v1.marketplace.UrlFrontendFragment":{"properties":{"url":{"type":"string"}},"required":["url"],"type":"object"},"de.mittwald.v1.marketplace.WebhookKind":{"enum":["extension-added-to-context","extension-instance-updated","extension-instance-secret-rotated","extension-instance-removed-from-context"],"type":"string"},"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":{"deprecated":true,"description":"deprecated, see friendlyUrl","example":"3fa85f64-5717-4562-b3fc-2c963f66afa6/me.jpeg","type":"string"},"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,"format":"int64","type":"integer"},"type":{"deprecated":true,"description":"deprecated, see mimeType","example":"image/jpeg","type":"string"}},"required":["id","name","type","friendlyURL","friendlyUrl","sizeInBytes","mimeType"],"type":"object"},"de.mittwald.v1.file.FileType":{"properties":{"extensions":{"example":[".jpe",".jpeg",".jpg"],"items":{"type":"string"},"type":"array"},"mimeType":{"example":"image/jpeg","type":"string"}},"required":["mimeType","extensions"],"type":"object"},"de.mittwald.v1.file.FileUploadRules":{"properties":{"extensions":{"example":[".png",".jpeg",".jpg"],"items":{"type":"string"},"type":"array"},"fileTypes":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.file.FileType"},"type":"array"},"maxNameLength":{"example":80,"type":"integer"},"maxSizeInBytes":{"example":1000000,"format":"int64","type":"integer"},"maxSizeInKB":{"deprecated":true,"description":"deprecated, see maxSizeInBytes","example":1000,"format":"int64","type":"integer"},"maxSizeInKb":{"deprecated":true,"description":"deprecated, see maxSizeInBytes","example":1000,"format":"int64","type":"integer"},"mimeTypes":{"example":["image/png","image/jpeg"],"items":{"type":"string"},"type":"array"},"properties":{"properties":{"imageDimensions":{"properties":{"max":{"properties":{"height":{"format":"int64","type":"integer"},"width":{"format":"int64","type":"integer"}},"type":"object"},"min":{"properties":{"height":{"format":"int64","type":"integer"},"width":{"format":"int64","type":"integer"}},"type":"object"}},"type":"object"}},"type":"object"}},"required":["maxSizeInBytes","maxSizeInKB","maxSizeInKb","mimeTypes","fileTypes","extensions","maxNameLength"],"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.ListIngressesCompatibleWithCertificateIDRequest":{"properties":{"certificateId":{"description":"The certificates UUID.","format":"uuid","type":"string"}},"required":["certificateId"],"type":"object"},"de.mittwald.v1.ingress.ListIngressesCompatibleWithCertificateRequest":{"properties":{"certificate":{"description":"PEM-encoded certificate. Linebreaks have to be escaped with \n.","type":"string"},"projectId":{"description":"The projects UUID.","format":"uuid","type":"string"}},"required":["projectId","certificate"],"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.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.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"},"reissuedBy":{"description":"The ID of the Invoice that is a Reissue of this one.","format":"uuid","type":"string"},"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","debtWrittenOff","bankrupt"],"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.leadfyndr.BasicCompany":{"properties":{"county":{"type":"string"},"employeeCount":{"format":"int64","type":"integer"},"foundingYear":{"type":"number"},"salesVolume":{"format":"int64","type":"integer"}},"required":["county"],"type":"object"},"de.mittwald.v1.leadfyndr.BasicMetrics":{"properties":{"co2":{"format":"float","minimum":0,"type":"number"},"contentLoaded":{"format":"float","minimum":0,"type":"number"},"desktop":{"$ref":"#/components/schemas/de.mittwald.v1.leadfyndr.Lighthouse"},"mobile":{"$ref":"#/components/schemas/de.mittwald.v1.leadfyndr.Lighthouse"},"timeToFirstByteMs":{"type":"number"}},"required":["desktop","mobile"],"type":"object"},"de.mittwald.v1.leadfyndr.City":{"properties":{"city":{"type":"string"},"country":{"type":"string"},"county":{"type":"string"},"postCode":{"type":"string"}},"required":["country","postCode","city"],"type":"object"},"de.mittwald.v1.leadfyndr.Contact":{"properties":{"address":{"properties":{"addressPrefix":{"type":"string"},"city":{"minLength":1,"type":"string"},"countryCode":{"maxLength":2,"minLength":2,"type":"string"},"houseNumber":{"minLength":1,"type":"string"},"street":{"minLength":1,"type":"string"},"zip":{"minLength":1,"type":"string"}},"type":"object"}},"type":"object"},"de.mittwald.v1.leadfyndr.DetailCompany":{"allOf":[{"$ref":"#/components/schemas/de.mittwald.v1.leadfyndr.BasicCompany"},{"properties":{"city":{"type":"string"},"companyType":{"items":{"type":"string"},"type":"array"},"coreProduct":{"items":{"type":"string"},"type":"array"},"name":{"type":"string"},"phoneNumbers":{"default":[],"items":{"type":"string"},"type":"array"},"targetGroup":{"items":{"type":"string"},"type":"array"},"websiteType":{"items":{"type":"string"},"type":"array"}},"required":["targetGroup","coreProduct","websiteType","companyType","city","phoneNumbers"],"type":"object"}]},"de.mittwald.v1.leadfyndr.DetailMetrics":{"properties":{"additionalMetrics":{"additionalProperties":{"$ref":"#/components/schemas/de.mittwald.v1.leadfyndr.Metric"},"type":"object"},"basic":{"$ref":"#/components/schemas/de.mittwald.v1.leadfyndr.BasicMetrics"}},"required":["basic"],"type":"object"},"de.mittwald.v1.leadfyndr.Hoster":{"properties":{"mailServer":{"items":{"type":"string"},"type":"array"},"nameServer":{"items":{"type":"string"},"type":"array"},"server":{"items":{"type":"string"},"type":"array"}},"required":["server","nameServer","mailServer"],"type":"object"},"de.mittwald.v1.leadfyndr.Lead":{"properties":{"businessFields":{"items":{"type":"string"},"type":"array"},"company":{"$ref":"#/components/schemas/de.mittwald.v1.leadfyndr.BasicCompany"},"description":{"type":"string"},"hoster":{"properties":{"server":{"items":{"type":"string"},"type":"array"}},"required":["server"],"type":"object"},"languages":{"items":{"type":"string"},"type":"array"},"leadId":{"type":"string"},"mainTechnology":{"$ref":"#/components/schemas/de.mittwald.v1.leadfyndr.Technology"},"metrics":{"$ref":"#/components/schemas/de.mittwald.v1.leadfyndr.BasicMetrics"},"potential":{"format":"float","maximum":1,"minimum":0,"type":"number"},"scannedAt":{"format":"date-time","type":"string"},"screenshot":{"type":"string"},"technologies":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.leadfyndr.Technology"},"type":"array"}},"required":["leadId","potential","screenshot","company","metrics","businessFields","description","technologies","hoster","languages"],"type":"object"},"de.mittwald.v1.leadfyndr.TariffOptions":{"properties":{"nextUnlockRenewalDate":{"format":"date","type":"string"},"reservation":{"properties":{"available":{"minimum":0,"type":"number"},"tariffLimit":{"minimum":0,"type":"number"},"used":{"minimum":0,"type":"number"}},"required":["used","available","tariffLimit"],"type":"object"},"unlocked":{"properties":{"available":{"minimum":0,"type":"number"},"tariffLimit":{"minimum":0,"type":"number"},"used":{"minimum":0,"type":"number"}},"required":["used","available","tariffLimit"],"type":"object"}},"required":["unlocked","reservation"],"type":"object"},"de.mittwald.v1.leadfyndr.LeadsExport":{"properties":{"customerId":{"type":"string"},"exportId":{"type":"string"},"exportedAt":{"format":"date-time","type":"string"},"exportedBy":{"$ref":"#/components/schemas/de.mittwald.v1.leadfyndr.LeadsExportExporter"},"leadCount":{"description":"The number of leads included in the export.","format":"int32","type":"integer"}},"required":["exportId","customerId","exportedAt","leadCount"],"type":"object"},"de.mittwald.v1.leadfyndr.LeadsExportExporter":{"properties":{"avatarRefId":{"type":"string"},"person":{"properties":{"firstName":{"type":"string"},"lastName":{"type":"string"}},"required":["firstName","lastName"],"type":"object"},"userId":{"type":"string"}},"required":["userId"],"type":"object"},"de.mittwald.v1.leadfyndr.Lighthouse":{"properties":{"accessibility":{"format":"float","maximum":1,"minimum":0,"type":"number"},"bestPractice":{"format":"float","maximum":1,"minimum":0,"type":"number"},"cumulativeLayoutShift":{"format":"float","minimum":0,"type":"number"},"firstContentfulPaint":{"format":"float","minimum":0,"type":"number"},"largestContentfulPaint":{"format":"float","minimum":0,"type":"number"},"performance":{"format":"float","maximum":1,"minimum":0,"type":"number"},"seo":{"format":"float","maximum":1,"minimum":0,"type":"number"},"totalBlockingTime":{"format":"float","minimum":0,"type":"number"}},"type":"object"},"de.mittwald.v1.leadfyndr.Metric":{"properties":{"category":{"type":"string"},"name":{"type":"string"},"score":{"type":"number"},"unit":{"type":"string"},"value":{"type":"number"}},"required":["category","name"],"type":"object"},"de.mittwald.v1.leadfyndr.ProfileRequest":{"properties":{"createdOn":{"format":"date-time","type":"string"},"customerId":{"type":"string"},"domain":{"type":"string"},"profileId":{"type":"string"},"requestedBy":{"$ref":"#/components/schemas/de.mittwald.v1.leadfyndr.User"},"resultOn":{"format":"date-time","type":"string"},"status":{"enum":["AUTOTEST_INIT","MANUAL_VERIFICATION","REJECTED","APPROVED"],"type":"string"}},"required":["profileId","customerId","domain","status","createdOn","requestedBy"],"type":"object"},"de.mittwald.v1.leadfyndr.Profile":{"properties":{"approvedOn":{"format":"date-time","type":"string"},"customerId":{"type":"string"},"disabledOn":{"format":"date-time","type":"string"},"domain":{"type":"string"}},"required":["customerId","domain","approvedOn"],"type":"object"},"de.mittwald.v1.leadfyndr.SocialMedia":{"properties":{"network":{"type":"string"},"url":{"type":"string"}},"required":["network","url"],"type":"object"},"de.mittwald.v1.leadfyndr.Technology":{"properties":{"categories":{"items":{"properties":{"name":{"type":"string"},"parentCategories":{"items":{"type":"string"},"type":"array"},"priority":{"type":"number"}},"required":["name","priority"],"type":"object"},"type":"array"},"categoryPriority":{"type":"integer"},"name":{"type":"string"},"version":{"type":"string"}},"required":["name","categoryPriority"],"type":"object"},"de.mittwald.v1.leadfyndr.UnlockedLead":{"properties":{"actualUrl":{"type":"string"},"businessFields":{"items":{"type":"string"},"type":"array"},"company":{"$ref":"#/components/schemas/de.mittwald.v1.leadfyndr.DetailCompany"},"contact":{"$ref":"#/components/schemas/de.mittwald.v1.leadfyndr.Contact"},"description":{"type":"string"},"domain":{"type":"string"},"hoster":{"$ref":"#/components/schemas/de.mittwald.v1.leadfyndr.Hoster"},"languages":{"items":{"type":"string"},"type":"array"},"leadId":{"type":"string"},"mainTechnology":{"$ref":"#/components/schemas/de.mittwald.v1.leadfyndr.Technology"},"metrics":{"$ref":"#/components/schemas/de.mittwald.v1.leadfyndr.DetailMetrics"},"potential":{"format":"float","maximum":1,"minimum":0,"type":"number"},"reservationAllowed":{"type":"boolean"},"reservedAt":{"format":"date-time","type":"string"},"scannedAt":{"format":"date-time","type":"string"},"screenshot":{"type":"string"},"socialMedia":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.leadfyndr.SocialMedia"},"type":"array"},"technologies":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.leadfyndr.Technology"},"type":"array"},"unlockedAt":{"format":"date-time","type":"string"}},"required":["leadId","potential","screenshot","company","metrics","businessFields","description","technologies","domain","actualUrl","socialMedia","contact","hoster","unlockedAt","languages"],"type":"object"},"de.mittwald.v1.leadfyndr.User":{"properties":{"userId":{"type":"string"}},"required":["userId"],"type":"object"},"de.mittwald.v1.license.AppVersionMeta":{"properties":{"description":{"type":"string"}},"required":["description"],"type":"object"},"de.mittwald.v1.license.ExternalKey":{"properties":{"externalKey":{"type":"string"}},"required":["externalKey"],"type":"object"},"de.mittwald.v1.license.Key":{"properties":{"key":{"example":"Afdkj49dsfj3","type":"string"}},"required":["key"],"type":"object"},"de.mittwald.v1.license.KeyResponse":{"properties":{"keyReference":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.license.Key"},{"$ref":"#/components/schemas/de.mittwald.v1.license.ExternalKey"}]}},"type":"object"},"de.mittwald.v1.license.Kind":{"enum":["typo3-elts"],"type":"string"},"de.mittwald.v1.license.License":{"properties":{"description":{"type":"string"},"expiryDate":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"keyReference":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.license.Key"},{"$ref":"#/components/schemas/de.mittwald.v1.license.ExternalKey"}]},"kind":{"$ref":"#/components/schemas/de.mittwald.v1.license.Kind"},"meta":{"$ref":"#/components/schemas/de.mittwald.v1.license.Meta"},"reference":{"$ref":"#/components/schemas/de.mittwald.v1.license.Reference"},"volume":{"type":"integer"}},"required":["id","description","kind","reference","meta"],"type":"object"},"de.mittwald.v1.license.Meta":{"properties":{"appVersion":{"$ref":"#/components/schemas/de.mittwald.v1.license.AppVersionMeta"}},"type":"object"},"de.mittwald.v1.license.Reference":{"properties":{"aggregate":{"enum":["project"],"type":"string"},"domain":{"enum":["project"],"type":"string"},"id":{"type":"string"}},"required":["id","domain","aggregate"],"type":"object"},"de.mittwald.v1.mail.CreateMailAddress":{"properties":{"address":{"format":"idn-email","type":"string"},"forwardAddresses":{"items":{"format":"idn-email","type":"string"},"type":"array"},"isCatchAll":{"type":"boolean"},"mailbox":{"properties":{"enableSpamProtection":{"type":"boolean"},"password":{"type":"string"},"quotaInBytes":{"description":"2 GB","example":2147483648,"format":"int64","minimum":-1,"type":"integer"}},"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.MailAddressBackup":{"properties":{"name":{"type":"string"}},"required":["name"],"type":"object"},"de.mittwald.v1.mail.MailAddress":{"properties":{"address":{"format":"idn-email","type":"string"},"archive":{"properties":{"active":{"description":"shows if the mail-archive is enabled","type":"boolean"},"quota":{"description":"maximum available mail-archive storage in bytes","format":"int64","type":"integer"},"usedBytes":{"description":"current mail-archive usage in bytes","format":"int64","type":"integer"}},"required":["active","quota","usedBytes"],"type":"object"},"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"},"isBackupInProgress":{"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":{"format":"int64","type":"integer"}},"required":["value","updatedAt"],"type":"object"},"limit":{"format":"int64","type":"integer"}},"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","isBackupInProgress","archive"],"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":{"format":"int64","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","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.CheckMigrationIsPossibleErrorActiveMailArchiveForAddress":{"properties":{"address":{"type":"string"}},"required":["address"],"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":{"activeMailArchiveForAddress":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.mailmigration.CheckMigrationIsPossibleErrorActiveMailArchiveForAddress"},"type":"array"},"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","activeMailArchiveForAddress"],"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.marketplace.ContractPartner":{"properties":{"contractPartner":{"properties":{"address":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Address"},"company":{"example":"mittwald","type":"string"},"email":{"example":"a.lovelace@example.com","type":"string"},"firstName":{"example":"Ada","type":"string"},"lastName":{"example":"Lovelace","type":"string"}},"required":["firstName","lastName","email","address"]},"createdAt":{"format":"date-time","type":"string"},"extensionId":{"format":"uuid","type":"string"},"extensionInstanceId":{"format":"uuid","type":"string"},"parentCustomerId":{"type":"string"}},"required":["extensionInstanceId","extensionId","createdAt","parentCustomerId","contractPartner"],"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 Customer'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":{"avatarRef":{"description":"Avatar file reference id of the user.","format":"uuid","type":"string"},"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"},"firstName":{"description":"First name of the user.","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"},"lastName":{"description":"Last name of the user.","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","firstName","lastName"],"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"}},"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":{"avatarRef":{"description":"Avatar file reference id of the user.","format":"uuid","type":"string"},"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"},"firstName":{"description":"First name of the user.","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"},"lastName":{"description":"Last name of the user.","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","firstName","lastName"],"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.AIHostingOrderPreview":{"properties":{"monthlyTokens":{"example":2000000,"type":"integer"},"requestsPerMinute":{"example":120,"type":"integer"}},"required":["requestsPerMinute","monthlyTokens"],"type":"object"},"de.mittwald.v1.order.AIHostingOrder":{"properties":{"customerId":{"example":"0f5ec9cd-1b1b-4850-9061-fcebe765c62d","type":"string"},"monthlyTokens":{"example":2000000,"type":"integer"},"requestsPerMinute":{"example":120,"type":"integer"},"useFreeTrial":{"type":"boolean"}},"required":["customerId","requestsPerMinute","monthlyTokens"],"type":"object"},"de.mittwald.v1.order.AIHostingTariffChange":{"properties":{"contractId":{"example":"7439a725-1d7d-4f7e-bcdf-40900daf94cf","type":"string"},"monthlyTokens":{"example":50000000,"type":"integer"},"requestsPerMinute":{"example":300,"type":"integer"}},"required":["contractId","requestsPerMinute","monthlyTokens"],"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","projectId"],"type":"object"},"de.mittwald.v1.order.DomainOrder":{"properties":{"authCode":{"example":"XXXXXXX","type":"string"},"domain":{"example":"mittwald.example","type":"string"},"handleData":{"properties":{"adminC":{"deprecated":true,"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.ExternalCertificateOrderPreview":{"properties":{"certificateRequestId":{"format":"uuid","type":"string"},"projectId":{"format":"uuid","type":"string"}},"required":["projectId","certificateRequestId"],"type":"object"},"de.mittwald.v1.order.ExternalCertificateOrder":{"description":"You are able to order an External Certificate if you already created a Certificate Request.","properties":{"certificateRequestId":{"format":"uuid","type":"string"},"projectId":{"format":"uuid","type":"string"}},"required":["projectId","certificateRequestId"],"type":"object"},"de.mittwald.v1.order.HardwareSpec":{"properties":{"ram":{"example":2,"type":"number"},"vcpu":{"example":1,"type":"number"}},"type":"object"},"de.mittwald.v1.order.LeadFyndrOrderPreview":{"properties":{"reservationLimit":{"example":15,"type":"integer"},"unlockLimit":{"example":80,"type":"integer"}},"required":["unlockLimit","reservationLimit"],"type":"object"},"de.mittwald.v1.order.LeadFyndrOrder":{"properties":{"customerId":{"example":"0f5ec9cd-1b1b-4850-9061-fcebe765c62d","type":"string"},"reservationLimit":{"example":15,"type":"integer"},"unlockLimit":{"example":80,"type":"integer"}},"required":["customerId","unlockLimit","reservationLimit"],"type":"object"},"de.mittwald.v1.order.LeadFyndrTariffChange":{"properties":{"contractId":{"example":"7439a725-1d7d-4f7e-bcdf-40900daf94cf","type":"string"},"reservationLimit":{"example":15,"type":"integer"},"unlockLimit":{"example":80,"type":"integer"}},"required":["contractId","unlockLimit","reservationLimit"],"type":"object"},"de.mittwald.v1.order.LicenseOrderPreview":{"oneOf":[{"description":"TYPO3 ELTS license","properties":{"description":{"description":"Describe for which typo3 instance the license will be used.","type":"string"},"licenseType":{"enum":["typo3"],"type":"string"},"majorVersion":{"description":"The major version for which a license should be purchased.","example":12,"type":"number"}},"required":["licenseType","majorVersion"],"type":"object"}]},"de.mittwald.v1.order.LicenseOrder":{"oneOf":[{"description":"TYPO3 ELTS license","properties":{"description":{"description":"Describe for which typo3 instance the license will be used.","type":"string"},"licenseType":{"enum":["typo3"],"type":"string"},"majorVersion":{"description":"The major version for which a license should be purchased.","example":12,"type":"number"},"projectId":{"format":"uuid","type":"string"}},"required":["licenseType","projectId","majorVersion","description"],"type":"object"}]},"de.mittwald.v1.order.MachineTypeSpec":{"properties":{"machineType":{"example":"prospace.2cpu.4gb","type":"string"}},"type":"object"},"de.mittwald.v1.order.MailArchiveOrderPreviewResponse":{"properties":{"feePrice":{"example":199,"type":"number"},"recurringPrice":{"example":350,"type":"number"},"totalPrice":{"example":549,"type":"number"}},"required":["totalPrice","recurringPrice","feePrice"],"type":"object"},"de.mittwald.v1.order.MailArchiveOrderPreview":{"properties":{"mailAddressId":{"format":"uuid","type":"string"},"syncExistingMails":{"type":"boolean"}},"required":["mailAddressId"],"type":"object"},"de.mittwald.v1.order.MailArchiveOrder":{"properties":{"mailAddressId":{"format":"uuid","type":"string"},"syncExistingMails":{"type":"boolean"}},"required":["mailAddressId"],"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.AIHostingOrderPreviewResponse":{"properties":{"totalPrice":{"example":500,"type":"number"}},"required":["totalPrice"],"type":"object"},"de.mittwald.v1.order.LeadFyndrOrderPreviewResponse":{"properties":{"totalPrice":{"example":7900,"type":"number"}},"required":["totalPrice"],"type":"object"},"de.mittwald.v1.order.LicenseOrderPreviewResponse":{"properties":{"totalPrice":{"example":2000,"type":"number"}},"required":["totalPrice"],"type":"object"},"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.ExternalCertificateOrderPreviewResponse":{"properties":{"feePrice":{"example":900,"type":"number"},"recurringPrice":{"example":490,"type":"number"},"totalPrice":{"example":1390,"type":"number"}},"required":["totalPrice","recurringPrice","feePrice"],"type":"object"},"de.mittwald.v1.order.HostingOrderPreviewResponse":{"properties":{"machineTypePrice":{"example":500,"type":"number"},"possibleFreeTrialDays":{"example":10,"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"},"firstName":{"example":"Ada","type":"string"},"lastName":{"example":"Lovelace","type":"string"},"title":{"deprecated":true,"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":20,"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"}]}},"required":["diskspaceInGiB","spec"],"type":"object"},"de.mittwald.v1.order.ProjectHostingOrder":{"properties":{"customerId":{"example":"0f5ec9cd-1b1b-4850-9061-fcebe765c62d","type":"string"},"description":{"example":"My first project","type":"string"},"diskspaceInGiB":{"example":20,"type":"number"},"promotionCode":{"example":"123456","type":"string"},"recommendationCode":{"example":"mp-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":20,"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 server","type":"string"},"diskspaceInGiB":{"example":100,"type":"number"},"machineType":{"example":"shared.xlarge","type":"string"},"promotionCode":{"example":"123456","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"},"recommendationCode":{"example":"mp-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.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":"WH25-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 Hosting aller Art","minLength":3,"type":"string"},"type":{"enum":["miscellaneous","base","additional","modifier","setup_fee"],"type":"string"}},"required":["id","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":"WH25-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":{"description":"Only Articles with the value 'full' can be ordered by everyone. Forbidden Articles are not allowed to be ordered. Internal Articles have to be ordered by a mittwald employee. Beta testing Articles can be ordered but maybe feature incomplete. Deprecated Articles are not orderable anymore.","enum":["full","forbidden","internal","beta_testing","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.policy.Policy":{"type":"string"},"de.mittwald.v1.project.AvatarRules":{"properties":{"maxSizeInKB":{"example":3000,"format":"int64","type":"integer"},"mimeTypes":{"example":["image/jpeg","image/png"],"items":{"type":"string"},"type":"array"},"properties":{"properties":{"imageDimensions":{"properties":{"max":{"properties":{"height":{"format":"int64","type":"integer"},"width":{"format":"int64","type":"integer"}},"type":"object"},"min":{"properties":{"height":{"format":"int64","type":"integer"},"width":{"format":"int64","type":"integer"}},"type":"object"}},"type":"object"}},"type":"object"}},"required":["mimeTypes","maxSizeInKB"],"type":"object"},"de.mittwald.v1.project.DeprecatedProjectReadinessStatus":{"deprecated":true,"description":"deprecated by property status","enum":["creating","ready","unready"],"type":"string"},"de.mittwald.v1.project.DeprecatedServerReadinessStatus":{"deprecated":true,"description":"deprecated by property status","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":{"format":"int64","type":"integer"},"target":{"type":"string"}},"required":["absolutePath","name","size"],"type":"object"},"de.mittwald.v1.project.FilesystemUsagesDisk":{"properties":{"path":{"type":"string"},"totalBytes":{"format":"int64","type":"integer"},"usedBytes":{"format":"int64","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.ProjectFeature":{"enum":["redis","node","container"],"type":"string"},"de.mittwald.v1.project.ProjectStatus":{"enum":["pending","ready","preparingForVolumeMigration","migratingVolume","error","disabled"],"type":"string"},"de.mittwald.v1.project.Project":{"properties":{"backupStorageUsageInBytes":{"format":"int64","type":"integer"},"backupStorageUsageInBytesSetAt":{"format":"date-time","type":"string"},"clusterDomain":{"example":"project.host","format":"hostname","type":"string"},"clusterID":{"deprecated":true,"description":"deprecated by property clusterId","example":"espelkamp","type":"string"},"clusterId":{"example":"espelkamp","type":"string"},"createdAt":{"format":"date-time","type":"string"},"customerId":{"example":"f282f1a8-2b15-4b08-9850-6788e3b20136","type":"string"},"deletionRequested":{"type":"boolean"},"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"},"features":{"deprecated":true,"description":"Deprecated by 'supportedFeatures'.","items":{"$ref":"#/components/schemas/de.mittwald.v1.project.ProjectFeature"},"type":"array"},"id":{"format":"uuid","type":"string"},"imageRefId":{"format":"uuid","type":"string"},"isReady":{"deprecated":true,"description":"deprecated by property status","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"},"supportedFeatures":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.project.ProjectFeature"},"type":"array"},"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","backupStorageUsageInBytes","backupStorageUsageInBytesSetAt","supportedFeatures"],"type":"object"},"de.mittwald.v1.project.ServerDisableReason":{"enum":["suspended"],"type":"string"},"de.mittwald.v1.project.ServerStatus":{"enum":["pending","ready","unready","suspended","migrating"],"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 by property status","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":{"format":"int64","type":"integer"}},"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.directus.EmailInbox":{"properties":{"email":{"minLength":1,"type":"string"},"password":{"minLength":1,"type":"string"}},"required":["email","password"],"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":"integer"},"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":{"format":"int64","type":"integer"},"height":{"format":"int64","type":"integer"},"quality":{"type":"integer"},"width":{"format":"int64","type":"integer"}},"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.ssl.Certificate":{"properties":{"caBundle":{"type":"string"},"certificate":{"type":"string"},"certificateOrderId":{"format":"uuid","type":"string"},"certificateRequestId":{"format":"uuid","type":"string"},"certificateType":{"$ref":"#/components/schemas/de.mittwald.v1.ssl.CertificateType"},"commonName":{"type":"string"},"contact":{"$ref":"#/components/schemas/de.mittwald.v1.ssl.Contact"},"dnsCertSpec":{"properties":{"cnameTarget":{"type":"string"},"status":{"$ref":"#/components/schemas/de.mittwald.v1.ssl.DNSCertStatus"}},"type":"object"},"dnsNames":{"items":{"type":"string"},"type":"array"},"id":{"format":"uuid","type":"string"},"isExpired":{"type":"boolean"},"issuer":{"type":"string"},"lastExpirationThresholdHit":{"type":"integer"},"projectId":{"format":"uuid","type":"string"},"validFrom":{"format":"date-time","type":"string"},"validTo":{"format":"date-time","type":"string"}},"required":["id","certificateType","certificateRequestId","projectId"],"type":"object"},"de.mittwald.v1.ssl.CertificateData":{"properties":{"caBundle":{"type":"string"},"certificate":{"type":"string"},"signingRequest":{"type":"string"}},"type":"object"},"de.mittwald.v1.ssl.CertificateError":{"properties":{"message":{"oneOf":[{"description":"Failed to read the certificate.","enum":["certificate_read_failed"],"type":"string"},{"description":"Failed to decode the certificate.","enum":["certificate_decode_failed"],"type":"string"},{"description":"An error occurred while parsing the certificate.","enum":["certificate_parsing_failed"],"type":"string"},{"description":"The certificate is self-signed.","enum":["certificate_self_signed"],"type":"string"},{"description":"The certificate is not authorized to sign.","enum":["certificate_not_authorized_to_sign"],"type":"string"},{"description":"The certificate has expired.","enum":["certificate_expired"],"type":"string"},{"description":"The Certificate Authority (CA) is not authorized for this name.","enum":["ca_not_authorized_for_this_name"],"type":"string"},{"description":"There are too many intermediate certificates.","enum":["too_many_intermediates"],"type":"string"},{"description":"The certificate's usage is incompatible.","enum":["incompatible_usage"],"type":"string"},{"description":"The certificate is signed by an unknown authority.","enum":["unknown_authority"],"type":"string"},{"description":"Failed to read the private key.","enum":["private_key_read_failed"],"type":"string"},{"description":"Failed to decode the private key.","enum":["private_key_decode_failed"],"type":"string"},{"description":"An error occurred while parsing the private key.","enum":["private_key_parse_failed"],"type":"string"},{"description":"The private key is encrypted.","enum":["private_key_encrypted"],"type":"string"},{"description":"The private key is not RSA.","enum":["private_key_not_rsa"],"type":"string"},{"description":"The private key does not match the certificate.","enum":["private_key_mismatch"],"type":"string"},{"description":"An unknown error occurred related to Cloudflare.","enum":["unknown_cloudflare_error"],"type":"string"},{"description":"An unknown error occurred.","enum":["unknown"],"type":"string"}]}},"required":["message"],"type":"object"},"de.mittwald.v1.ssl.CertificateRequest":{"properties":{"certificateData":{"$ref":"#/components/schemas/de.mittwald.v1.ssl.CertificateData"},"certificateType":{"$ref":"#/components/schemas/de.mittwald.v1.ssl.CertificateType"},"commonName":{"type":"string"},"contact":{"$ref":"#/components/schemas/de.mittwald.v1.ssl.Contact"},"createdAt":{"format":"date-time","type":"string"},"dnsNames":{"items":{"type":"string"},"type":"array"},"id":{"format":"uuid","type":"string"},"isCompleted":{"type":"boolean"},"issuer":{"type":"string"},"projectId":{"format":"uuid","type":"string"},"validFrom":{"format":"date-time","type":"string"},"validTo":{"format":"date-time","type":"string"}},"required":["id","certificateType","projectId","certificateData","isCompleted","createdAt"],"type":"object"},"de.mittwald.v1.ssl.CertificateRequestCreateRequest":{"additionalProperties":false,"properties":{"certificate":{"type":"string"},"privateKey":{"type":"string"},"projectId":{"format":"uuid","type":"string"}},"required":["projectId","certificate","privateKey"],"type":"object"},"de.mittwald.v1.ssl.CertificateRequestCreateResponse":{"properties":{"commonName":{"type":"string"},"contact":{"$ref":"#/components/schemas/de.mittwald.v1.ssl.Contact"},"dnsNames":{"items":{"type":"string"},"type":"array"},"id":{"format":"uuid","type":"string"},"issuer":{"type":"string"},"signingRequest":{"type":"string"},"validFrom":{"format":"date-time","type":"string"},"validTo":{"format":"date-time","type":"string"}},"required":["id"],"type":"object"},"de.mittwald.v1.ssl.CertificateRequestCreateWithCSRRequest":{"additionalProperties":false,"properties":{"commonName":{"type":"string"},"contact":{"$ref":"#/components/schemas/de.mittwald.v1.ssl.Contact"},"projectId":{"format":"uuid","type":"string"}},"required":["projectId","commonName","contact"],"type":"object"},"de.mittwald.v1.ssl.CertificateRequestCreateWithDNSRequest":{"additionalProperties":false,"properties":{"commonName":{"type":"string"},"projectId":{"format":"uuid","type":"string"}},"required":["projectId","commonName"],"type":"object"},"de.mittwald.v1.ssl.CertificateType":{"enum":[0,1,2,3],"type":"integer"},"de.mittwald.v1.ssl.CheckReplaceChanges":{"properties":{"commonName":{"$ref":"#/components/schemas/de.mittwald.v1.ssl.CheckReplaceFieldChange"},"dnsNames":{"$ref":"#/components/schemas/de.mittwald.v1.ssl.CheckReplaceSliceChange"},"issuer":{"$ref":"#/components/schemas/de.mittwald.v1.ssl.CheckReplaceFieldChange"},"validFrom":{"$ref":"#/components/schemas/de.mittwald.v1.ssl.CheckReplaceDateChange"},"validTo":{"$ref":"#/components/schemas/de.mittwald.v1.ssl.CheckReplaceDateChange"}},"type":"object"},"de.mittwald.v1.ssl.CheckReplaceDateChange":{"properties":{"newValue":{"format":"date-time","type":"string"},"oldValue":{"format":"date-time","type":"string"}},"required":["oldValue","newValue"],"type":"object"},"de.mittwald.v1.ssl.CheckReplaceFieldChange":{"properties":{"newValue":{"type":"string"},"oldValue":{"type":"string"}},"required":["oldValue","newValue"],"type":"object"},"de.mittwald.v1.ssl.CheckReplaceCertificateResponse":{"properties":{"changes":{"$ref":"#/components/schemas/de.mittwald.v1.ssl.CheckReplaceChanges"},"errors":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.ssl.CertificateError"},"type":"array"},"isReplaceable":{"type":"boolean"}},"required":["isReplaceable"],"type":"object"},"de.mittwald.v1.ssl.CheckReplaceSliceChange":{"properties":{"addedValues":{"items":{"type":"string"},"type":"array"},"removedValues":{"items":{"type":"string"},"type":"array"},"values":{"items":{"type":"string"},"type":"array"}},"required":["values","addedValues","removedValues"],"type":"object"},"de.mittwald.v1.ssl.Contact":{"properties":{"city":{"type":"string"},"company":{"type":"string"},"country":{"description":"Two letter abbreviation - country code (ISO 3166-1 Alpha-2).","example":"DE","pattern":"^[A-Z]{2}$","type":"string"},"organizationalUnit":{"type":"string"},"state":{"type":"string"}},"type":"object"},"de.mittwald.v1.ssl.DNSCertStatus":{"properties":{"message":{"type":"string"},"status":{"$ref":"#/components/schemas/de.mittwald.v1.ssl.ProjectCertificateStatus"},"updatedAt":{"format":"date-time","type":"string"}},"required":["status"],"type":"object"},"de.mittwald.v1.ssl.ProjectCertificateStatus":{"enum":["issuing","ready","cnameError","error","unspecified"],"type":"string"},"de.mittwald.v1.storagespace.StatisticsCategoryKind":{"enum":["webspace","projectBackup","mailAddress","mysqlDatabase","redisDatabase","containerVolume"],"type":"string"},"de.mittwald.v1.storagespace.StatisticsCategory":{"properties":{"kind":{"$ref":"#/components/schemas/de.mittwald.v1.storagespace.StatisticsCategoryKind"},"resources":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.storagespace.StatisticsResource"},"type":"array","uniqueItems":true},"totalUsageInBytes":{"example":1000,"format":"int64","type":"integer"}},"required":["kind","totalUsageInBytes"],"type":"object"},"de.mittwald.v1.storagespace.StatisticsKind":{"enum":["server","project"],"type":"string"},"de.mittwald.v1.storagespace.StatisticsMeta":{"properties":{"isExceeding":{"example":false,"type":"boolean"},"lastExceedanceLimitInBytes":{"description":"The last exceedance limit in bytes during the exceedance time, therefore can differ from the current limit. It is retained as a historical record of the most recent exceedance and does not reset once set.","example":10,"format":"int64","type":"integer"},"lastTotalExceedanceInBytes":{"description":"The last total exceedance in bytes related to the limit during the exceedance time, see lastExceedanceLimitInBytes. It is retained as a historical record of the most recent exceedance and does not reset once set.","example":10,"format":"int64","type":"integer"},"lastTotalExceedanceInBytesSetAt":{"description":"The last total exceedance date. It is retained as a historical record of the most recent exceedance and does not reset once set.","example":"2023-12-22T13:46:52.000Z","format":"date-time","type":"string"},"limitInBytes":{"example":100000,"format":"int64","type":"integer"},"notificationThresholdUsedAsLimit":{"description":"If true, set notification threshold is used as limit for meta calculations. E.g. for projects with a parent server.","example":false,"type":"boolean"},"totalExceedanceInBytes":{"description":"The current total exceedance in bytes.","example":10,"format":"int64","type":"integer"},"totalExceedanceInBytesSetAt":{"description":"The current total exceedance date.","example":"2023-12-22T13:46:52.000Z","format":"date-time","type":"string"},"totalFreeInBytes":{"example":99000,"format":"int64","type":"integer"},"totalFreeInPercentage":{"example":90,"type":"number"},"totalUsageInBytes":{"example":1000,"format":"int64","type":"integer"},"totalUsageInPercentage":{"example":10,"type":"number"}},"required":["totalUsageInBytes"],"type":"object"},"de.mittwald.v1.storagespace.StatisticsResource":{"properties":{"description":{"example":"MySQL DB for Wordpress","type":"string"},"id":{"example":"169cea81-2c11-46a4-8f0b-5b0b47caeb78","type":"string"},"name":{"example":"mysql-xyz","type":"string"},"usageInBytes":{"example":1000,"format":"int64","type":"integer"},"usageInBytesSetAt":{"example":"2023-12-22T13:46:52.000Z","format":"date-time","type":"string"}},"required":["id","name","usageInBytes","usageInBytesSetAt"],"type":"object"},"de.mittwald.v1.storagespace.Statistics":{"properties":{"childStatistics":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.storagespace.Statistics"},"type":"array","uniqueItems":true},"description":{"example":"My First Project","type":"string"},"id":{"example":"169cea81-2c11-46a4-8f0b-5b0b47caeb78","type":"string"},"kind":{"$ref":"#/components/schemas/de.mittwald.v1.storagespace.StatisticsKind"},"meta":{"$ref":"#/components/schemas/de.mittwald.v1.storagespace.StatisticsMeta"},"name":{"example":"p-zkl8tr","type":"string"},"notificationThresholdInBytes":{"example":10000,"format":"int64","type":"integer"},"statisticCategories":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.storagespace.StatisticsCategory"},"type":"array","uniqueItems":true}},"required":["id","kind","name","meta"],"type":"object"},"de.mittwald.v1.task.AggregateReference":{"properties":{"aggregate":{"type":"string"},"domain":{"type":"string"},"id":{"type":"string"}},"required":["id","aggregate","domain"],"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.OAuthClient":{"properties":{"allowedGrantTypes":{"items":{"type":"string"},"type":"array"},"allowedRedirectUris":{"items":{"type":"string"},"type":"array"},"allowedScopes":{"items":{"type":"string"},"type":"array"},"contributorId":{"type":"string"},"description":{"type":"string"},"humanReadableName":{"type":"string"},"id":{"type":"string"}},"required":["id","contributorId","humanReadableName"],"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.CustomerMembership":{"properties":{"expiresAt":{"format":"date-time","type":"string"},"memberSince":{"format":"date-time","type":"string"},"role":{"enum":["owner","member","accountant"],"type":"string"}},"required":["role","memberSince"],"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.ProjectMembership":{"properties":{"expiresAt":{"format":"date-time","type":"string"},"inherited":{"type":"boolean"},"memberSince":{"format":"date-time","type":"string"},"role":{"enum":["owner","emailadmin","external"],"type":"string"}},"required":["role","memberSince","inherited"],"type":"object"},"de.mittwald.v1.user.User":{"properties":{"avatarRef":{"format":"uuid","type":"string"},"customerMemberships":{"additionalProperties":{"$ref":"#/components/schemas/de.mittwald.v1.user.CustomerMembership"},"type":"object"},"email":{"format":"email","type":"string"},"employeeInformation":{"description":"Additional information about mittwald employees.","properties":{"department":{"example":"Kundenservice","type":"string"}},"required":["department"],"type":"object"},"isEmployee":{"description":"Truth value, whether the user is a mittwald employee","type":"boolean"},"mfa":{"properties":{"active":{"default":false,"type":"boolean"},"setup":{"default":false,"type":"boolean"}},"required":["active","setup"],"type":"object"},"passwordUpdatedAt":{"format":"date-time","type":"string"},"person":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Person"},"phoneNumber":{"example":"+491701234567","type":"string"},"projectMemberships":{"additionalProperties":{"$ref":"#/components/schemas/de.mittwald.v1.user.ProjectMembership"},"type":"object"},"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.varnish.ConfigRevision":{"properties":{"expire":{"type":"integer"},"files":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.varnish.ConfigFileRef"},"type":"array"},"note":{"type":"string"},"revision":{"minimum":1,"type":"integer"},"updated":{"format":"date-time","type":"string"}},"required":["revision","updated","files"],"type":"object"},"de.mittwald.v1.varnish.ConfigTemplate":{"properties":{"files":{"description":"A set of config file references.","items":{"$ref":"#/components/schemas/de.mittwald.v1.varnish.ConfigFileRef"},"type":"array"},"isGlobal":{"type":"boolean"},"note":{"type":"string"},"projectId":{"type":"string"},"softwareConfigTemplateId":{"type":"string"},"softwareTemplateId":{"type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["softwareConfigTemplateId","softwareTemplateId","files"],"type":"object"},"de.mittwald.v1.varnish.ConfigFile":{"properties":{"content":{"format":"bytes","type":"string"},"meta":{"$ref":"#/components/schemas/de.mittwald.v1.varnish.ConfigFileMetadata"}},"required":["content"],"type":"object"},"de.mittwald.v1.varnish.ConfigFileMetadata":{"properties":{"name":{"type":"string"},"path":{"type":"string"}},"required":["name"],"type":"object"},"de.mittwald.v1.varnish.ConfigFileRef":{"properties":{"meta":{"$ref":"#/components/schemas/de.mittwald.v1.varnish.ConfigFileMetadata"},"refId":{"type":"string"}},"required":["refId"],"type":"object"},"de.mittwald.v1.varnish.GlobalConfigTemplate":{"properties":{"data":{"format":"byte","type":"string"},"name":{"type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["name","data","updatedAt"],"type":"object"},"de.mittwald.v1.varnish.Software":{"properties":{"config":{"$ref":"#/components/schemas/de.mittwald.v1.varnish.SoftwareConfig"},"projectId":{"type":"string"},"settings":{"additionalProperties":{"type":"string"},"type":"object"},"softwareId":{"type":"string"},"softwareTemplateId":{"type":"string"},"softwareVersion":{"type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["softwareId","updatedAt","softwareTemplateId","softwareVersion","projectId","config"],"type":"object"},"de.mittwald.v1.varnish.SoftwareConfig":{"properties":{"configExpiration":{"$ref":"#/components/schemas/de.mittwald.v1.varnish.ConfigExpiration"},"latestConfigRevision":{"type":"number"},"revisions":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.varnish.ConfigRevision"},"type":"array"}},"type":"object"},"de.mittwald.v1.varnish.ConfigExpiration":{"properties":{"maxVersions":{"type":"number"},"retentionTime":{"type":"number"}},"type":"object"},"de.mittwald.v1.varnish.SoftwareConfigFileAccessToken":{"properties":{"accessToken":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"}},"required":["accessToken","expiresAt"],"type":"object"},"de.mittwald.v1.varnish.SoftwareSetting":{"properties":{"name":{"type":"string"},"value":{"type":"string"}},"required":["name","value"],"type":"object"},"de.mittwald.v1.verification.EmailDetectPhishingMailResponse":{"properties":{"result":{"$ref":"#/components/schemas/de.mittwald.v1.verification.EmailOrigin"}},"required":["result"],"type":"object"},"de.mittwald.v1.verification.EmailOrigin":{"enum":["IS_MITTWALD","IS_NOT_MITTWALD","COULD_BE_MITTWALD"],"type":"string"},"de.mittwald.v1.container.VolumeSortOrder":{"enum":["nameAsc","nameDesc","storageAsc","storageDesc"],"type":"string"},"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.Contact":{"type":"object","properties":{"firstName":{"type":"string"},"lastName":{"type":"string"},"title":{"type":"string"},"salutation":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Salutation"},"company":{"type":"string"},"address":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Address"},"emailAddress":{"type":"string","format":"email"},"phoneNumbers":{"type":"array","items":{"type":"string"}},"useFormalTerm":{"type":"boolean"}},"required":["address","salutation"]},"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","scheme":"bearer","type":"http","bearerFormat":"access_token"}}},"paths":{"/v2/customers/{customerId}/ai-hosting-keys":{"post":{"operationId":"ai-hosting-customer-create-key","description":"Creates a new key. Can be linked with a project to directly create web-ui container.","parameters":[{"in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"createWebuiContainer":{"type":"boolean"},"name":{"minLength":5,"type":"string"},"projectId":{"type":"string"}},"required":["name"],"type":"object"}}},"description":"","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.aihosting.Key"}}},"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"},"409":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Creates a new key.","tags":["AI hosting"]},"get":{"operationId":"ai-hosting-customer-get-keys","parameters":[{"in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.aihosting.Key"},"type":"array"}}},"description":"List of keys of a customer.\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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get a list of already created keys.","tags":["AI hosting"]}},"/v2/customers/{customerId}/ai-hosting-keys/{keyId}":{"delete":{"operationId":"ai-hosting-customer-delete-key","parameters":[{"in":"path","name":"customerId","required":true,"schema":{"type":"string"}},{"in":"path","name":"keyId","required":true,"schema":{"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"},"409":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Delete a key for a customer.","tags":["AI hosting"]},"get":{"operationId":"ai-hosting-customer-get-key","parameters":[{"in":"path","name":"customerId","required":true,"schema":{"type":"string"}},{"in":"path","name":"keyId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.aihosting.Key"}}},"description":"The key of a customer.\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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get a key of a customer.","tags":["AI hosting"]},"put":{"operationId":"ai-hosting-customer-update-key","parameters":[{"in":"path","name":"customerId","required":true,"schema":{"type":"string"}},{"in":"path","name":"keyId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"createWebuiContainer":{"type":"boolean"},"name":{"minLength":5,"type":"string"},"projectId":{"type":"string"}},"type":"object"}}},"description":"","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.aihosting.Key"}}},"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"},"409":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Update a key for a customer.","tags":["AI hosting"]}},"/v2/customers/{customerId}/ai-hosting":{"get":{"operationId":"ai-hosting-customer-get-usage","parameters":[{"in":"path","name":"customerId","required":true,"schema":{"type":"string"}},{"in":"query","name":"topUsageCount","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.aihosting.PlanOptions"}}},"description":"The customer usage and plan.\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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get ai hosting plan and usages of a customer.","tags":["AI hosting"]}},"/v2/ai-hosting-models":{"get":{"operationId":"ai-hosting-get-models","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.aihosting.Model"},"type":"array"}}},"description":"List of currently active models.\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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get a list of currently active models.","tags":["AI hosting"]}},"/v2/projects/{projectId}/ai-hosting-keys":{"post":{"operationId":"ai-hosting-project-create-key","description":"Creates a new key for a project. Same as the customer route but with required projectId. And project users can create it.","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"createWebuiContainer":{"type":"boolean"},"name":{"minLength":5,"type":"string"}},"required":["name"],"type":"object"}}},"description":"","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.aihosting.Key"}}},"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"},"409":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Creates a new key for a project.","tags":["AI hosting"]},"get":{"operationId":"ai-hosting-project-get-keys","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.aihosting.Key"},"type":"array"}}},"description":"List of keys of a project.\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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get a list of keys of a project.","tags":["AI hosting"]}},"/v2/projects/{projectId}/ai-hosting-keys/{keyId}":{"delete":{"operationId":"ai-hosting-project-delete-key","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"in":"path","name":"keyId","required":true,"schema":{"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"},"409":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Delete a key for a project.","tags":["AI hosting"]},"get":{"operationId":"ai-hosting-project-get-key","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"in":"path","name":"keyId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.aihosting.Key"}}},"description":"The key of a project.\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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get a key of a project.","tags":["AI hosting"]},"put":{"operationId":"ai-hosting-project-update-key","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"in":"path","name":"keyId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"createWebuiContainer":{"type":"boolean"},"name":{"minLength":5,"type":"string"}},"type":"object"}}},"description":"","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.aihosting.Key"}}},"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"},"409":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Update a key for a project.","tags":["AI hosting"]}},"/v2/projects/{projectId}/ai-hosting":{"get":{"operationId":"ai-hosting-project-get-usage","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"keys":{"$ref":"#/components/schemas/de.mittwald.v1.aihosting.PlanUsage"},"nextTokenReset":{"format":"date-time","type":"string"},"projectId":{"type":"string"}},"required":["keys","projectId"],"type":"object"}}},"description":"The project usage and plan.\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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get ai hosting plan and usages of a project. Same as the customer route, but less details.","tags":["AI hosting"]}},"/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"}}],"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"],"description":"This route is deprecated. Please use /v2/app-installations/{appInstallationId}/actions/{action} instead.","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"}}],"responses":{"204":{"description":"The given action has been executed."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"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"],"description":"This route is deprecated. Please use /v2/app-installations/{appInstallationId} instead.","deprecated":true},"patch":{"parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"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"],"description":"This route is deprecated. Please use /v2/app-installations/{appInstallationId} instead.","deprecated":true},"delete":{"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"}}}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Trigger an uninstallation process for an AppInstallation.","tags":["App"],"description":"This route is deprecated. Please use /v2/app-installations/{appInstallationId} instead.","deprecated":true}},"/v2/app-installations/{appInstallationId}":{"get":{"operationId":"app-get-appinstallation","parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"type":"string"}}],"responses":{"204":{"description":"The app installation is going to be deleted."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"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"],"description":"This route is deprecated. Please use /v2/app-installations/{appInstallationId}/missing-dependencies instead.","deprecated":true}},"/v2/app-installations/{appInstallationId}/missing-dependencies":{"get":{"operationId":"app-get-missing-dependencies-for-appinstallation","parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"],"description":"This route is deprecated. Please use /v2/system-softwares/{systemSoftwareId} instead.","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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"],"description":"This route is deprecated. Please use /v2/system-softwares/{systemSoftwareId}/versions/{systemSoftwareVersionId} instead.","deprecated":true}},"/v2/system-software/{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"],"description":"This route is deprecated. Please use /v2/system-softwares/{systemSoftwareId}/versions/{systemSoftwareVersionId} instead.","deprecated":true}},"/v2/system-softwares/{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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"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"},"429":{"$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 linkage between an AppInstallation and a MySQLDatabase.","tags":["App"]}},"/v2/app-installations":{"get":{"operationId":"app-list-appinstallations-for-user","parameters":[{"description":"IDs of Apps to filter for.","in":"query","name":"appIds","required":false,"schema":{"items":{"format":"uuid","type":"string"},"type":"array"}},{"description":"Search term to filter for. The fields id, shortId, description, appVersion, systemSoftwareVersion and customerId are searchable.","in":"query","name":"searchTerm","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.AppInstallation"},"type":"array"}}},"description":"Object containing the list of AppInstallations.","headers":{"X-Pagination-Limit":{"description":"The limit used to select the resources for the response","schema":{"type":"integer"}},"X-Pagination-Skip":{"description":"The number of skipped items","schema":{"type":"integer"}},"X-Pagination-Page":{"description":"The calculate page of the list response. Refer to parameters to learn more.","schema":{"type":"number"}},"X-Pagination-TotalCount":{"description":"The total amount of items available in the remote ressource. Use this value in combination with the limit to calculate the available pages.","schema":{"type":"integer"}}}},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":[{"description":"List AppInstallations belonging to a Project.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"description":"IDs of Apps to filter for.","in":"query","name":"appIds","required":false,"schema":{"items":{"format":"uuid","type":"string"},"type":"array"}},{"description":"Search term to filter for. The fields id, shortId, description, appVersion and systemSoftwareVersion are searchable.","in":"query","name":"searchTerm","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"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":"List AppInstallations belonging to a Project.","tags":["App"],"description":"This route is deprecated. Please use /v2/projects/{projectId}/app-installations instead.","deprecated":true},"post":{"parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"appVersionId":{"format":"uuid","type":"string"},"description":{"type":"string"},"installationPath":{"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"],"description":"This route is deprecated. Please use /v2/projects/{projectId}/app-installations instead.","deprecated":true}},"/v2/projects/{projectId}/app-installations":{"get":{"operationId":"app-list-appinstallations","parameters":[{"description":"List AppInstallations belonging to a Project.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"description":"IDs of Apps to filter for.","in":"query","name":"appIds","required":false,"schema":{"items":{"format":"uuid","type":"string"},"type":"array"}},{"description":"Search term to filter for. The fields id, shortId, description, appVersion and systemSoftwareVersion are searchable.","in":"query","name":"searchTerm","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.AppInstallation"},"type":"array"}}},"description":"Object containing the list of AppInstallations.","headers":{"X-Pagination-Limit":{"description":"The limit used to select the resources for the response","schema":{"type":"integer"}},"X-Pagination-Skip":{"description":"The number of skipped items","schema":{"type":"integer"}},"X-Pagination-Page":{"description":"The calculate page of the list response. Refer to parameters to learn more.","schema":{"type":"number"}},"X-Pagination-TotalCount":{"description":"The total amount of items available in the remote ressource. Use this value in combination with the limit to calculate the available pages.","schema":{"type":"integer"}}}},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"appVersionId":{"format":"uuid","type":"string"},"description":{"type":"string"},"installationPath":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Request an AppInstallation.","tags":["App"]}},"/v2/apps":{"get":{"operationId":"app-list-apps","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.app.App"},"type":"array"}}},"description":"Object containing the list of Apps.","headers":{"X-Pagination-Limit":{"description":"The limit used to select the resources for the response","schema":{"type":"integer"}},"X-Pagination-Skip":{"description":"The number of skipped items","schema":{"type":"integer"}},"X-Pagination-Page":{"description":"The calculate page of the list response. Refer to parameters to learn more.","schema":{"type":"number"}},"X-Pagination-TotalCount":{"description":"The total amount of items available in the remote ressource. Use this value in combination with the limit to calculate the available pages.","schema":{"type":"integer"}}}},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[],"summary":"List Apps.","tags":["App"],"parameters":[{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false}]}},"/v2/apps/{appId}/versions":{"get":{"operationId":"app-list-appversions","parameters":[{"in":"path","name":"appId","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.AppVersion"},"type":"array"}}},"description":"Object containing the list of AppVersions.","headers":{"X-Pagination-Limit":{"schema":{"type":"integer"}},"X-Pagination-Skip":{"schema":{"type":"integer"}},"X-Pagination-TotalCount":{"schema":{"type":"integer"}}}},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"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"],"parameters":[{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false}],"description":"This route is deprecated. Please use /v2/system-softwares instead.","deprecated":true}},"/v2/system-softwares":{"get":{"operationId":"app-list-systemsoftwares","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":{"description":"The limit used to select the resources for the response","schema":{"type":"integer"}},"X-Pagination-Skip":{"description":"The number of skipped items","schema":{"type":"integer"}},"X-Pagination-Page":{"description":"The calculate page of the list response. Refer to parameters to learn more.","schema":{"type":"number"}},"X-Pagination-TotalCount":{"description":"The total amount of items available in the remote ressource. Use this value in combination with the limit to calculate the available pages.","schema":{"type":"integer"}}}},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List SystemSoftwares.","tags":["App"],"parameters":[{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false}]}},"/v2/system-software/{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"],"description":"This route is deprecated. Please use /v2/system-softwares/{systemSoftwareId}/versions instead.","deprecated":true}},"/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"],"description":"This route is deprecated. Please use /v2/system-softwares/{systemSoftwareId}/versions instead.","deprecated":true}},"/v2/system-softwares/{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":"integer"}},"X-Pagination-Skip":{"schema":{"type":"integer"}},"X-Pagination-TotalCount":{"schema":{"type":"integer"}}}},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"integer"}},"X-Pagination-Skip":{"schema":{"type":"integer"}},"X-Pagination-TotalCount":{"schema":{"type":"integer"}}}},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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/app-installations/{appInstallationId}/database/replace":{"patch":{"operationId":"app-replace-database","parameters":[{"description":"The ID of the appinstallation you want the database to be replaced for.","in":"path","name":"appInstallationId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"databaseUserIds":{"additionalProperties":{"type":"string"},"description":"The IDs of the users of the database you want the old database to be replaced with.","type":"object"},"newDatabaseId":{"description":"The ID of the database you want the old database to be replaced with.","format":"uuid","type":"string"},"oldDatabaseId":{"description":"The ID of the database you want to be replaced.","format":"uuid","type":"string"}},"required":["oldDatabaseId","newDatabaseId"],"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Replace a MySQL Database with another MySQL Database.","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"},"installationPath":{"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"],"description":"This route is deprecated. Please use /v2/app-installations/{appInstallationId}/actions/copy instead.","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"},"installationPath":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"],"description":"This route is deprecated. Please use /v2/app-installations/{appInstallationId}/status instead.","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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"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"],"description":"This route is deprecated. Please use /v2/app-installations/{appInstallationId}/databases/{databaseId}/users instead.","deprecated":true},"delete":{"operationId":"app-unlink-database","parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"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"],"description":"This route is deprecated. Please use /v2/app-installations/{appInstallationId}/databases/{databaseId}/users instead.","deprecated":true},"delete":{"parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"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"],"description":"This route is deprecated. Please use /v2/app-installations/{appInstallationId}/databases/{databaseId} instead.","deprecated":true}},"/v2/app-installations/{appInstallationId}/databases/{databaseId}/users":{"put":{"operationId":"app-set-database-users","parameters":[{"in":"path","name":"appInstallationId","required":true,"schema":{"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"},"429":{"$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 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"}},{"deprecated":true,"description":"not in use.","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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[],"summary":"Get an Article.","tags":["Article"]}},"/v2/articles":{"get":{"operationId":"article-list-articles","parameters":[{"deprecated":true,"description":"not in use.","example":"123e4567-e89b-12d3-a456-426614174000","in":"query","name":"customerId","required":false,"schema":{"type":"string"}},{"description":"Filters articles that contain at least one of the specified tags (logical OR).","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"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.article.ReadableArticle"},"type":"array"}}},"description":"Object containing the list of Articles","headers":{"X-Pagination-Limit":{"description":"The limit used to select the resources for the response","schema":{"type":"integer"}},"X-Pagination-Skip":{"description":"The number of skipped items","schema":{"type":"integer"}},"X-Pagination-Page":{"description":"The calculate page of the list response. Refer to parameters to learn more.","schema":{"type":"number"}},"X-Pagination-TotalCount":{"description":"The total amount of items available in the remote ressource. Use this value in combination with the limit to calculate the available pages.","schema":{"type":"integer"}}}},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"type":"string"}}],"responses":{"204":{"description":"NoContent"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"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"},"429":{"$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 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":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.backup.ProjectBackupSchedule"},"type":"array"}}},"description":"OK"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"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"},"429":{"$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 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":{"type":"string"}},{"description":"Search term to list Project Backups for. The fields id and description are searchable.","in":"query","name":"searchTerm","required":false,"schema":{"type":"string"}},{"description":"If true, only backups with exports will be listed.","in":"query","name":"withExportsOnly","required":false,"schema":{"type":"boolean"}},{"description":"Sort order for listing backups. Defaults to backup_sort_order_oldest_first.","in":"query","name":"sortOrder","required":false,"schema":{"$ref":"#/components/schemas/de.mittwald.v1.backup.BackupSortOrder"}},{"description":"If true, only backup with running restores will be listed.","in":"query","name":"runningRestoresOnly","required":false,"schema":{"type":"boolean"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","default":1000,"minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.backup.ProjectBackup"},"type":"array"}}},"description":"OK","headers":{"X-Pagination-Limit":{"description":"The limit used to select the resources for the response","schema":{"type":"integer"}},"X-Pagination-Skip":{"description":"The number of skipped items","schema":{"type":"integer"}},"X-Pagination-Page":{"description":"The calculate page of the list response. Refer to parameters to learn more.","schema":{"type":"number"}},"X-Pagination-TotalCount":{"description":"The total amount of items available in the remote ressource. Use this value in combination with the limit to calculate the available pages.","schema":{"type":"integer"}}}},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"}}},"required":false},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"type":"string"}}],"responses":{"204":{"description":"NoContent"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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}/database-dumps":{"get":{"operationId":"backup-get-project-backup-database-dumps-v2-experimental","parameters":[{"description":"UUID of the Project Backup to get the database dump's for.","in":"path","name":"projectBackupId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"databases":{"items":{"type":"string"},"type":"array"}},"required":["databases"],"type":"object"}}},"description":"OK"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"502":{"$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 database dump's for a ProjectBackup.","tags":["Backup"]}},"/v2/project-backups/{projectBackupId}/path":{"get":{"operationId":"backup-get-project-backup-directories","parameters":[{"description":"UUID of the Project Backup to get the table of contents for.","in":"path","name":"projectBackupId","required":true,"schema":{"type":"string"}},{"description":"The directory to start listing subdirectories from.","in":"query","name":"directory","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.backup.ProjectBackupPath"}}},"description":"OK"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"502":{"$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 paths for a ProjectBackup.","tags":["Backup"]}},"/v2/project-backups/{projectBackupId}/expiration-time":{"put":{"operationId":"backup-replace-project-backup-expiration-time","parameters":[{"description":"ID of the ProjectBackup to update the expiration time of.","in":"path","name":"projectBackupId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"expirationTime":{"description":"Time when to expire the Backup.","format":"date-time","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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a Backup's expiration time.","tags":["Backup"]}},"/v2/project-backups/{projectBackupId}/restore-path":{"post":{"operationId":"backup-request-project-backup-restore-path-deprecated","deprecated":true,"description":"**Deprecated**: Use POST /v2/project-backups/{projectBackupId}/restore instead.\nThis endpoint will be removed in a future version.\n","parameters":[{"description":"ID of the ProjectBackup to restore the path.","in":"path","name":"projectBackupId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.backup.ProjectBackupRestorePathRequestDeprecated"}}}},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Restore a ProjectBackup's path.","tags":["Backup"]}},"/v2/project-backups/{projectBackupId}/restore":{"post":{"operationId":"backup-request-project-backup-restore-v2-experimental","parameters":[{"description":"ID of the ProjectBackup to restore.","in":"path","name":"projectBackupId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.backup.ProjectBackupRestoreRequest"}}}},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Restore 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":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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/projects/{projectId}/registries":{"post":{"operationId":"container-create-registry","parameters":[{"description":"ID of the Project to create a Registry for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.container.CreateRegistry"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.container.Registry"}}},"description":"Created"},"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"},"409":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"Create a Registry.","tags":["Container"]},"get":{"operationId":"container-list-registries","parameters":[{"description":"ID of the Project to get Registries for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"description":"Filters the list depending on whether registry credentials exist.","in":"query","name":"hasCredentials","required":false,"schema":{"type":"boolean"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","default":1000,"minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.container.Registry"},"type":"array"}}},"description":"OK","headers":{"X-Pagination-Limit":{"description":"The limit used to select the resources for the response","schema":{"type":"integer"}},"X-Pagination-Skip":{"description":"The number of skipped items","schema":{"type":"integer"}},"X-Pagination-Page":{"description":"The calculate page of the list response. Refer to parameters to learn more.","schema":{"type":"number"}},"X-Pagination-TotalCount":{"description":"The total amount of items available in the remote ressource. Use this value in combination with the limit to calculate the available pages.","schema":{"type":"integer"}}}},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"List Registries belonging to a Project.","tags":["Container"]}},"/v2/stacks/{stackId}":{"put":{"operationId":"container-declare-stack","parameters":[{"description":"ID of the Stack to create, update or delete Services or Volumes for.","in":"path","name":"stackId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"services":{"additionalProperties":{"$ref":"#/components/schemas/de.mittwald.v1.container.ServiceDeclareRequest"},"description":"A set of containers that should be started in this stack. The key is relevant for\nnetwork connectivity between containers, because you can use it as DNS name to\nresolve this containers from other containers running in the same project (or from\nmanaged apps running in the same project).\n\nTo **delete** an existing container from a stack using a `PUT` request, simply omit\nit from the request body. Using a `PATCH` request, set it to an empty object `{}`.\n","type":"object"},"volumes":{"additionalProperties":{"$ref":"#/components/schemas/de.mittwald.v1.container.VolumeDeclareRequest"},"description":"A set of named volumes that should be created for this stack. Removing a volume\nfrom this set will not delete the volume (for safety), but only detach it from the\nstack. To delete a volume, use the `DELETE /stacks/{stackId}/volumes/{volumeId}` endpoint.\n","type":"object"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.container.StackResponse"}}},"description":"OK"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"Declaratively create, update or delete Services or Volumes belonging to a Stack.","tags":["Container"]},"get":{"operationId":"container-get-stack","parameters":[{"description":"ID of the Stack to be retrieved.","in":"path","name":"stackId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.container.StackResponse"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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 Stack.","tags":["Container"]},"patch":{"operationId":"container-update-stack","parameters":[{"description":"ID of the Stack to create, update or delete Services or Volumes for.","in":"path","name":"stackId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"Whether to recreate Services belonging to a Stack.","in":"query","name":"recreate","required":false,"schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"services":{"additionalProperties":{"$ref":"#/components/schemas/de.mittwald.v1.container.ServiceRequest"},"type":"object"},"volumes":{"additionalProperties":{"$ref":"#/components/schemas/de.mittwald.v1.container.VolumeRequest"},"description":"Volumes belonging to a Stack. Removing results in a detach, delete must be explicit.","type":"object"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.container.StackResponse"}}},"description":"OK"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"Create, update or delete Services or Volumes belonging to a Stack.","tags":["Container"]}},"/v2/registries/{registryId}":{"delete":{"operationId":"container-delete-registry","parameters":[{"description":"ID if the Registry to be deleted.","in":"path","name":"registryId","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"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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 Registry.","tags":["Container"]},"get":{"operationId":"container-get-registry","parameters":[{"description":"ID of the Registry to be retrieved.","in":"path","name":"registryId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.container.Registry"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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 Registry.","tags":["Container"]},"patch":{"operationId":"container-update-registry","parameters":[{"description":"ID of the Registry to be updated.","in":"path","name":"registryId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.container.UpdateRegistry"}}},"required":false},"responses":{"204":{"description":"NoContent"},"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"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"Update a Registry.","tags":["Container"]}},"/v2/stacks/{stackId}/volumes/{volumeId}":{"delete":{"operationId":"container-delete-volume","parameters":[{"description":"ID of the Stack the Volume belongs too. ID of the default Stack equals the ID of the Project.","in":"path","name":"stackId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"ID of the Volume to be deleted.","in":"path","name":"volumeId","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"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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 Volume belonging to a Stack.","tags":["Container"]},"get":{"operationId":"container-get-volume","parameters":[{"description":"ID of the Stack the Volume belongs too. ID of the default Stack equals the ID of the Project.","in":"path","name":"stackId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"ID of the Volume to be retrieved.","in":"path","name":"volumeId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.container.VolumeResponse"}}},"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"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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 Volume belonging to a Stack.","tags":["Container"]}},"/v2/container-image-config":{"get":{"operationId":"container-get-container-image-config","parameters":[{"description":"The image reference to get a ContainerImageConfig for.","in":"query","name":"imageReference","required":true,"schema":{"example":"mysql","type":"string"}},{"description":"ID of the Project to get a ContainerImageConfig with belonging Registry credentials for.","in":"query","name":"useCredentialsForProjectId","required":false,"schema":{"format":"uuid","type":"string"}},{"description":"ID of the Registry to get a ContainerImageConfig with credentials for.","in":"query","name":"useCredentialsForRegistryId","required":false,"schema":{"format":"uuid","type":"string"}},{"description":"Whether ai data should be generated during request. The request duration can take up to 15 seconds.","in":"query","name":"generateAiData","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.container.ContainerImageConfig"}}},"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"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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 ContainerImageConfig.","tags":["Container"]}},"/v2/stacks/{stackId}/services/{serviceId}/logs":{"get":{"operationId":"container-get-service-logs","parameters":[{"description":"ID of the Stack the Service belongs to. ID of the default Stack equals the ID of the Project.","in":"path","name":"stackId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"ID of the Service to get logs for.","in":"path","name":"serviceId","required":true,"schema":{"type":"string"}},{"description":"Number of last log lines to return. Returns full log if not set.","in":"query","name":"tail","required":false,"schema":{"format":"int64","type":"integer"}}],"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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 logs belonging to a Service.","tags":["Container"]}},"/v2/stacks/{stackId}/services/{serviceId}":{"get":{"operationId":"container-get-service","parameters":[{"description":"ID of the Stack the Service belongs to. ID of the default Stack equals the ID of the Project.","in":"path","name":"stackId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"ID of the Service to be retrieved.","in":"path","name":"serviceId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.container.ServiceResponse"}}},"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"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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 Service belonging to a Stack.","tags":["Container"]}},"/v2/stacks":{"get":{"operationId":"container-list-self-stacks","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.container.StackResponse"},"type":"array"}}},"description":"OK","headers":{"X-Pagination-Limit":{"description":"The limit used to select the resources for the response","schema":{"type":"integer"}},"X-Pagination-Skip":{"description":"The number of skipped items","schema":{"type":"integer"}},"X-Pagination-Page":{"description":"The calculate page of the list response. Refer to parameters to learn more.","schema":{"type":"number"}},"X-Pagination-TotalCount":{"description":"The total amount of items available in the remote ressource. Use this value in combination with the limit to calculate the available pages.","schema":{"type":"integer"}}}},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"List Stacks belonging to the executing user.","tags":["Container"],"parameters":[{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","default":1000,"minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false}]}},"/v2/projects/{projectId}/services":{"get":{"operationId":"container-list-services","parameters":[{"description":"ID of the Project to list Services for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"description":"ID of the Stack to list Services for.","in":"query","name":"stackId","schema":{"format":"uuid","type":"string"}},{"description":"Filters the list with given status.","in":"query","name":"status","schema":{"$ref":"#/components/schemas/de.mittwald.v1.container.ServiceStatus"}},{"description":"Filters the list depending on whether services requires recreate.","in":"query","name":"requiresRecreate","schema":{"type":"boolean"}},{"description":"Search term to list Service for. The fields id, shortId, stackId, projectId, serviceName, message and description are searchable.","in":"query","name":"searchTerm","schema":{"type":"string"}},{"description":"Sorts the list with given order.","in":"query","name":"sortOrder","schema":{"$ref":"#/components/schemas/de.mittwald.v1.container.ServiceSortOrder"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","default":1000,"minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.container.ServiceResponse"},"type":"array"}}},"description":"OK","headers":{"X-Pagination-Limit":{"description":"The limit used to select the resources for the response","schema":{"type":"integer"}},"X-Pagination-Skip":{"description":"The number of skipped items","schema":{"type":"integer"}},"X-Pagination-Page":{"description":"The calculate page of the list response. Refer to parameters to learn more.","schema":{"type":"number"}},"X-Pagination-TotalCount":{"description":"The total amount of items available in the remote ressource. Use this value in combination with the limit to calculate the available pages.","schema":{"type":"integer"}}}},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"List Services belonging to a Project.","tags":["Container"]}},"/v2/stacks/{stackId}/volumes":{"get":{"operationId":"container-list-stack-volumes","parameters":[{"description":"ID of the Stack to list Volumes for.","in":"path","name":"stackId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"Search term to list Volumes for. The field name is searchable.","in":"query","name":"searchTerm","schema":{"type":"string"}},{"description":"Sorts the list with given order.","in":"query","name":"sortOrder","schema":{"$ref":"#/components/schemas/de.mittwald.v1.container.VolumeSortOrder"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","default":1000,"minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.container.VolumeResponse"},"type":"array"}}},"description":"OK","headers":{"X-Pagination-Limit":{"description":"The limit used to select the resources for the response","schema":{"type":"integer"}},"X-Pagination-Skip":{"description":"The number of skipped items","schema":{"type":"integer"}},"X-Pagination-Page":{"description":"The calculate page of the list response. Refer to parameters to learn more.","schema":{"type":"number"}},"X-Pagination-TotalCount":{"description":"The total amount of items available in the remote ressource. Use this value in combination with the limit to calculate the available pages.","schema":{"type":"integer"}}}},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"List Volumes belonging to a Stack.","tags":["Container"]}},"/v2/projects/{projectId}/stacks":{"get":{"operationId":"container-list-stacks","parameters":[{"description":"ID of the Project to list Stacks for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","default":1000,"minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.container.StackResponse"},"type":"array"}}},"description":"OK","headers":{"X-Pagination-Limit":{"description":"The limit used to select the resources for the response","schema":{"type":"integer"}},"X-Pagination-Skip":{"description":"The number of skipped items","schema":{"type":"integer"}},"X-Pagination-Page":{"description":"The calculate page of the list response. Refer to parameters to learn more.","schema":{"type":"number"}},"X-Pagination-TotalCount":{"description":"The total amount of items available in the remote ressource. Use this value in combination with the limit to calculate the available pages.","schema":{"type":"integer"}}}},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"List Stacks belonging to a Project.","tags":["Container"]}},"/v2/projects/{projectId}/volumes":{"get":{"operationId":"container-list-volumes","parameters":[{"description":"ID of the Stack to list Volumes for.","in":"query","name":"stackId","schema":{"format":"uuid","type":"string"}},{"description":"ID of the Project to list Volumes for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"description":"Search term to list Volumes for. The field name is searchable.","in":"query","name":"searchTerm","schema":{"type":"string"}},{"description":"Sorts the list with given order.","in":"query","name":"sortOrder","schema":{"$ref":"#/components/schemas/de.mittwald.v1.container.VolumeSortOrder"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","default":1000,"minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.container.VolumeResponse"},"type":"array"}}},"description":"OK","headers":{"X-Pagination-Limit":{"description":"The limit used to select the resources for the response","schema":{"type":"integer"}},"X-Pagination-Skip":{"description":"The number of skipped items","schema":{"type":"integer"}},"X-Pagination-Page":{"description":"The calculate page of the list response. Refer to parameters to learn more.","schema":{"type":"number"}},"X-Pagination-TotalCount":{"description":"The total amount of items available in the remote ressource. Use this value in combination with the limit to calculate the available pages.","schema":{"type":"integer"}}}},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"List Volumes belonging to a Project.","tags":["Container"]}},"/v2/stacks/{stackId}/services/{serviceId}/actions/pull":{"post":{"operationId":"container-pull-image-for-service","description":"Pulls the latest image for this container and recreates it.\n\nYou can skip re-creation by setting the `skipRecreate` query parameter.\n","parameters":[{"description":"ID of the Stack to pull the image of a Service for.","in":"path","name":"stackId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"ID of the Service to pull the image for.","in":"path","name":"serviceId","required":true,"schema":{"type":"string"}},{"description":"Whether to skip the Service recreate after pulling the image.","in":"query","name":"skipRecreate","required":false,"schema":{"type":"boolean"}}],"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"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"Pull image and recreate","tags":["Container"]}},"/v2/stacks/{stackId}/services/{serviceId}/actions/recreate":{"post":{"operationId":"container-recreate-service","parameters":[{"description":"ID of the Stack to recreate a Service for.","in":"path","name":"stackId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"ID of the Service to recreate.","in":"path","name":"serviceId","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"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"Recreate a Service.","tags":["Container"]}},"/v2/stacks/{stackId}/services/{serviceId}/actions/restart":{"post":{"operationId":"container-restart-service","parameters":[{"description":"ID of the Stack to restart a Service for.","in":"path","name":"stackId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"ID of the Service to restart.","in":"path","name":"serviceId","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"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"Restart a started Service.","tags":["Container"]}},"/v2/stacks/{stackId}/update-schedule":{"put":{"operationId":"container-set-stack-update-schedule","parameters":[{"description":"ID of the Stack to set an update schedule for.","in":"path","name":"stackId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"updateSchedule":{"nullable":true,"properties":{"cron":{"example":"* * * * *","type":"string"},"timezone":{"description":"Valid timezones can be retrieved via GET /v2/time-zones","example":"Europe/Berlin","type":"string"}},"required":["cron"],"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"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"Set an update schedule for a Stack.","tags":["Container"]}},"/v2/stacks/{stackId}/services/{serviceId}/actions/start":{"post":{"operationId":"container-start-service","parameters":[{"description":"ID of the Stack to start a Service for.","in":"path","name":"stackId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"ID of the Service to start.","in":"path","name":"serviceId","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"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"Start a stopped Service.","tags":["Container"]}},"/v2/stacks/{stackId}/services/{serviceId}/actions/stop":{"post":{"operationId":"container-stop-service","parameters":[{"description":"ID of the Stack to stop a Service for.","in":"path","name":"stackId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"ID of the Service to stop.","in":"path","name":"serviceId","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"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"Stop a started Service.","tags":["Container"]}},"/v2/actions/validate-container-registry-uri":{"post":{"operationId":"container-validate-container-registry-uri","requestBody":{"content":{"application/json":{"schema":{"description":"The Registry URI to validate.","properties":{"registryUri":{"type":"string"}},"required":["registryUri"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"reason":{"type":"string"},"valid":{"type":"boolean"}},"required":["valid"],"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"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"Validate a Registries' URI.","tags":["Container"]}},"/v2/registries/{registryId}/actions/validate-credentials":{"post":{"operationId":"container-validate-registry-credentials","parameters":[{"description":"ID if the Registry to validate the credentials for.","in":"path","name":"registryId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"valid":{"type":"boolean"}},"required":["valid"],"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"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"Validate a Registries' credentials.","tags":["Container"]}},"/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.","examples":{"shortId":{"value":"V1000000"},"uuid":{"value":"7cecfa0-2c3c-4272-a510-c775fcaade01"}},"in":"path","name":"contractId","required":true,"schema":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":[{"examples":{"shortId":{"value":"V1000000"},"uuid":{"value":"7cecfa0-2c3c-4272-a510-c775fcaade01"}},"in":"path","name":"contractId","required":true,"schema":{"type":"string"}},{"example":"d6913c2b-6be6-4036-b207-d9c125f6f93e","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"},"explanation":{"example":"I consolidated multiple servers into one instance to reduce overhead","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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":[{"examples":{"shortId":{"value":"V1000000"},"uuid":{"value":"7cecfa0-2c3c-4272-a510-c775fcaade01"}},"in":"path","name":"contractId","required":true,"schema":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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","examples":{"shortId":{"value":"V1000000"},"uuid":{"value":"7cecfa0-2c3c-4272-a510-c775fcaade01"}},"in":"path","name":"contractId","required":true,"schema":{"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"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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.","examples":{"shortId":{"value":"V1000000"},"uuid":{"value":"7cecfa0-2c3c-4272-a510-c775fcaade01"}},"in":"path","name":"contractId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"explanation":{"example":"The website for my temporary project is no longer needed","type":"string"},"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"},"explanation":{"example":"The website for my temporary project is no longer needed","type":"string"},"itemsScheduledForTermination":{"items":{"format":"uuid","type":"string"},"type":"array"},"reason":{"example":"Projekt wird nicht mehr benötigt","type":"string"},"terminationTargetDate":{"format":"date-time","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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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.","examples":{"shortId":{"value":"V1000000"},"uuid":{"value":"7cecfa0-2c3c-4272-a510-c775fcaade01"}},"in":"path","name":"contractId","required":true,"schema":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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/customers/{customerId}/ai-hosting/contract":{"get":{"operationId":"contract-get-detail-of-contract-by-ai-hosting","parameters":[{"examples":{"shortId":{"value":"1000026"},"uuid":{"value":"13eac206-ada6-4ac8-a4c0-21b263df6cbf"}},"in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.contract.Contract"}}},"description":"Return the AI Hosting Contract for the given Customer."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Return the AI Hosting Contract for the given Customer.","tags":["Contract"]}},"/v2/certificates/{certificateId}/contract":{"get":{"operationId":"contract-get-detail-of-contract-by-certificate","parameters":[{"example":"0a6de990-b33f-4cf8-adba-025a26515657","in":"path","name":"certificateId","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 Certificate."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Return the Contract for the given Certificate.","tags":["Contract"]}},"/v2/domains/{domainId}/contract":{"get":{"operationId":"contract-get-detail-of-contract-by-domain","parameters":[{"examples":{"shortId":{"value":"my-domain.de"},"uuid":{"value":"0a6de990-b33f-4cf8-adba-025a26515657"}},"in":"path","name":"domainId","required":true,"schema":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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/customers/{customerId}/lead-fyndr-profile/contract":{"get":{"operationId":"contract-get-detail-of-contract-by-lead-fyndr","parameters":[{"examples":{"shortId":{"value":"1000026"},"uuid":{"value":"13eac206-ada6-4ac8-a4c0-21b263df6cbf"}},"in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.contract.Contract"}}},"description":"Returns an active Contract for the given LeadFyndrProfile."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Return the Contract for the given LeadFyndrProfile.","tags":["Contract"]}},"/v2/licenses/{licenseId}/contract":{"get":{"operationId":"contract-get-detail-of-contract-by-license","parameters":[{"examples":{"uuid":{"value":"0113d05e-7f30-4811-a227-1942e5d64ed6"}},"in":"path","name":"licenseId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.contract.Contract"}}},"description":"Returns an active Contract for the given License."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Return the Contract for the given License.","tags":["Contract"]}},"/v2/mail-addresses/{mailAddressId}/contract":{"get":{"operationId":"contract-get-detail-of-contract-by-mail-address","parameters":[{"example":"d3fe766e-1d34-40f0-9c27-611e3b654fca","in":"path","name":"mailAddressId","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 Mail Address."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Return the Contract for the given Mail Address.","tags":["Contract"]}},"/v2/projects/{projectId}/contract":{"get":{"operationId":"contract-get-detail-of-contract-by-project","parameters":[{"examples":{"shortId":{"value":"p-pkrjw1"},"uuid":{"value":"95e64f67-a49e-4446-968c-f74da2df3a9d"}},"in":"path","name":"projectId","required":true,"schema":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":[{"examples":{"shortId":{"value":"s-ttgn7c"},"uuid":{"value":"173a25fe-5f53-45d4-adc1-9b4743aa4d57"}},"in":"path","name":"serverId","required":true,"schema":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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.","examples":{"shortId":{"value":"V1000000"},"uuid":{"value":"7cecfa0-2c3c-4272-a510-c775fcaade01"}},"in":"path","name":"contractId","required":true,"schema":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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.","examples":{"shortId":{"value":"V1000000"},"uuid":{"value":"7cecfa0-2c3c-4272-a510-c775fcaade01"}},"in":"path","name":"contractId","required":true,"schema":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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/customers/{customerId}/contracts":{"get":{"operationId":"contract-list-contracts","parameters":[{"description":"The uuid of the Customer from whom all Contracts are to be returned.","examples":{"shortId":{"value":"1000026"},"uuid":{"value":"13eac206-ada6-4ac8-a4c0-21b263df6cbf"}},"in":"path","name":"customerId","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","default":1000,"minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false}],"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.","headers":{"X-Pagination-Limit":{"description":"The limit used to select the resources for the response","schema":{"type":"integer"}},"X-Pagination-Skip":{"description":"The number of skipped items","schema":{"type":"integer"}},"X-Pagination-Page":{"description":"The calculate page of the list response. Refer to parameters to learn more.","schema":{"type":"number"}},"X-Pagination-TotalCount":{"description":"The total amount of items available in the remote ressource. Use this value in combination with the limit to calculate the available pages.","schema":{"type":"integer"}}}},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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}/verification-process":{"delete":{"operationId":"contributor-cancel-verification","parameters":[{"in":"path","name":"contributorId","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"The verification process has been cancelled."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Cancel the verification-process of a contributor.","tags":["Marketplace"]},"post":{"operationId":"contributor-request-verification","parameters":[{"in":"path","name":"contributorId","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"The verification process has been started."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Start the verification process of a contributor.","tags":["Marketplace"]}},"/v2/contributors/{contributorId}":{"delete":{"operationId":"contributor-delete-contributor","parameters":[{"in":"path","name":"contributorId","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"The Contributor has been deleted."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"412":{"description":"The contributor still has subresources like OAuth2 Clients or Extensions and therefore can't be deleted"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a Contributor.","tags":["Marketplace"]},"patch":{"operationId":"contributor-patch-contributor","parameters":[{"in":"path","name":"contributorId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"contactPersonUserId":{"type":"string"},"descriptions":{"allOf":[{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.LocalizedDescription"}],"nullable":true},"deviatingContractOwner":{"allOf":[{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ContractOwner"}],"nullable":true},"deviatingName":{"type":"string"},"deviatingSupportInformation":{"allOf":[{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.SupportMeta"}],"nullable":true},"homepage":{"type":"string"},"imprint":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ContributorImprint"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.OwnContributor"}}},"description":"Contributor has been patched."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Patch Contributor.","tags":["Marketplace"]},"get":{"operationId":"extension-get-contributor","parameters":[{"in":"path","name":"contributorId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.Contributor"},{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.OwnContributor"}]}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[],"summary":"Get a Contributor.","tags":["Marketplace"]}},"/v2/customers/{customerId}/contributor":{"post":{"operationId":"contributor-express-interest-to-contribute","parameters":[{"description":"The ID of the customer who wants to be a contributor.","in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"deviatingContactPersonUserId":{"description":"A user, which can be contacted by mittwald, if problems arise. If not defined, the contact person will be the executing user. The user has to be a member of the underlying customer.","format":"uuid","type":"string"},"deviatingContractOwner":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Contact"},"deviatingName":{"type":"string"},"deviatingSupportInformation":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.SupportMeta"},"imprint":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ContributorImprint"}},"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string"}},"required":["id"],"type":"object"}}},"description":"Customer became an unverified contributor."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Express interest to be a contributor.","tags":["Marketplace"]}},"/v2/contributors/{contributorId}/billing-information":{"get":{"operationId":"contributor-get-billing-information","parameters":[{"examples":{"shortId":{"value":"1900000"},"uuid":{"value":"72830cb2-b5b9-4f86-b6f5-e12e13787af6"}},"in":"path","name":"contributorId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"contributorId":{"format":"uuid","type":"string"},"invoiceFooter":{"type":"string"},"onboardingStatus":{"enum":["NOT_STARTED","STARTED","SUCCESSFUL"],"type":"string"},"stripeAccountId":{"type":"string"}},"type":"object"}}},"description":"The billing related information of the Contributor"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get Contributor Billing Information.","tags":["Marketplace"]},"put":{"operationId":"contributor-update-billing-information","parameters":[{"examples":{"shortId":{"value":"1900000"},"uuid":{"value":"72830cb2-b5b9-4f86-b6f5-e12e13787af6"}},"in":"path","name":"contributorId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"invoiceFooter":{"example":"USTID-Nr: DE123456789","type":"string"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"contributorId":{"format":"uuid","type":"string"},"invoiceFooter":{"type":"string"}},"type":"object"}}},"description":"The billing related information of the Contributor"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update Contributor Billing Information.","tags":["Marketplace"]}},"/v2/customers/{customerId}/billing-portal":{"get":{"operationId":"contributor-get-customer-billing-portal-link","description":"Get the Stripe Billing Portal Link for a Customer.","parameters":[{"examples":{"shortId":{"value":"1000026"},"uuid":{"value":"13eac206-ada6-4ac8-a4c0-21b263df6cbf"}},"in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"url":{"type":"string"}},"type":"object"}}},"description":"The generated link to the Stripe Billing Portal"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get the Stripe Billing Portal Link for a Customer","tags":["Marketplace"]}},"/v2/contributors/{contributorId}/dashboard":{"get":{"operationId":"contributor-get-login-link","description":"Get the Stripe Dashboard Link for a Contributor.","parameters":[{"examples":{"shortId":{"value":"1900000"},"uuid":{"value":"72830cb2-b5b9-4f86-b6f5-e12e13787af6"}},"in":"path","name":"contributorId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"url":{"type":"string"}},"type":"object"}}},"description":"The generated link to the Stripe dashboard"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get the Stripe Dashboard Link for a Contributor.","tags":["Marketplace"]}},"/v2/contributors/{contributorId}/contract-partners":{"get":{"operationId":"contributor-list-contract-partners-of-contributor","parameters":[{"in":"path","name":"contributorId","required":true,"schema":{"type":"string"}},{"in":"query","name":"extensionId","required":false,"schema":{"format":"uuid","type":"string"}},{"description":"Returns an array with a single result.","in":"query","name":"extensionInstanceId","required":false,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ContractPartner"},"type":"array"}}},"description":"A list of contract partners."},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List ContractPartners of the contributor.","tags":["Marketplace"]}},"/v2/contributors/{contributorId}/invoices/incoming":{"get":{"operationId":"contributor-list-incoming-invoices","parameters":[{"example":"ac3c8bbe-4c44-4f34-b6c7-1e6af48c3a7c","in":"path","name":"contributorId","required":true,"schema":{"type":"string"}},{"description":"Search Invoice by number or id","example":"RG7545","in":"query","name":"search","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false},{"name":"sort","in":"query","description":"List of fields how the result should be sorted.","schema":{"type":"array","items":{"type":"string","enum":["invoiceNumber"]},"default":["invoiceNumber"]},"required":false},{"name":"order","in":"query","description":"Should the result be sorted ascending or descending? You can specify for each field another sorting: sort[0]=foo, order[0]=asc, sort[1]=bar, order[1]=desc.","schema":{"type":"array","items":{"type":"string","enum":["asc","desc"]},"default":["desc"]},"required":false}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"currency":{"example":"EUR","type":"string"},"customerId":{"example":"6439a2f4-5de2-4314-bae2-b6edb4eb4c37","type":"string"},"customerName":{"example":"Meine Organisation","type":"string"},"customerNumber":{"example":"4151123","type":"string"},"date":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"invoiceNumber":{"example":"RG1234567","type":"string"},"invoiceType":{"enum":["REGULAR","CORRECTION","REISSUE","CANCELLATION"],"type":"string"},"pdfId":{"format":"uuid","type":"string"},"recipient":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.Recipient"},"totalGross":{"example":595,"type":"number"},"totalNet":{"example":500,"type":"number"}},"required":["id","invoiceNumber","customerId","customerNumber","customerName","date","pdfId","recipient","totalNet","totalGross","currency"],"type":"object"},"type":"array"}}},"description":"List of incoming Invoices","headers":{"X-Pagination-Limit":{"description":"The limit used to select the resources for the response","schema":{"type":"integer"}},"X-Pagination-Skip":{"description":"The number of skipped items","schema":{"type":"integer"}},"X-Pagination-Page":{"description":"The calculate page of the list response. Refer to parameters to learn more.","schema":{"type":"number"}},"X-Pagination-TotalCount":{"description":"The total amount of items available in the remote ressource. Use this value in combination with the limit to calculate the available pages.","schema":{"type":"integer"}}}},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List incoming Invoices of a Contributor.","tags":["Marketplace"]}},"/v2/contributors/{contributorId}/invoices/outgoing":{"get":{"operationId":"contributor-list-onbehalf-invoices","description":"List all invoices on behalf of a contributor.","parameters":[{"examples":{"shortId":{"value":"1900000"},"uuid":{"value":"72830cb2-b5b9-4f86-b6f5-e12e13787af6"}},"in":"path","name":"contributorId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"invoiceDate":{"format":"date-time","type":"string"},"invoiceId":{"type":"string"},"invoiceNumber":{"type":"string"},"invoiceType":{"enum":["INVOICE","CREDIT_NOTE"],"type":"string"},"pdfLink":{"type":"string"},"totalGross":{"type":"number"},"totalNet":{"type":"number"},"webLink":{"type":"string"}},"required":["invoiceId","invoiceNumber","invoiceDate","totalNet","totalGross","pdfLink","invoiceType"],"type":"object"},"type":"array"}}},"description":"The list of invoices on behalf of a contributor."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List all invoices on behalf of a contributor.","tags":["Marketplace"]}},"/v2/contributors/{contributorId}/invoices/incoming/{contributorReceiptId}/file-access-token":{"get":{"operationId":"contributor-receipt-get-file-access-token","parameters":[{"example":"b1b6303f-2fb9-44f5-9f7f-bc91a8f6d80e","in":"path","name":"contributorId","required":true,"schema":{"type":"string"}},{"example":"98ec55a7-3702-4800-b006-7ceec4ff52f5","in":"path","name":"contributorReceiptId","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 Incoming Invoice file."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Request an Access Token for the Incoming Invoice file.","tags":["Marketplace"]}},"/v2/contributors/{contributorId}/avatar":{"post":{"operationId":"contributor-request-deviating-contributor-avatar-upload","parameters":[{"in":"path","name":"contributorId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"avatarRefId":{"description":"Use the avatarRefId as updload token at `/v2/files/{logoRefId}`.","format":"uuid","type":"string"},"rules":{"description":"Constraints for the logo image upload.","properties":{"extensions":{"items":{"example":".png","type":"string"},"type":"array"},"fileTypes":{"items":{"properties":{"extensions":{"items":{"example":".png","type":"string"},"type":"array"},"mimeType":{"example":"image/png","type":"string"}},"required":["mimeType","extensions"],"type":"object"},"type":"array"},"maxSizeInBytes":{"type":"integer"},"mimeTypes":{"items":{"example":"image/png","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"}},"required":["min","max"],"type":"object"}},"type":"object"}},"required":["mimeTypes","extensions","fileTypes","maxSizeInBytes"],"type":"object"}},"required":["avatarRefId","rules"],"type":"object"}}},"description":"The Upload of an avatar for the contributor has been requested."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Add a deviating avatar to a Contributor.","tags":["Marketplace"]},"delete":{"operationId":"contributor-reset-contributor-avatar","parameters":[{"in":"path","name":"contributorId","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Returned to the inherited customer avatar."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete deviating contributor avatar und return to the inherited customer avatar.","tags":["Marketplace"]}},"/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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"notificationRoles":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.NotificationRole"},"type":"array"},"relatedTo":{"$ref":"#/components/schemas/de.mittwald.v1.conversation.RelatedAggregateReference"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Create a conversation.","tags":["Conversation"]},"get":{"operationId":"conversation-list-conversations","parameters":[{"description":"keyword or \"phrase\" search","in":"query","name":"fullTextSearch","required":false,"schema":{"type":"string"}},{"in":"query","name":"status","required":false,"schema":{"items":{"enum":["open","closed"],"type":"string"},"type":"array"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","default":100,"minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false},{"name":"sort","in":"query","description":"List of fields how the result should be sorted.","schema":{"type":"array","items":{"type":"string","enum":["createdAt","lastMessage.createdAt","title","shortId","conversationId"]},"default":["lastMessage.createdAt"]},"required":false},{"name":"order","in":"query","description":"Should the result be sorted ascending or descending? You can specify for each field another sorting: sort[0]=foo, order[0]=asc, sort[1]=bar, order[1]=desc.","schema":{"type":"array","items":{"type":"string","enum":["asc","desc"]},"default":["desc"]},"required":false}],"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","headers":{"X-Pagination-Limit":{"description":"The limit used to select the resources for the response","schema":{"type":"integer"}},"X-Pagination-Skip":{"description":"The number of skipped items","schema":{"type":"integer"}},"X-Pagination-Page":{"description":"The calculate page of the list response. Refer to parameters to learn more.","schema":{"type":"number"}},"X-Pagination-TotalCount":{"description":"The total amount of items available in the remote ressource. Use this value in combination with the limit to calculate the available pages.","schema":{"type":"integer"}}}},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},{"$ref":"#/components/schemas/de.mittwald.v1.conversation.ServiceRequest"}]},"type":"array"}}},"description":""},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[],"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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.RelatedAggregateReference"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":""},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[],"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Update the content of the message","tags":["Conversation"]}},"/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":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.cronjob.CronjobRequest"}}},"description":"cronjob","required":true},"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"},"429":{"$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 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":{"type":"string"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","default":1000,"minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.cronjob.Cronjob"},"type":"array"}}},"description":"OK","headers":{"X-Pagination-Limit":{"description":"The limit used to select the resources for the response","schema":{"type":"integer"}},"X-Pagination-Skip":{"description":"The number of skipped items","schema":{"type":"integer"}},"X-Pagination-Page":{"description":"The calculate page of the list response. Refer to parameters to learn more.","schema":{"type":"number"}},"X-Pagination-TotalCount":{"description":"The total amount of items available in the remote ressource. Use this value in combination with the limit to calculate the available pages.","schema":{"type":"integer"}}}},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"type":"string"}}],"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"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"}},{"in":"query","name":"triggeredByUser","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"sortOrder","required":false,"schema":{"$ref":"#/components/schemas/de.mittwald.v1.cronjob.CronjobExecutionSortOrder"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.cronjob.CronjobExecution"},"type":"array"}}},"description":"OK","headers":{"X-Pagination-Limit":{"schema":{"type":"integer"}},"X-Pagination-Page":{"schema":{"type":"integer"}},"X-Pagination-Skip":{"schema":{"type":"integer"}},"X-Pagination-TotalCount":{"schema":{"type":"integer"}}}},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"type":"string"}}],"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"active":{"type":"boolean"},"concurrencyPolicy":{"$ref":"#/components/schemas/de.mittwald.v1.cronjob.ConcurrencyPolicy"},"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"},"failedExecutionAlertThreshold":{"minimum":0,"type":"integer"},"interval":{"example":"*/5 * * * *","type":"string"},"timeZone":{"type":"string"},"timeout":{"maximum":86400,"minimum":1,"type":"integer"}},"type":"object"}}},"required":false},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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}/analysis":{"get":{"operationId":"cronjob-get-execution-analysis","parameters":[{"description":"ID of the CronjobExecution to be analyzed.","example":"cron-bd26li-28027320","in":"path","name":"executionId","required":true,"schema":{"type":"string"}},{"in":"path","name":"cronjobId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.cronjob.CronjobExecutionAnalysis"}}},"description":"OK"},"400":{"$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.DefaultError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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 CronjobExecution analysis for failed executions.","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":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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-installation-id":{"put":{"operationId":"cronjob-replace-cronjob-app-installation-id","parameters":[{"description":"ID of the Cronjob to update.","in":"path","name":"cronjobId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"appInstallationId":{"format":"uuid","type":"string"}},"required":["appInstallationId"],"type":"object"}}},"description":"ID of the AppInstallation to set.","required":true},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a Cronjob's app installation id.","tags":["Cronjob"]},"patch":{"operationId":"cronjob-update-cronjob-app-id-deprecated","deprecated":true,"description":"Deprecated by PUT /v2/cronjobs/{cronjobId}/app-installation-id.","parameters":[{"description":"ID of the Cronjob to update.","in":"path","name":"cronjobId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"appId":{"deprecated":true,"description":"DEPRECATED: Use 'appInstallationId' instead. This field will be removed in a future version.","format":"uuid","type":"string"},"appInstallationId":{"format":"uuid","type":"string"}},"required":["appId"],"type":"object"}}},"description":"ID of the app to set.","required":true},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a Cronjob's app installation id.","tags":["Cronjob"]}},"/v2/cronjobs/{cronjobId}/app-id":{"patch":{"deprecated":true,"description":"This route is deprecated. Please use /v2/cronjobs/{cronjobId}/app-installation-id instead.","parameters":[{"description":"ID of the Cronjob to update.","in":"path","name":"cronjobId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"appId":{"deprecated":true,"description":"DEPRECATED: Use 'appInstallationId' instead. This field will be removed in a future version.","format":"uuid","type":"string"},"appInstallationId":{"format":"uuid","type":"string"}},"required":["appId"],"type":"object"}}},"description":"ID of the app to set.","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":"Update a Cronjob's app installation 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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Accept a CustomerInvite.","tags":["Customer"]}},"/v2/customer/{customerId}/invites":{"post":{"parameters":[{"description":"ID of the Customer to create a CustomerInvite for.","in":"path","name":"customerId","required":true,"schema":{"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":{"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 CustomerInvite.","tags":["Customer"],"description":"This route is deprecated. Please use /v2/customers/{customerId}/invites instead.","deprecated":true}},"/v2/customers/{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":{"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"},"429":{"$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 a CustomerInvite.","tags":["Customer"]},"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":"integer"}},"X-Pagination-Skip":{"schema":{"type":"integer"}},"X-Pagination-TotalCount":{"schema":{"type":"integer"}}}},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"post":{"operationId":"customer-create-customer","requestBody":{"content":{"application/json":{"schema":{"properties":{"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":{"maxLength":80,"type":"string"}},"required":["customerId","name","customerNumber"],"type":"object"}}},"description":"The new customer"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"429":{"$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 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"}},{"description":"text search for customer number, customer name and id. Simple regular expressions are allowed.","in":"query","name":"search","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","default":1000,"minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false}],"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","headers":{"X-Pagination-Limit":{"description":"The limit used to select the resources for the response","schema":{"type":"integer"}},"X-Pagination-Skip":{"description":"The number of skipped items","schema":{"type":"integer"}},"X-Pagination-Page":{"description":"The calculate page of the list response. Refer to parameters to learn more.","schema":{"type":"number"}},"X-Pagination-TotalCount":{"description":"The total amount of items available in the remote ressource. Use this value in combination with the limit to calculate the available pages.","schema":{"type":"integer"}}}},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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/customers/{customerId}/recommendation-suggestions":{"post":{"operationId":"customer-create-recommendation-suggestion","parameters":[{"example":"edefeee4-e8e9-4e2d-ab95-9a2eb6104cfb","in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"suggestion":{"example":"a mittwald t-shirt","type":"string"}},"required":["suggestion"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"customerId":{"example":"edefeee4-e8e9-4e2d-ab95-9a2eb6104cfb","type":"string"}},"type":"object"}}},"description":"The suggestion has been made."},"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"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Lets us know your idea for our recommendation programm.","tags":["Customer"]}},"/v2/customers/{customerId}/wallet":{"post":{"operationId":"customer-create-wallet","parameters":[{"example":"edefeee4-e8e9-4e2d-ab95-9a2eb6104cfb","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":{"customerId":{"example":"edefeee4-e8e9-4e2d-ab95-9a2eb6104cfb","type":"string"}},"type":"object"}}},"description":"The Wallet has been created."},"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"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$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 the Wallet for the Customer.","tags":["Customer"]},"get":{"operationId":"customer-get-wallet","parameters":[{"example":"edefeee4-e8e9-4e2d-ab95-9a2eb6104cfb","in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"customerId":{"example":"edefeee4-e8e9-4e2d-ab95-9a2eb6104cfb","type":"string"},"points":{"example":10,"type":"number"},"recommendationCode":{"example":"m-123456","type":"string"},"walletId":{"example":"32485364-7500-4591-b5cb-4e25e4bd1f30","type":"string"}},"required":["customerId","walletId","points"],"type":"object"}}},"description":"The Wallet of the Customer"},"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"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Gets the Wallet of the Customer.","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"}}],"responses":{"204":{"description":""},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Decline a CustomerInvite.","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":""},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":""},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":""},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"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":{"maxLength":80,"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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-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"}},{"in":"query","name":"page","required":false,"schema":{"minimum":0,"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":"integer"}},"X-Pagination-Page":{"schema":{"type":"integer"}},"X-Pagination-Skip":{"schema":{"type":"integer"}},"X-Pagination-TotalCount":{"schema":{"type":"integer"}}}},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"}},{"in":"query","name":"page","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"hasExpiry","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"role","required":false,"schema":{"$ref":"#/components/schemas/de.mittwald.v1.membership.CustomerRoles"}}],"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":"integer"}},"X-Pagination-Page":{"schema":{"type":"integer"}},"X-Pagination-Skip":{"schema":{"type":"integer"}},"X-Pagination-TotalCount":{"schema":{"type":"integer"}}}},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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}/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"}},{"in":"query","name":"hasExpiry","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"role","required":false,"schema":{"$ref":"#/components/schemas/de.mittwald.v1.membership.CustomerRoles"}}],"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":"integer"}},"X-Pagination-Skip":{"schema":{"type":"integer"}},"X-Pagination-TotalCount":{"schema":{"type":"integer"}}}},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"}}],"responses":{"204":{"description":""},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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/mysql-databases/{mysqlDatabaseId}/actions/copy":{"post":{"operationId":"database-copy-mysql-database","parameters":[{"description":"ID of the MySQLDatabase to copy.","in":"path","name":"mysqlDatabaseId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"type":"string"},"user":{"$ref":"#/components/schemas/de.mittwald.v1.database.CreateMySqlUserWithDatabase"}},"required":["description","user"],"type":"object"}}},"required":true},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Copy a MySQLDatabase with a MySQLUser.","tags":["Database"]}},"/v2/projects/{projectId}/mysql-databases":{"post":{"operationId":"database-create-mysql-database","description":"This operation creates a MySQLDatabase and an associated MySQLUser.\n\nPlease note that this operation is asynchronous. Even after a successful response, you will still need to wait until the database is successfully provisioned. Currently, the recommended way for that is to poll the `GET /v2/mysql-databases/{id}` endpoint and observe the `mainUser.status` field in the response.\n","parameters":[{"description":"ID of the Project to create a MySQLDatabase for.","in":"path","name":"projectId","required":true,"schema":{"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"}}},"required":true},"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"},"429":{"$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 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":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.database.CreateMySqlUser"}}},"required":true},"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"},"429":{"$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 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":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"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"}}},"required":true},"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"},"429":{"$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 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":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"type":"string"}}],"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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","description":"Returns a MySQLDatabase resource and its current status.\n\nNote that establishing a connection requires the linked user to have a status of `ready`; relying solely on the database status is insufficient.\n","parameters":[{"description":"ID of the MySQLDatabase to be retrieved.","in":"path","name":"mysqlDatabaseId","required":true,"schema":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"type":"string"}}],"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"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"]}}},"required":true},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"type":"string"}}],"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"type":"string"}}],"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"type":"string"}}],"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[],"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"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.","required":true},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"type":"string"}},"required":["description"]}}},"required":true},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"password":{"type":"string"}},"required":["password"]}}},"required":true},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"configuration":{"$ref":"#/components/schemas/de.mittwald.v1.database.RedisDatabaseConfiguration"}}}}},"required":false},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"type":"string"}},"required":["description"]}}},"required":true},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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,"description":"This route is deprecated. Use PATCH /v2/app-installations/{appInstallationId}/database instead.","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"},"429":{"$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 linkage between an AppInstallation and a MySql-Database.","tags":["App"]}},"/v2/contracts/{contractId}/items/{contractItemId}/next-termination-dates":{"get":{"operationId":"deprecated-contract-get-next-termination-date-for-item","deprecated":true,"description":"This route is deprecated. Use GET /v2/contracts/{contractId}/items/{contractItemId} instead.","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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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/customer/{customerId}/actions/leave":{"post":{"deprecated":true,"description":"This route is deprecated. Please use /v2/customers/{customerId}/actions/leave instead.","parameters":[{"description":"ID of the Customer to be left.","in":"path","name":"customerId","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":"Leave a Customer.","tags":["Customer"]}},"/v2/customers/{customerId}/actions/leave":{"post":{"operationId":"deprecated-customer-leave-customer","deprecated":true,"description":"Deprecated by `DELETE /v2/customer-memberships/{customerMembershipId}`.","parameters":[{"description":"ID of the Customer to be left.","in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":""},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Leave a Customer.","tags":["Customer"]}},"/v2/dns/zones/{zoneId}/recordset/acombined/custom":{"put":{"operationId":"deprecated-dns-record-a-set-custom","deprecated":true,"description":"This operation is deprecated. Use the PUT v2/dns-zones/{dnsZoneId}/record-sets/{recordSet} endpoint instead.","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"}]}}},"required":true},"responses":{"204":{"description":"recordset updated"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"deprecated-dns-record-a-set-managed-by-ingress","deprecated":true,"description":"This operation is deprecated. Use the POST v2/dns-zones/{dnsZoneId}/record-sets/{recordSet}/actions/set-managed endpoint instead.","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"}}},"required":true},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"deprecated-dns-record-cname-set","deprecated":true,"description":"This operation is deprecated. Use the PUT v2/dns-zones/{dnsZoneId}/record-sets/{recordSet} endpoint instead.","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"}]}}},"required":true},"responses":{"204":{"description":"recordset updated"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"deprecated-dns-record-mx-set-custom","deprecated":true,"description":"This operation is deprecated. Use the PUT v2/dns-zones/{dnsZoneId}/record-sets/{recordSet} endpoint instead.","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"}]}}},"required":true},"responses":{"204":{"description":"recordset updated"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"deprecated-dns-record-mx-set-managed","deprecated":true,"description":"This operation is deprecated. Use the POST v2/dns-zones/{dnsZoneId}/record-sets/{recordSet}/actions/set-managed endpoint instead.","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"}}},"required":true},"responses":{"204":{"description":"recordset updated"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"deprecated-dns-record-srv-set","deprecated":true,"description":"This operation is deprecated. Use the PUT v2/dns-zones/{dnsZoneId}/record-sets/{recordSet} endpoint instead.","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"}]}}},"required":true},"responses":{"204":{"description":"recordset updated"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"deprecated-dns-record-txt-set","deprecated":true,"description":"This operation is deprecated. Use the PUT v2/dns-zones/{dnsZoneId}/record-sets/{recordSet} endpoint instead.","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"}]}}},"required":true},"responses":{"204":{"description":"recordset updated"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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/domains/{domainId}/handles/ownerc":{"put":{"operationId":"deprecated-domain-change-ownerc-of-domain","deprecated":true,"description":"This operation is deprecated. Use the PATCH /v2/domains/{domainId}/contacts/{contact} endpoint instead.","parameters":[{"examples":{"shortId":{"value":"my-domain.de"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"in":"path","name":"domainId","required":true,"schema":{"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.","required":true},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"deprecated-domain-change-project-of-domain","deprecated":true,"description":"This operation is deprecated. Use the PATCH /v2/domains/{domainId}/project-id endpoint instead.","parameters":[{"examples":{"shortId":{"value":"my-domain.de"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"in":"path","name":"domainId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"projectId":{"format":"uuid","type":"string"}}}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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/domains":{"post":{"operationId":"deprecated-domain-check-domain-registrability","deprecated":true,"description":"This operation is deprecated. Use the POST /v2/domain-registrable endpoint instead.","requestBody":{"content":{"application/json":{"schema":{"properties":{"domain":{"format":"naked-domain","type":"string"}},"required":["domain"]}}},"required":true},"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"},"429":{"$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 register.","tags":["Domain"]},"get":{"operationId":"domain-list-domains","parameters":[{"examples":{"shortId":{"value":"p-abcdef"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"in":"query","name":"projectId","required":false,"schema":{"type":"string"}},{"description":"Search for domain names in this list. Input will be handled like '%YourInput%'.","in":"query","name":"domainSearchName","required":false,"schema":{"type":"string"}},{"description":"Search for domain contact hash.","in":"query","name":"contactHash","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","default":10000,"minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.domain.Domain"},"type":"array"}}},"description":"OK","headers":{"X-Pagination-Limit":{"description":"The limit used to select the resources for the response","schema":{"type":"integer"}},"X-Pagination-Skip":{"description":"The number of skipped items","schema":{"type":"integer"}},"X-Pagination-Page":{"description":"The calculate page of the list response. Refer to parameters to learn more.","schema":{"type":"number"}},"X-Pagination-TotalCount":{"description":"The total amount of items available in the remote ressource. Use this value in combination with the limit to calculate the available pages.","schema":{"type":"integer"}}}},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List Domains","tags":["Domain"]}},"/v2/domains/{domainId}/nameservers":{"put":{"operationId":"deprecated-domain-declare-nameservers","deprecated":true,"description":"This operation is deprecated. Use the PATCH /v2/domains/{domainId}/nameservers endpoint instead.","parameters":[{"examples":{"shortId":{"value":"my-domain.de"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"in":"path","name":"domainId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"nameservers":{"items":{"format":"idn-hostname","type":"string"},"minItems":2,"type":"array","uniqueItems":true}}}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":[{"examples":{"shortId":{"value":"my-domain.de"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"in":"path","name":"domainId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"nameservers":{"items":{"format":"idn-hostname","type":"string"},"minItems":2,"type":"array","uniqueItems":true}}}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"deprecated-domain-declare-process-change-authcode","deprecated":true,"description":"This operation is deprecated. Use the PATCH /v2/domains/{domainId}/auth-code endpoint instead.","parameters":[{"examples":{"shortId":{"value":"my-domain.de"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"in":"path","name":"domainId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"authCode":{"minLength":4,"type":"string"}},"required":["authCode"]}}},"description":"The new handle fields for the new owner.","required":true},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"deprecated-domain-declare-process-change-handles","deprecated":true,"description":"This operation is deprecated and does not have an alternative.","parameters":[{"examples":{"shortId":{"value":"my-domain.de"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"in":"path","name":"domainId","required":true,"schema":{"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.","required":true},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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/handle-schema/{domainName}":{"get":{"operationId":"deprecated-domain-get-handle-fields","deprecated":true,"description":"This operation is deprecated. Use the GET /v2/domain-tlds/{tld}/contact-schemas endpoint instead.","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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[],"summary":"Get a HandleSchema.","tags":["Domain"]}},"/v2/domains/{domainId}/screenshots/newest":{"get":{"operationId":"deprecated-domain-get-screenshot-for-domain","deprecated":true,"description":"Deprecated by `GET /v2/domains/{domainId}/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":{"references":{"items":{"type":"string"},"type":"array"}},"type":"object"}}},"description":"The References."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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/projects/{projectId}/domains":{"get":{"operationId":"deprecated-domain-list-domains","deprecated":true,"description":"This operation is deprecated. Use the GET /v2/domains endpoint instead.","parameters":[{"examples":{"shortId":{"value":"p-abcdef"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"in":"path","name":"projectId","required":true,"schema":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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/file-token-rules/{token}":{"get":{"operationId":"deprecated-file-get-file-token-rules","deprecated":true,"description":"Deprecated by `GET /v2/file-upload-tokens/{fileUploadToken}/rules`.","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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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,"description":"Deprecated by `GET /v2/file-upload-types/{fileUploadType}/rules`.","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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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/projects/{projectId}/ingresses":{"get":{"operationId":"deprecated-ingress-list-ingresses","deprecated":true,"description":"This operation is deprecated. Use the GET /v2/ingresses endpoint instead.","parameters":[{"description":"ID of the Project to list Ingresses for","examples":{"shortId":{"value":"p-ab1cd2"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"in":"path","name":"projectId","required":true,"schema":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"deprecated-ingress-paths","deprecated":true,"description":"This operation is deprecated. Use the PATCH /v2/ingresses/{ingressId}/paths endpoint instead.","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"}}},"required":true},"responses":{"204":{"description":"No Content"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"}}},"required":true},"responses":{"204":{"description":"No Content"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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}/tls":{"put":{"operationId":"deprecated-ingress-tls","deprecated":true,"description":"This operation is deprecated. Use the PATCH /v2/ingresses/{ingressId}/tls endpoint instead.","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"}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":[{"additionalProperties":false,"properties":{"acme":{"type":"boolean"},"isCreated":{"deprecated":true,"description":"Was added by mistake. Never did anything.","type":"boolean"},"requestDeadline":{"deprecated":true,"description":"Was added by mistake. Never did anything.","format":"date-time","type":"string"}},"required":["acme"],"type":"object"},{"additionalProperties":false,"properties":{"certificateId":{"format":"uuid","type":"string"}},"required":["certificateId"],"type":"object"}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"OK"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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/customers/{customerId}/invoices/{invoiceId}":{"get":{"operationId":"deprecated-invoice-detail-of-invoice","deprecated":true,"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get details of an Invoice.","tags":["Contract"]}},"/v2/deliveryboxes/{id}/description":{"put":{"operationId":"deprecated-mail-deliverybox-update-description","deprecated":true,"description":"This operation is deprecated. Use the PATCH v2/delivery-boxes/{deliveryBoxId}/description endpoint instead.","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","required":true},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"deprecated-mail-deliverybox-update-password","deprecated":true,"description":"This operation is deprecated. Use the PATCH v2/delivery-boxes/{deliveryBoxId}/password endpoint instead.","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"]}}},"required":true},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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/mailaddresses/{id}/address":{"put":{"operationId":"deprecated-mail-mailaddress-update-address","deprecated":true,"description":"This operation is deprecated. Use the PATCH v2/mail-addresses/{mailAddressId}/address endpoint instead.","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","required":true},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"deprecated-mail-projectsetting-update-blacklist","deprecated":true,"description":"This operation is deprecated. Use the PATCH v2/{projectId}/mail-settings/{mailSetting} endpoint instead.","parameters":[{"description":"ID of the project you want to update blacklist for","examples":{"shortId":{"value":"p-ab1cd2"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"blacklist":{"items":{"pattern":"^([a-zA-Z0-9.!#$%&'*\\/=?^_{|}~-]+@[a-zA-Z0-9-*]+(?:\\.([a-zA-Z0-9-]+|\\*))+)$","type":"string"},"type":"array"}},"required":["blacklist"],"type":"object"}}},"required":true},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"deprecated-mail-projectsetting-update-whitelist","deprecated":true,"description":"This operation is deprecated. Use the PATCH v2/{projectId}/mail-settings/{mailSetting} endpoint instead.","parameters":[{"description":"ID of the project you want to update whitelist for","examples":{"shortId":{"value":"p-ab1cd2"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"whitelist":{"items":{"pattern":"^([a-zA-Z0-9.!#$%&'*\\/=?^_{|}~-]+@[a-zA-Z0-9-*]+(?:\\.([a-zA-Z0-9-]+|\\*))+)$","type":"string"},"type":"array"}},"required":["whitelist"],"type":"object"}}},"required":true},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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/mailaddresses/{mailAddressId}/autoResponder":{"put":{"deprecated":true,"description":"This route is deprecated. Please use /v2/mail-addresses/{mailAddressId}/autoresponder instead.","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.","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":"Update the autoresponder of a MailAddress.","tags":["Mail"]}},"/v2/mail-addresses/{mailAddressId}/autoresponder":{"put":{"operationId":"deprecated-mail-update-mail-address-autoresponder","deprecated":true,"description":"This operation is deprecated. Use the PATCH v2/mail-addresses/{mailAddressId}/autoresponder endpoint instead.","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.","required":true},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"]},"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.","required":true},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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}/catchAll":{"put":{"deprecated":true,"description":"This route is deprecated. Please use /v2/mail-addresses/{mailAddressId}/catchall instead.","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.","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":"Update the catchall of a MailAddress.","tags":["Mail"]}},"/v2/mail-addresses/{mailAddressId}/catchall":{"put":{"operationId":"deprecated-mail-update-mail-address-catchall","deprecated":true,"description":"This operation is deprecated. Use the PATCH v2/mail-addresses/{mailAddressId}/catch-all endpoint instead.","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.","required":true},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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}/forwardaddresses":{"put":{"deprecated":true,"description":"This route is deprecated. Please use /v2/mail-addresses/{mailAddressId}/forward-addresses instead.","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"]}}},"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":"Update the forward addresses of a MailAddresses.","tags":["Mail"]}},"/v2/mail-addresses/{mailAddressId}/forward-addresses":{"put":{"operationId":"deprecated-mail-update-mail-address-forward-addresses","deprecated":true,"description":"This operation is deprecated. Use the PATCH v2/mail-addresses/{mailAddressId}/forward-addresses endpoint instead.","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"]}}},"required":true},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"]},"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"]}}},"required":true},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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}/password":{"put":{"deprecated":true,"description":"This route is deprecated. Please use /v2/mail-addresses/{mailAddressId}/password instead.","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"]}}},"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":"Update the password for a MailAddress.","tags":["Mail"]}},"/v2/mail-addresses/{mailAddressId}/password":{"put":{"operationId":"deprecated-mail-update-mail-address-password","deprecated":true,"description":"This operation is deprecated. Use the PATCH v2/mail-addresses/{mailAddressId}/password endpoint instead.","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"]}}},"required":true},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"]},"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"]}}},"required":true},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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}/quota":{"put":{"deprecated":true,"description":"This route is deprecated. Please use /v2/mail-addresses/{mailAddressId}/quota instead.","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,"format":"int64","minimum":-1,"type":"integer"}},"required":["quotaInBytes"]}}},"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":"Update the quota of a MailAddress.","tags":["Mail"]}},"/v2/mail-addresses/{mailAddressId}/quota":{"put":{"operationId":"deprecated-mail-update-mail-address-quota","deprecated":true,"description":"This operation is deprecated. Use the PATCH v2/mail-addresses/{mailAddressId}/quota endpoint instead.","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,"format":"int64","minimum":-1,"type":"integer"}},"required":["quotaInBytes"]}}},"required":true},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"]},"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,"format":"int64","minimum":-1,"type":"integer"}},"required":["quotaInBytes"]}}},"required":true},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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}/spamprotection":{"put":{"deprecated":true,"description":"This route is deprecated. Please use /v2/mail-addresses/{mailAddressId}/spam-protection instead.","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"]}}},"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":"Update the spam protection of a MailAddress.","tags":["Mail"]}},"/v2/mail-addresses/{mailAddressId}/spam-protection":{"put":{"operationId":"deprecated-mail-update-mail-address-spam-protection","deprecated":true,"description":"This operation is deprecated. Use the PATCH v2/mail-addresses/{mailAddressId}/spam-protection endpoint instead.","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"]}}},"required":true},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"]},"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"]}}},"required":true},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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/projects/{projectId}/mail-settings/{mailSetting}":{"put":{"operationId":"deprecated-mail-update-project-mail-setting","deprecated":true,"description":"This operation is deprecated. Use the PATCH v2/{projectId}/mail-settings/{mailSetting} endpoint instead.","parameters":[{"description":"ID of the Project to update a mail setting for.","examples":{"shortId":{"value":"p-ab1cd2"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"description":"The setting to update.","in":"path","name":"mailSetting","required":true,"schema":{"enum":["blacklist","whitelist"],"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"blacklist":{"items":{"pattern":"^([a-zA-Z0-9.!#$%&'*\\/=?^_{|}~-]+@[a-zA-Z0-9-*]+(?:\\.([a-zA-Z0-9-]+|\\*))+)$","type":"string"},"type":"array"}},"required":["blacklist"],"type":"object"},{"properties":{"whitelist":{"items":{"pattern":"^([a-zA-Z0-9.!#$%&'*\\/=?^_{|}~-]+@[a-zA-Z0-9-*]+(?:\\.([a-zA-Z0-9-]+|\\*))+)$","type":"string"},"type":"array"}},"required":["whitelist"],"type":"object"}]}}},"required":true},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"]},"patch":{"operationId":"mail-update-project-mail-setting","parameters":[{"description":"ID of the Project to update a mail setting for.","examples":{"shortId":{"value":"p-ab1cd2"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"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":{"pattern":"^([a-zA-Z0-9.!#$%&'*\\/=?^_{|}~-]+@[a-zA-Z0-9-*]+(?:\\.([a-zA-Z0-9-]+|\\*))+)$","type":"string"},"type":"array"}},"required":["blacklist"],"type":"object"},{"properties":{"whitelist":{"items":{"pattern":"^([a-zA-Z0-9.!#$%&'*\\/=?^_{|}~-]+@[a-zA-Z0-9-*]+(?:\\.([a-zA-Z0-9-]+|\\*))+)$","type":"string"},"type":"array"}},"required":["whitelist"],"type":"object"}]}}},"required":true},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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/projects/{projectId}/leave":{"post":{"operationId":"deprecated-project-leave-project","deprecated":true,"description":"Deprecated by `DELETE /v2/project-memberships/{projectMembershipId}`.","parameters":[{"description":"ID of the Project to be left.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":""},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Leave a Project.","tags":["Project"]}},"/v2/signup/email":{"put":{"operationId":"deprecated-user-change-email","deprecated":true,"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Change your Email-Address. Replaced by `PUT` `/v2/users/self/credentials/email`.","tags":["User"]},"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"],"description":"This route is deprecated. Please use /v2/users/self/credentials/email instead.","deprecated":true}},"/v2/signup/password/reset/confirm":{"post":{"operationId":"deprecated-user-confirm-password-reset","deprecated":true,"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Confirm password reset. Replaced by `POST` `/v2/users/self/credentials/password/confirm-reset`.","tags":["User"]}},"/v2/users/self/issues":{"post":{"operationId":"deprecated-user-create-issue","deprecated":true,"description":"was replaced by /v2/users/self/feedback.","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"},"429":{"$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 a new issue.","tags":["User"]}},"/v2/signup/token/api/{apiTokenId}":{"delete":{"operationId":"deprecated-user-delete-api-token","deprecated":true,"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Deletes an ApiToken. Replaces by `DELETE` `/v2/user/{userid}/api-tokens/{apiTokenId}`.","tags":["User"]},"put":{"operationId":"deprecated-user-edit-api-token","deprecated":true,"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update an existing `ApiToken`. Replaced by `PUT` `/v2/users/{userId}/api-tokens/{apiTokenId}`.","tags":["User"]},"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"],"description":"This route is deprecated. Please use /v2/users/self/api-tokens/{apiTokenId} instead.","deprecated":true}},"/v2/signup/ssh/{sshKeyId}":{"delete":{"operationId":"deprecated-user-delete-ssh-key","deprecated":true,"parameters":[{"in":"path","name":"sshKeyId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"The ssh-key was removed."},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Remove a ssh-key. Replaced by `DELETE` `/v2/users/self/ssh-keys/{sshKeyId}`.","tags":["User"]},"put":{"operationId":"deprecated-user-edit-ssh-key","deprecated":true,"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Edit a stored ssh-key. Replaced by `PUT` `/v2/users/self/ssh-keys/{sshKeyId}`.","tags":["User"]},"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"],"description":"This route is deprecated. Please use /v2/users/self/ssh-keys/{sshKeyId} instead.","deprecated":true}},"/v2/signup/mfa":{"delete":{"operationId":"deprecated-user-disable-mfa","deprecated":true,"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Disable Multi Factor Authentication. Replaced by `DELETE` `/v2/users/self/credentials/mfa`.","tags":["User"]},"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"],"description":"This route is deprecated. Please use /v2/users/self/credentials/mfa instead.","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"],"description":"This route is deprecated. Please use /v2/users/self/credentials/init-mfa instead.","deprecated":true}},"/v2/signup/profile":{"get":{"deprecated":true,"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. Replaced by `GET` `/v2/users/self`.","tags":["User"],"description":"This route is deprecated. Please use /v2/users/self/personal-information instead."},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"],"description":"This route is deprecated. Please use /v2/users/self instead.","deprecated":true}},"/v2/users/self/personal-information":{"get":{"operationId":"deprecated-user-get-own-account","deprecated":true,"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."},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get your account information. Replaced by `GET` `/v2/users/self`.","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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update your account information.","tags":["User"]}},"/v2/signup/password/reset":{"post":{"operationId":"deprecated-user-init-password-reset","deprecated":true,"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Initialize password reset process. Replaced by `POST` `/v2/users/self/credentials/actions/init-password-reset`.\n","tags":["User"]}},"/v2/signup/logout":{"put":{"operationId":"deprecated-user-logout","deprecated":true,"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Terminate session and invalidate access token. Replaced by `DELETE` `/v2/users/self/sessions/{current}`.","tags":["User"]}},"/v2/signup/email/resend":{"post":{"operationId":"deprecated-user-resend-verification-email","deprecated":true,"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Resend the Email-Address verification email. Replaced by `POST` `/v2/users/self/credentials/email/actions/resend-email`.\n","tags":["User"]}},"/v2/user/{userId}/avatar":{"delete":{"operationId":"deprecated-user-service-avatar-remove","deprecated":true,"description":"Use /v2/users/{userId}/avatar instead.","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":{"type":"string"}}],"responses":{"204":{"description":"Avatar removal was successful"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Remove Avatar","tags":["User"]},"post":{"operationId":"deprecated-user-service-avatar-request-upload","deprecated":true,"description":"Use /v2/users/{userId}/avatar instead.","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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Request a new avatar upload","tags":["User"]}},"/v2/user/feedback":{"post":{"operationId":"deprecated-user-service-feedback-create","deprecated":true,"description":"Use /v2/users/self/feedback instead.","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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Submit user feedback","tags":["User"]},"get":{"operationId":"deprecated-user-service-feedback-list","deprecated":true,"description":"Use /v2/users/{userId}/feedback instead.","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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Returns your submitted feedback","tags":["User"]}},"/v2/user/issues":{"post":{"operationId":"deprecated-user-service-issue-new","deprecated":true,"description":"was replaced by /v2/users/self/feedback.","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"},"429":{"$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 a new issue","tags":["User"]}},"/v2/user/{userId}":{"put":{"operationId":"deprecated-user-service-personal-information-update","deprecated":true,"description":"Use /v2/users/{userId} instead.","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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Change your personal information","tags":["User"]},"get":{"operationId":"deprecated-user-service-user-get","deprecated":true,"description":"Use /v2/users/{userId} instead.","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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"]}},"/v2/user/settings":{"get":{"operationId":"deprecated-user-service-personalized-settings-get","deprecated":true,"description":"Use /v2/users/{userId}/settings instead.","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"settingsString":{"type":"string"}},"type":"object"}}},"description":"The settingsString"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"]},"put":{"operationId":"deprecated-user-service-personalized-settings-update","deprecated":true,"description":"Use /v2/users/{userId}/settings instead.","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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"update personalized settings","tags":["User"]}},"/v2/user/{userId}/phone":{"post":{"operationId":"deprecated-user-service-phone-number-add","deprecated":true,"description":"use /v2/users/{userId}/phone instead.","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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"]},"delete":{"operationId":"deprecated-user-service-phone-number-remove","deprecated":true,"description":"Use /v2/users/{userId}/phone instead.","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":{"type":"string"}}],"responses":{"204":{"description":"PhoneNumber removal was successful"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"remove your PhoneNumber","tags":["User"]}},"/v2/user/{userId}/phone/verify":{"post":{"operationId":"deprecated-user-service-phone-number-verify","deprecated":true,"description":"Instead, use /v2/users/{userId}/actions/verify-phone or alternatively /v2/users/{userId}/phone/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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Verify phone number","tags":["User"]}},"/v2/user":{"get":{"operationId":"deprecated-user-service-user-get-own","deprecated":true,"description":"Use /v2/users/{userId} instead.","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.user.User"}}},"description":"The Profile"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"]}},"/v2/signup/sessions":{"delete":{"operationId":"deprecated-user-terminate-all-sessions","deprecated":true,"responses":{"200":{"description":"All sessions terminated."},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Terminate all sessions, except the current session. Replaced by `DELETE` `/v2/users/self/sessions`.","tags":["User"]},"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"],"parameters":[{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false}],"description":"This route is deprecated. Please use /v2/users/self/sessions instead.","deprecated":true}},"/v2/signup/sessions/{tokenId}":{"delete":{"operationId":"deprecated-user-terminate-session","deprecated":true,"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Terminate a specific Session. Replaced by `DELETE` `/v2/users/self/sessions/{tokenId}`.","tags":["User"]},"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"],"description":"This route is deprecated. Please use /v2/users/self/sessions/{tokenId} instead.","deprecated":true}},"/v2/signup/email/verify":{"post":{"operationId":"deprecated-user-verify-email","deprecated":true,"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Verify an added Email-Address. Replaced by `POST` `/v2/users/self/credentials/email/actions/verify-email`.","tags":["User"]}},"/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"}}},"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 DNSZone.","tags":["Domain"],"description":"This route is deprecated. Please use /v2/dns-zones instead.","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"}}},"required":true},"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"},"409":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$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 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"],"description":"This route is deprecated. Please use /v2/dns-zones/{dnsZoneId} instead.","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"],"description":"This route is deprecated. Please use /v2/dns-zones/{dnsZoneId} instead.","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":{"204":{"description":"No Content"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a DNSZone.","tags":["Domain"]}},"/v2/dns-zones/{dnsZoneId}/zone-file":{"get":{"operationId":"dns-get-zone-file","description":"Returns a BIND-compliant DNS zone file per RFC 1035 for the specified dnsZoneId, including all sub zone information. Entering the dnsZoneId of a sub zone will result in an error.","parameters":[{"description":"ID of the DNSZone to get a zone file for.","in":"path","name":"dnsZoneId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"text/plain":{"schema":{"type":"string"}}},"description":"Returns the zone file as plain text."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a zone file for a DNSZone.","tags":["Domain"]}},"/v2/projects/{projectId}/dns/zones":{"get":{"parameters":[{"description":"ID of the Project to list DNSZones for.","examples":{"shortId":{"value":"p-ab1cd2"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"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 DNSZones belonging to a Project.","tags":["Domain"],"description":"This route is deprecated. Please use /v2/projects/{projectId}/dns-zones instead.","deprecated":true}},"/v2/projects/{projectId}/dns-zones":{"get":{"operationId":"dns-list-dns-zones","parameters":[{"description":"ID of the Project to list DNSZones for.","examples":{"shortId":{"value":"p-ab1cd2"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"in":"path","name":"projectId","required":true,"schema":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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/{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"}}},"required":true},"responses":{"200":{"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"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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","caa"],"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"},{"$ref":"#/components/schemas/de.mittwald.v1.dns.RecordCAAComponent"}]}}},"required":true},"responses":{"204":{"description":"Record set updated."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"This route is deprecated. Please use /v2/domains/{domainId}/declaration instead.","parameters":[{"examples":{"shortId":{"value":"my-domain.de"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"in":"path","name":"domainId","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":"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":[{"examples":{"shortId":{"value":"my-domain.de"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"in":"path","name":"domainId","required":true,"schema":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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}/scheduled-deletion":{"delete":{"operationId":"domain-cancel-scheduled-deletion","parameters":[{"examples":{"shortId":{"value":"my-domain.example"},"uuid":{"value":"XXXXXXXX-XXXX-4XXX-XXXX-XXXXXXXXXXXX"}},"in":"path","name":"domainId","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Cancel a scheduled deletion of a Domain.","tags":["Domain"]},"post":{"operationId":"domain-create-scheduled-deletion","parameters":[{"examples":{"shortId":{"value":"my-domain.example"},"uuid":{"value":"XXXXXXXX-XXXX-4XXX-XXXX-XXXXXXXXXXXX"}},"in":"path","name":"domainId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"deleteIngresses":{"description":"Whether to also delete the corresponding Ingress and subdomain Ingresses.","type":"boolean"},"deletionDate":{"format":"date-time","type":"string"}},"required":["deletionDate"]}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"429":{"$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 a scheduled deletion 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"]}}},"required":true},"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"},"429":{"$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 register.","tags":["Domain"]}},"/v2/domain-transferable":{"post":{"operationId":"domain-check-domain-transferability","description":"For some TLDs (e.g., .de), transferability cannot be evaluated. In these cases, transferable = true is returned.","requestBody":{"content":{"application/json":{"schema":{"properties":{"authCode":{"type":"string"},"domain":{"format":"naked-domain","type":"string"}},"required":["domain"]}}},"required":true},"responses":{"200":{"$ref":"#/components/responses/de.mittwald.v1.domain.TransferabilityResponse"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$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":[{"examples":{"shortId":{"value":"my-domain.de"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"in":"path","name":"domainId","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":"Create an auth code for a Domains transfer-out process.","tags":["Domain"],"description":"This route is deprecated. Please use /v2/domains/{domainId}/actions/auth-code instead.","deprecated":true}},"/v2/domains/{domainId}/actions/auth-code":{"post":{"operationId":"domain-create-domain-auth-code","parameters":[{"examples":{"shortId":{"value":"my-domain.de"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"in":"path","name":"domainId","required":true,"schema":{"type":"string"}}],"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"authCode":{"type":"string"},"expirationDate":{"format":"date-time","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"},"429":{"$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 auth code for a Domains transfer-out process.","tags":["Domain"]}},"/v2/domains/{domainId}":{"delete":{"operationId":"domain-delete-domain","parameters":[{"examples":{"shortId":{"value":"my-domain.de"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"in":"path","name":"domainId","required":true,"schema":{"type":"string"}},{"description":"Only for .de Domains","in":"query","name":"transit","schema":{"type":"boolean"}},{"description":"Whether to also delete the corresponding Ingress and subdomain Ingresses.","in":"query","name":"deleteIngresses","schema":{"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"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":[{"examples":{"shortId":{"value":"my-domain.de"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"in":"path","name":"domainId","required":true,"schema":{"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"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a Domain.","tags":["Domain"]}},"/v2/domains/latest-screenshot":{"get":{"operationId":"domain-get-latest-screenshot","parameters":[{"in":"query","name":"domainName","required":true,"schema":{"example":"example.com","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"reference":{"type":"string"}},"type":"object"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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/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":"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."},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"This route is deprecated. Please use /v2/domain-tlds instead.","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":""},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":[{"examples":{"shortId":{"value":"my-domain.de"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"in":"path","name":"domainId","required":true,"schema":{"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"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Resend a Domain email.","tags":["Domain"]}},"/v2/domain-suggestions":{"get":{"operationId":"domain-suggest","parameters":[{"in":"query","name":"prompt","required":true,"schema":{"maxLength":500,"type":"string"}},{"in":"query","name":"domainCount","required":false,"schema":{"default":6,"maximum":30,"minimum":1,"type":"integer"}},{"in":"query","name":"tlds","required":false,"schema":{"items":{"type":"string"},"type":"array"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.domain.SuggestedDomains"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[],"summary":"Suggest a list of domains based on a prompt using AI.","tags":["Domain"]}},"/v2/domains/{domainId}/authcode":{"patch":{"description":"This route is deprecated. Please use /v2/domains/{domainId}/auth-code instead.","parameters":[{"examples":{"shortId":{"value":"my-domain.de"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"in":"path","name":"domainId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"authCode":{"minLength":4,"type":"string"}},"required":["authCode"]}}},"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":"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":[{"examples":{"shortId":{"value":"my-domain.de"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"in":"path","name":"domainId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"authCode":{"minLength":4,"type":"string"}},"required":["authCode"]}}},"required":true},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":[{"examples":{"shortId":{"value":"my-domain.de"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"in":"path","name":"domainId","required":true,"schema":{"type":"string"}},{"in":"path","name":"contact","required":true,"schema":{"enum":["owner"],"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"avoidEmailConfirmation":{"description":"Whether to avoid the email confirmation if possible. If set to true, a transfer lock of 60 days might be applied to the domain.","type":"boolean"},"contact":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.domain.HandleField"},"minItems":1,"type":"array"}},"required":["contact"]}}},"description":"The new contact data of the Domain.","required":true},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":[{"examples":{"shortId":{"value":"my-domain.de"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"in":"path","name":"domainId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"projectId":{"format":"uuid","type":"string"}}}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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/authenticate-session-token":{"post":{"operationId":"extension-authenticate-with-session-token","requestBody":{"content":{"application/json":{"schema":{"properties":{"extensionSecret":{"description":"The secret you you generated for your extension.","type":"string"},"sessionToken":{"description":"The session token you received from the mStudio.","type":"string"}},"required":["sessionToken"],"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"},"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":"Authenticate your external application using a session token and an extension secret","tags":["Marketplace"]}},"/v2/extension-instances/{extensionInstanceId}/termination":{"delete":{"operationId":"extension-cancel-extension-termination","parameters":[{"example":"d7238330-e080-494c-a7d4-9b3abf2e0764","in":"path","name":"extensionInstanceId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"extensionInstanceId":{"format":"uuid","type":"string"}},"required":["extensionInstanceId"]}}},"description":"The Termination was cancelled."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Cancel an Extension Instance Termination.","tags":["Marketplace"]},"post":{"operationId":"extension-schedule-extension-termination","parameters":[{"example":"d7238330-e080-494c-a7d4-9b3abf2e0764","in":"path","name":"extensionInstanceId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"instantTermination":{"description":"If set, the Extension Instance will be removed as fast as possible. No credit will be given.","type":"boolean"}},"type":"object"}}}},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"extensionInstanceId":{"format":"uuid","type":"string"}},"required":["extensionInstanceId"]}}},"description":"A Termination was scheduled."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Schedule an Extension Instance Termination for the next possible date.","tags":["Marketplace"]}},"/v2/extension-instances/{extensionInstanceId}/contract/variant-change":{"delete":{"operationId":"extension-cancel-extension-variant-change","parameters":[{"example":"d7238330-e080-494c-a7d4-9b3abf2e0764","in":"path","name":"extensionInstanceId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"extensionInstanceId":{"format":"uuid","type":"string"}},"required":["extensionInstanceId"]}}},"description":"The Variant Change was cancelled."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Cancel an Extension Instance Variant Change.","tags":["Marketplace"]},"post":{"operationId":"extension-schedule-extension-variant-change","parameters":[{"example":"d7238330-e080-494c-a7d4-9b3abf2e0764","in":"path","name":"extensionInstanceId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"targetVariantKey":{"description":"The target variant key to change to.","type":"string"}},"type":"object"}}}},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"effectiveDate":{"description":"The Date the variant change will be executed.","format":"date-time","type":"string"},"extensionInstanceId":{"description":"The ID of the Extension Instance the variant change was scheduled for.","format":"uuid","type":"string"}}}}},"description":"A Variant Change was scheduled."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Schedule an Extension Instance Variant change for the next possible date.","tags":["Marketplace"]}},"/v2/contributors/{contributorId}/extensions/{extensionId}/context":{"put":{"operationId":"extension-change-context","parameters":[{"in":"path","name":"contributorId","required":true,"schema":{"type":"string"}},{"in":"path","name":"extensionId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"context":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.Context"}},"required":["context"],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"cleaningUpInstances":{"description":"If this value is true the context will change asynchronously after removing all extension-instances of this extension.","example":true,"type":"boolean"},"currentContext":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.Context"},"id":{"format":"uuid","type":"string"}},"required":["id","currentContext","cleaningUpInstances"],"type":"object"}}},"description":"The Extension context-change has been requested."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Change the context of an Extension.","tags":["Marketplace"]}},"/v2/extensions/{extensionId}/contexts/{contextId}/chargability":{"get":{"operationId":"extension-check-extension-is-chargable","parameters":[{"in":"path","name":"extensionId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"contextId","required":true,"schema":{"type":"string"}},{"in":"query","name":"variantKey","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"chargeability":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ExtensionInstanceChargeability"}},"required":["chargeability"],"type":"object"}}},"description":"The calculated chargeability of an extension instance to be created."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[],"summary":"Check if an Extension is unchargable for this specific context or if it must be charged.","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":{"description":"The scopes have been applied."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Consent to extension scopes.","tags":["Marketplace"]}},"/v2/contributors/{contributorId}/onboarding-process":{"post":{"operationId":"extension-create-contributor-onboarding-process","description":"The OnboardingProcess is needed to publish paid extensions.","parameters":[{"examples":{"shortId":{"value":"1900000"},"uuid":{"value":"72830cb2-b5b9-4f86-b6f5-e12e13787af6"}},"in":"path","name":"contributorId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"shippingCountryRestriction":{"description":"You can restrict your customers to certain countries.","enum":["onlyDomestic"],"type":"string"}},"required":["shippingCountryRestriction"],"type":"object"}}},"required":false},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"contributorId":{"format":"uuid","type":"string"},"onboardingLink":{"type":"string"}},"type":"object"}}},"description":"The Process has been started."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$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 the OnboardingProcess of a Contributor.","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"},"variantKey":{"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"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.Error"}}},"description":"You either have insufficient access to the extension context or are not allowed to install this extension for free. In the latter case, you need to order the extension instead via POST /v2/extensions/{extensionId}/checkout"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$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 ExtensionInstance.","tags":["Marketplace"]},"get":{"operationId":"extension-list-extension-instances","parameters":[{"in":"query","name":"context","required":false,"schema":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.Context"}},{"description":"The ID of your customer or project.","in":"query","name":"contextId","required":false,"schema":{"type":"string"}},{"in":"query","name":"extensionId","required":false,"schema":{"format":"uuid","type":"string"}},{"in":"query","name":"searchTerm","required":false,"schema":{"type":"string"}},{"in":"query","name":"anchor","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false},{"name":"sort","in":"query","description":"List of fields how the result should be sorted.","schema":{"type":"array","items":{"type":"string","enum":["createdAt","extensionId","extensionName"]},"default":["createdAt"]},"required":false},{"name":"order","in":"query","description":"Should the result be sorted ascending or descending? You can specify for each field another sorting: sort[0]=foo, order[0]=asc, sort[1]=bar, order[1]=desc.","schema":{"type":"array","items":{"type":"string","enum":["asc","desc"]},"default":["asc"]},"required":false}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ExtensionInstance"},"type":"array"}}},"description":"A list of extension instances.","headers":{"X-Pagination-Limit":{"description":"The limit used to select the resources for the response","schema":{"type":"integer"}},"X-Pagination-Skip":{"description":"The number of skipped items","schema":{"type":"integer"}},"X-Pagination-Page":{"description":"The calculate page of the list response. Refer to parameters to learn more.","schema":{"type":"number"}},"X-Pagination-TotalCount":{"description":"The total amount of items available in the remote ressource. Use this value in combination with the limit to calculate the available pages.","schema":{"type":"integer"}}}},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$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 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":"The ExtensionInstance has been removed. It will be cleaned up in the background."},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a free ExtensionInstance. If the Extension is chargable the contract must be terminated instead.","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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get an ExtensionInstance.","tags":["Marketplace"]}},"/v2/contributors/{contributorId}/extensions/{extensionId}":{"delete":{"operationId":"extension-delete-extension","description":"Remove the Extension. Make sure that there are no instances for this extension","parameters":[{"in":"path","name":"contributorId","required":true,"schema":{"type":"string"}},{"in":"path","name":"extensionId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"reason":{"example":"The deprecation phase of the extension has ended. The successor will now be the only usable version of this extension.","type":"string"}},"type":"object"}}},"required":false},"responses":{"204":{"description":"The extension will be removed asynchronously"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete an extension.","tags":["Marketplace"]},"get":{"operationId":"extension-get-own-extension","parameters":[{"in":"path","name":"contributorId","required":true,"schema":{"type":"string"}},{"in":"path","name":"extensionId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.OwnExtension"}}},"description":"Get your own extension."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get Extension of own contributor.","tags":["Marketplace"]},"patch":{"operationId":"extension-patch-extension","parameters":[{"in":"path","name":"contributorId","required":true,"schema":{"type":"string"}},{"in":"path","name":"extensionId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"assets":{"description":"Used to patch asset order.","items":{"format":"uuid","type":"string"},"type":"array"},"deprecation":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ExtensionDeprecation"},"description":{"type":"string"},"detailedDescriptions":{"allOf":[{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.DetailedDescriptions"}],"nullable":true},"externalFrontends":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ExternalComponent"},"nullable":true,"type":"array"},"frontendFragments":{"additionalProperties":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.FrontendFragment"},"nullable":true,"type":"object"},"name":{"type":"string"},"scopes":{"items":{"type":"string"},"type":"array"},"subTitle":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.SubTitle"},"support":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.SupportMeta"},"tags":{"items":{"type":"string"},"type":"array"},"webhookUrls":{"allOf":[{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.WebhookUrls"}],"nullable":true}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.OwnExtension"}}},"description":"The extension has been patched."},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Patch Extension.","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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Disable an ExtensionInstance.","tags":["Marketplace"]}},"/v2/contributors/{contributorId}/extensions/{extensionId}/extension-instances/{extensionInstanceId}/actions/dry-run/{webhookKind}":{"post":{"operationId":"extension-dry-run-webhook","parameters":[{"in":"path","name":"contributorId","required":true,"schema":{"type":"string"}},{"in":"path","name":"extensionId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"The ID of an extension instance. For this route it can be made up.","in":"path","name":"extensionInstanceId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"webhookKind","required":true,"schema":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.WebhookKind"}},{"description":"Define the contextId. If left empty, the contextId will be random.","in":"query","name":"contextId","required":false,"schema":{"type":"string"}},{"description":"Define the scopes. If left empty, the scopes will be those defined in the extension.","in":"query","name":"scopes","required":false,"schema":{"items":{"type":"string"},"type":"array"}},{"description":"Define the `disabled` state of the extension instance. If left empty, the it will be random.","in":"query","name":"instanceDisabled","required":false,"schema":{"type":"boolean"}},{"description":"Define the creation timestamp of the extension instance. If left empty, the it will be random.","in":"query","name":"createdAt","required":false,"schema":{"format":"date-time","type":"string"}},{"description":"Define the secret of the extension instance. If left empty, the it will be random. This secret will not be able to be used.","in":"query","name":"secret","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"errorMessage":{"description":"The error message of an internal error.","example":"The url httpsecurity is not a valid protocol","type":"string"},"responseBody":{"type":"string"},"responseCode":{"description":"The http status code that the external application responded with.","example":200,"type":"number"},"responseHeaders":{"type":"string"},"routeCalled":{"example":"https://example.com/extension/e1a9370f-cc3c-42b9-98b4-8e3ac54c9710/instance/f567441d-2429-48fd-8fe9-6c5dc18722d8/add?dry-run=true","type":"string"},"successful":{"description":"This shows if the response of the external application has been accepted as successful.","example":true,"type":"boolean"}},"required":["successful","routeCalled"],"type":"object"}}},"description":"The webhook has been run successfully."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Dry run a webhook with random or given values.","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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Enable an ExtensionInstance.","tags":["Marketplace"]}},"/v2/contributors/{contributorId}/extensions/{extensionId}/secret":{"post":{"operationId":"extension-generate-extension-secret","description":"This generates a new Extension secret for the given Extension.\nIf an Extension secret existed previously, it will deprecate the existing secret.\nThis means, it will be invalidated after approximately one day.\n","parameters":[{"in":"path","name":"contributorId","required":true,"schema":{"type":"string"}},{"in":"path","name":"extensionId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"secret":{"type":"string"},"secretId":{"format":"uuid","type":"string"}},"required":["secretId","secret"],"type":"object"}}},"description":"A new Extension secret has been generated."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Generate an Extension secret for the given Extension.","tags":["Marketplace"]}},"/v2/extension-instances/{extensionInstanceId}/sessions/{sessionId}":{"post":{"operationId":"extension-generate-session-token","parameters":[{"in":"path","name":"extensionInstanceId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"ID of the session. Use this to receive session tokens with a stable identifier so that extensions have the possibility to store session information.","in":"path","name":"sessionId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"sessionToken":{"type":"string"}},"required":["sessionToken"],"type":"object"}}},"description":"The generated session token"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Generate a session token to transmit it to the extensions frontend fragment.","tags":["Marketplace"]}},"/v2/customers/{customerId}/extension-orders":{"get":{"operationId":"extension-get-customer-extension-instance-orders","parameters":[{"examples":{"shortId":{"value":"1000026"},"uuid":{"value":"13eac206-ada6-4ac8-a4c0-21b263df6cbf"}},"in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"context":{"enum":["project","customer"],"type":"string"},"extensionId":{"type":"string"},"referencedId":{"type":"string"}},"type":"object"},"type":"array"}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get all open extension orders for given customer","tags":["Marketplace"]}},"/v2/extension-instances/{extensionInstanceId}/contract":{"get":{"operationId":"extension-get-extension-instance-contract","parameters":[{"example":"fbc49def-2e87-4874-8e30-a0dabe59e008","in":"path","name":"extensionInstanceId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.extension.ExtensionInstanceContract"}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get the Contract Strategy of an Extension Instance","tags":["Marketplace"]},"put":{"operationId":"extension-update-extension-instance-contract","description":"Call to update Contract for existing Extension Instances. For example to accept a new Pricing.","parameters":[{"example":"907a24e9-0723-4566-b584-86578419e983","in":"path","name":"extensionInstanceId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"variantKey":{"description":"The Variant Key of the selected Variant of the Extension. This is only required if the Extension has multiple Variants.","example":"default","type":"string"}},"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{},"type":"object"}}},"description":"The Price Update has successfully confirmed."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update or Create Contract for existing Extension Instances.","tags":["Marketplace"]}},"/v2/customers/{customerId}/extensions/{extensionId}":{"get":{"operationId":"extension-get-extension-instance-for-customer","parameters":[{"in":"path","name":"customerId","required":true,"schema":{"type":"string"}},{"in":"path","name":"extensionId","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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get the ExtensionInstance of a specific customer and extension, if existing.","tags":["Marketplace"]}},"/v2/projects/{projectId}/extensions/{extensionId}":{"get":{"operationId":"extension-get-extension-instance-for-project","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"extensionId","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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get the ExtensionInstance of a specific project and extension, if existing.","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":{"anyOf":[{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.Extension"},{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.UnpublishedExtension"}]}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[],"summary":"Get an Extension.","tags":["Marketplace"]}},"/v2/projects/{projectId}/extension-orders":{"get":{"operationId":"extension-get-project-extension-instance-orders","parameters":[{"examples":{"shortId":{"value":"p-pkrjw1"},"uuid":{"value":"95e64f67-a49e-4446-968c-f74da2df3a9d"}},"in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"context":{"enum":["project","customer"],"type":"string"},"extensionId":{"type":"string"},"referencedId":{"type":"string"}},"type":"object"},"type":"array"}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get all open extension orders for given project","tags":["Marketplace"]}},"/v2/webhook-public-keys/{serial}":{"get":{"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"}},{"description":"The purpose of the public key. Use `webhook` to get the public key for webhook verification.","in":"query","name":"purpose","required":false,"schema":{"default":"webhook","enum":["webhook","session_token"],"example":"webhook","type":"string"}},{"description":"The expected format of the public key. Defaults to raw base64 encoded.","in":"query","name":"format","required":false,"schema":{"default":"raw","enum":["raw","spki"],"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":[],"summary":"Get the public key to verify the webhook signature.","tags":["Marketplace"],"description":"This route is deprecated. Please use /v2/public-keys/{serial} instead.","deprecated":true}},"/v2/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"}},{"description":"The purpose of the public key. Use `webhook` to get the public key for webhook verification.","in":"query","name":"purpose","required":false,"schema":{"default":"webhook","enum":["webhook","session_token"],"example":"webhook","type":"string"}},{"description":"The expected format of the public key. Defaults to raw base64 encoded.","in":"query","name":"format","required":false,"schema":{"default":"raw","enum":["raw","spki"],"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[],"summary":"Get the public key to verify the webhook signature.","tags":["Marketplace"]}},"/v2/contributors/{contributorId}/extensions/{extensionId}/secret/{extensionSecretId}":{"delete":{"operationId":"extension-invalidate-extension-secret","parameters":[{"in":"path","name":"contributorId","required":true,"schema":{"type":"string"}},{"in":"path","name":"extensionId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"extensionSecretId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"The Extension secret has been invalidated and cannot be used anymore."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Invalidate the given Extension secret immediately.","tags":["Marketplace"]}},"/v2/contributors":{"get":{"operationId":"extension-list-contributors","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.Contributor"},"type":"array"}}},"description":"A List of Contributors within the mStudio.","headers":{"X-Pagination-Limit":{"description":"The limit used to select the resources for the response","schema":{"type":"integer"}},"X-Pagination-Skip":{"description":"The number of skipped items","schema":{"type":"integer"}},"X-Pagination-Page":{"description":"The calculate page of the list response. Refer to parameters to learn more.","schema":{"type":"number"}},"X-Pagination-TotalCount":{"description":"The total amount of items available in the remote ressource. Use this value in combination with the limit to calculate the available pages.","schema":{"type":"integer"}}}},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[],"summary":"List Contributors.","tags":["Marketplace"],"parameters":[{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false},{"name":"sort","in":"query","description":"Sort the result by this field.","schema":{"type":"string","enum":["name"],"default":"name"},"required":false},{"name":"order","in":"query","description":"Should the result be sorted ascending or descending? Default ascending.","schema":{"type":"string","enum":["asc","desc"],"default":"asc"},"required":false}]}},"/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":"searchTerm","required":false,"schema":{"type":"string"}},{"in":"query","name":"includeDeprecated","required":false,"schema":{"type":"boolean"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","default":1000,"minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false},{"name":"sort","in":"query","description":"Sort the result by this field.","schema":{"type":"string","enum":["name"],"default":"name"},"required":false},{"name":"order","in":"query","description":"Should the result be sorted ascending or descending? Default ascending.","schema":{"type":"string","enum":["asc","desc"],"default":"asc"},"required":false}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.Extension"},"type":"array"}}},"description":"OK","headers":{"X-Pagination-Limit":{"description":"The limit used to select the resources for the response","schema":{"type":"integer"}},"X-Pagination-Skip":{"description":"The number of skipped items","schema":{"type":"integer"}},"X-Pagination-Page":{"description":"The calculate page of the list response. Refer to parameters to learn more.","schema":{"type":"number"}},"X-Pagination-TotalCount":{"description":"The total amount of items available in the remote ressource. Use this value in combination with the limit to calculate the available pages.","schema":{"type":"integer"}}}},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[],"summary":"List Extensions.","tags":["Marketplace"]}},"/v2/contributors/{contributorId}/extensions":{"get":{"operationId":"extension-list-own-extensions","parameters":[{"in":"path","name":"contributorId","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.OwnExtension"},"type":"array"}}},"description":"A list of extensions of the contributor.","headers":{"X-Pagination-Limit":{"description":"The limit used to select the resources for the response","schema":{"type":"integer"}},"X-Pagination-Skip":{"description":"The number of skipped items","schema":{"type":"integer"}},"X-Pagination-Page":{"description":"The calculate page of the list response. Refer to parameters to learn more.","schema":{"type":"number"}},"X-Pagination-TotalCount":{"description":"The total amount of items available in the remote ressource. Use this value in combination with the limit to calculate the available pages.","schema":{"type":"integer"}}}},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List Extensions of own contributor.","tags":["Marketplace"]},"post":{"operationId":"extension-register-extension","parameters":[{"in":"path","name":"contributorId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"context":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.Context"},"description":{"type":"string"},"detailedDescriptions":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.DetailedDescriptions"},"externalFrontend":{"deprecated":true,"items":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ExternalComponent"},"type":"array"},"externalFrontends":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.ExternalComponent"},"type":"array"},"frontendFragments":{"additionalProperties":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.FrontendFragment"},"type":"object"},"name":{"type":"string"},"scopes":{"items":{"type":"string"},"type":"array"},"subTitle":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.SubTitle"},"support":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.SupportMeta"},"tags":{"items":{"type":"string"},"type":"array"},"webhookURLs":{"allOf":[{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.WebhookUrls"},{"deprecated":true,"type":"object"}]},"webhookUrls":{"$ref":"#/components/schemas/de.mittwald.v1.marketplace.WebhookUrls"}},"required":["name"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"uuid","type":"string"}},"required":["id"],"type":"object"}}},"description":"The extension has been registered."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Register an Extension.","tags":["Marketplace"]}},"/v2/scopes":{"get":{"operationId":"extension-list-scopes","responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"name":{"example":"user:read","type":"string"}},"required":["name"],"type":"object"},"type":"array"}}},"description":"A list of possible scopes for the mStudio."},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"List Scopes.","tags":["Marketplace"]}},"/v2/extensions/{extensionId}/order":{"post":{"operationId":"extension-order-extension","parameters":[{"example":"907a24e9-0723-4566-b584-86578419e983","in":"path","name":"extensionId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"consentedScopes":{"items":{"type":"string"},"type":"array"},"customerId":{"description":"The customer the extension should be booked for. Either customerId or projectId is required.","format":"uuid","type":"string"},"variantKey":{"description":"The Variant Key of the selected Variant of the Extension. This is only required if the Extension has multiple Variants.","example":"default","type":"string"}},"required":["consentedScopes","customerId"],"type":"object"},{"properties":{"consentedScopes":{"items":{"type":"string"},"type":"array"},"projectId":{"description":"The project the extension should be installed in. Either customerId or projectId is required.","format":"uuid","type":"string"},"variantKey":{"description":"The Variant Key of the selected Variant of the Extension. This is only required if the Extension has multiple Variants.","example":"default","type":"string"}},"required":["consentedScopes","projectId"],"type":"object"}]}}}},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{},"type":"object"}}},"description":"Order successful. Extension will be installed in the background."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Order Extension with saved payment method","tags":["Marketplace"]}},"/v2/contributors/{contributorId}/extensions/{extensionId}/assets/{assetRefId}":{"delete":{"operationId":"extension-remove-asset","parameters":[{"in":"path","name":"contributorId","required":true,"schema":{"type":"string"}},{"in":"path","name":"extensionId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"assetRefId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"The asset has been removed."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Remove an asset of an extension.","tags":["Marketplace"]}},"/v2/contributors/{contributorId}/extensions/{extensionId}/logo":{"delete":{"operationId":"extension-remove-logo","parameters":[{"in":"path","name":"contributorId","required":true,"schema":{"type":"string"}},{"in":"path","name":"extensionId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"The Logo has been removed."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Remove the logo of an extension.","tags":["Marketplace"]},"post":{"operationId":"extension-request-logo-upload","parameters":[{"in":"path","name":"contributorId","required":true,"schema":{"type":"string"}},{"in":"path","name":"extensionId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"logoRefId":{"description":"Use the logoRefId as updload token at `/v2/files/{logoRefId}`.","format":"uuid","type":"string"},"rules":{"description":"Constraints for the logo image upload.","properties":{"extensions":{"items":{"example":".png","type":"string"},"type":"array"},"fileTypes":{"items":{"properties":{"extensions":{"items":{"example":".png","type":"string"},"type":"array"},"mimeType":{"example":"image/png","type":"string"}},"required":["mimeType","extensions"],"type":"object"},"type":"array"},"maxSizeInBytes":{"type":"integer"},"mimeTypes":{"items":{"example":"image/png","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"}},"required":["min","max"],"type":"object"}},"type":"object"}},"required":["mimeTypes","extensions","fileTypes","maxSizeInBytes"],"type":"object"}},"required":["logoRefId","rules"],"type":"object"}}},"description":"The Upload of a logo for the extension has been requested."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Add a logo to an extension.","tags":["Marketplace"]}},"/v2/contributors/{contributorId}/extensions/{extensionId}/assets":{"post":{"operationId":"extension-request-asset-upload","parameters":[{"in":"path","name":"contributorId","required":true,"schema":{"type":"string"}},{"in":"path","name":"extensionId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"assetType":{"enum":["image","video"],"type":"string"}},"required":["assetType"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"assetRefId":{"description":"Use the ID as upload token at `/v2/files/{assetRefId}`. This ID will also be the ID of your asset in extension.","format":"uuid","type":"string"},"rules":{"description":"Constraints for the asset image or video upload, defers on the given assetType.","properties":{"extensions":{"items":{"example":".png","type":"string"},"type":"array"},"fileTypes":{"items":{"properties":{"extensions":{"items":{"example":".png","type":"string"},"type":"array"},"mimeType":{"example":"image/png","type":"string"}},"required":["mimeType","extensions"],"type":"object"},"type":"array"},"maxSizeInBytes":{"type":"integer"},"mimeTypes":{"items":{"example":"image/png","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"}},"required":["min","max"],"type":"object"}},"type":"object"}},"required":["mimeTypes","extensions","fileTypes","maxSizeInBytes"],"type":"object"}},"required":["assetRefId","rules"],"type":"object"}}},"description":"The Upload of an asset for the extension has been requested."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Add an asset to an extension.","tags":["Marketplace"]}},"/v2/contributors/{contributorId}/extensions/{extensionId}/verification-process":{"post":{"operationId":"extension-request-extension-verification","parameters":[{"in":"path","name":"contributorId","required":true,"schema":{"type":"string"}},{"in":"path","name":"extensionId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"The verification has been requested."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Start the verification process of an Extension.","tags":["Marketplace"]}},"/v2/contributors/{contributorId}/extensions/{extensionId}/published":{"put":{"operationId":"extension-set-extension-published-state","parameters":[{"in":"path","name":"contributorId","required":true,"schema":{"type":"string"}},{"in":"path","name":"extensionId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"published":{"default":true,"description":"Whether the extension should be publicly visible.","type":"boolean"},"reason":{"description":"When withdrawing an extension a reason is required.","type":"string"}},"required":["published"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"format":"uuid","type":"string"},"published":{"type":"boolean"}},"required":["id","published"],"type":"object"}}},"description":"The Extension visibility has been adjusted."},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Publish or withdraw an Extension.","tags":["Marketplace"]}},"/v2/contributors/{contributorId}/extensions/{extensionId}/pricing":{"put":{"operationId":"extension-update-extension-pricing","description":"The Pricing is needed to publish paid extensions.","parameters":[{"example":"907a24e9-0723-4566-b584-86578419e983","in":"path","name":"extensionId","required":true,"schema":{"format":"uuid","type":"string"}},{"examples":{"shortId":{"value":"1900000"},"uuid":{"value":"72830cb2-b5b9-4f86-b6f5-e12e13787af6"}},"in":"path","name":"contributorId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"examples":{"priceInCents":{"value":{"dryRun":true,"priceInCents":999}},"pricePlan":{"value":{"dryRun":true,"pricePlan":{"variants":[{"description":"Description of the Variant.","key":"variant-key","name":"Name of the Variant","priceInCents":999}]}}}},"schema":{"oneOf":[{"properties":{"dryRun":{"default":false,"description":"If set to true, the request will be validated but not executed.","type":"boolean"},"priceInCents":{"description":"Price in cents.","type":"number"}},"required":["priceInCents"],"type":"object"},{"properties":{"dryRun":{"default":false,"description":"If set to true, the request will be validated but not executed.","type":"boolean"},"pricePlan":{"$ref":"#/components/schemas/de.mittwald.v1.extension.PricePlan"}},"required":["pricePlan"],"type":"object"}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"extensionId":{"description":"The ID of the Extension.","format":"uuid","type":"string"},"nextPossiblePriceChange":{"description":"The time until which the contributor is blocked from changing the price again.","format":"date-time","type":"string"},"priceChangeConsequence":{"properties":{"contributorConsequence":{"description":"Description of the consequence for the Extension from the perspective of the contributor. Values: * \"NONE\": No consequence. * \"EDIT_BLOCK\": The Extension will be blocked for editing by the contributor for 30 days.\n","enum":["NONE","EDIT_BLOCK"],"type":"string"},"globalCustomerConsequence":{"description":"Description of the consequence for all Customers of the Extension. Values: * \"NONE\": No consequence. * \"INFO\": Customers will be informed about the upcoming changes to their contracts. * \"CONFIRM_REQUIRED\": Customers will have to confirm or select the accepted changes to their contracts within 30 days or their contracts will be automatically cancelled.\n","enum":["NONE","INFO","CONFIRM_REQUIRED"],"type":"string"},"variantConsequences":{"items":{"properties":{"consequence":{"description":"The individual consequence for customers of a specific variant of the Extension. Values: * \"NONE\": No consequence. * \"INFO\": Customers will be informed about the upcoming changes to their contracts. * \"CONFIRM_REQUIRED\": Customers will have to confirm or select the accepted changes to their contracts within 30 days or their contracts will be automatically cancelled.\n","enum":["NONE","INFO","CONFIRM_REQUIRED"],"type":"string"},"deletionDeadline":{"description":"The date the variant will ne deleted","format":"date-time","type":"string"},"variantKey":{"description":"The key of the variant of the Extension.","type":"string"}},"type":"object"},"type":"array"}},"required":["contributorConsequence","globalCustomerConsequence","variantConsequences"],"type":"object"}},"required":["extensionId","priceChangeConsequence"],"type":"object"}}},"description":"The Pricing has been updated."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Creates or Updates Pricing for an Extension.","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":{"multipart/form-data":{"schema":{"properties":{"file":{"example":"binary","format":"binary","type":"string"}},"required":["file"],"type":"object"}}},"required":true},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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.","examples":{"shortId":{"value":"file-123456"},"uuid":{"value":"13eac206-ada6-4ac8-a4c0-21b263df6cbf"}},"in":"path","name":"fileId","required":true,"schema":{"type":"string"}},{"description":"Only needed for protected Files.","in":"header","name":"Token","required":false,"schema":{"example":"jwt","type":"string"}},{"description":"Only needed for protected Files.","in":"query","name":"token","required":false,"schema":{"example":"jwt","type":"string"},"x-go-name":"QueryParameterToken"}],"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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","extensionAssetImage","extensionAssetVideo","anchorIcon","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"}},"security":[],"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.","examples":{"shortId":{"value":"file-123456"},"uuid":{"value":"13eac206-ada6-4ac8-a4c0-21b263df6cbf"}},"in":"path","name":"fileId","required":true,"schema":{"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"}},{"in":"query","name":"accept","schema":{"default":"application/octet-stream","enum":["application/octet-stream","text/plain;base64"],"example":"application/octet-stream","type":"string"},"x-go-name":"QueryParameterAccept"},{"in":"query","name":"content-disposition","schema":{"default":"inline","enum":["inline","attachment"],"example":"inline","type":"string"},"x-go-name":"QueryParameterContentDisposition"},{"description":"Only needed for protected Files.","in":"query","name":"token","required":false,"schema":{"example":"jwt","type":"string"},"x-go-name":"QueryParameterToken"}],"responses":{"200":{"content":{"application/octet-stream":{"schema":{"format":"binary","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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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.","examples":{"shortId":{"value":"file-123456"},"uuid":{"value":"13eac206-ada6-4ac8-a4c0-21b263df6cbf"}},"in":"path","name":"fileId","required":true,"schema":{"type":"string"}},{"description":"Name of the File to be retrieved.","in":"path","name":"fileName","required":true,"schema":{"example":"me.jpeg","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"}},{"in":"query","name":"accept","schema":{"default":"application/octet-stream","enum":["application/octet-stream","text/plain;base64"],"example":"application/octet-stream","type":"string"},"x-go-name":"QueryParameterAccept"},{"in":"query","name":"content-disposition","schema":{"default":"inline","enum":["inline","attachment"],"example":"inline","type":"string"},"x-go-name":"QueryParameterContentDisposition"},{"description":"Only needed for protected Files.","in":"query","name":"token","required":false,"schema":{"example":"jwt","type":"string"},"x-go-name":"QueryParameterToken"}],"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"500":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get a File with user-friendly url.","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"}}},"required":true},"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"},"409":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$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 Ingress.","tags":["Domain"]},"get":{"operationId":"ingress-list-ingresses","parameters":[{"description":"ID of the Project to list Ingresses for.","examples":{"shortId":{"value":"p-XXXXXX"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"in":"query","name":"projectId","required":false,"schema":{"type":"string"}},{"description":"ID of the Certificate to list Ingresses for.","in":"query","name":"certificateId","required":false,"schema":{"format":"uuid","type":"string"}},{"description":"Substring of the hostnames to be retrieved.","in":"query","name":"hostnameSubstring","required":false,"schema":{"maxLength":253,"type":"string"}},{"description":"ID of the AppInstallation to list Ingresses for.","examples":{"shortId":{"value":"a-XXXXXX"},"uuid":{"value":"e1a72f92-004d-4688-a399-4639fcce1cdf"}},"in":"query","name":"appInstallationId","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","default":10000,"minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.ingress.Ingress"},"type":"array"}}},"description":"OK","headers":{"X-Pagination-Limit":{"description":"The limit used to select the resources for the response","schema":{"type":"integer"}},"X-Pagination-Skip":{"description":"The number of skipped items","schema":{"type":"integer"}},"X-Pagination-Page":{"description":"The calculate page of the list response. Refer to parameters to learn more.","schema":{"type":"number"}},"X-Pagination-TotalCount":{"description":"The total amount of items available in the remote ressource. Use this value in combination with the limit to calculate the available pages.","schema":{"type":"integer"}}}},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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/actions/list-ingresses-compatible-with-certificate":{"post":{"operationId":"ingress-list-ingresses-compatible-with-certificate","description":"List Ingresses in a Project compatible with a certificate.","requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.ingress.ListIngressesCompatibleWithCertificateRequest"},{"$ref":"#/components/schemas/de.mittwald.v1.ingress.ListIngressesCompatibleWithCertificateIDRequest"}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.ingress.Ingress"},"type":"array"}}},"description":"OK","headers":{"X-Pagination-Limit":{"description":"The limit used to select the resources for the response","schema":{"type":"integer"}},"X-Pagination-Skip":{"description":"The number of skipped items","schema":{"type":"integer"}},"X-Pagination-Page":{"description":"The calculate page of the list response. Refer to parameters to learn more.","schema":{"type":"number"}},"X-Pagination-TotalCount":{"description":"The total amount of items available in the remote ressource. Use this value in combination with the limit to calculate the available pages.","schema":{"type":"integer"}}}},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List Ingresses compatible with a certificate.","tags":["Domain"],"parameters":[{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","default":10000,"minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false}]}},"/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"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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/invoices/{invoiceId}":{"get":{"operationId":"invoice-detail","parameters":[{"examples":{"shortId":{"value":"RG200871"},"uuid":{"value":"6d70791c-78f5-4f6d-9c83-3dad18e95c66"}},"in":"path","name":"invoiceId","required":true,"schema":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":[{"examples":{"shortId":{"value":"1000026"},"uuid":{"value":"13eac206-ada6-4ac8-a4c0-21b263df6cbf"}},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":[{"examples":{"shortId":{"value":"1000026"},"uuid":{"value":"13eac206-ada6-4ac8-a4c0-21b263df6cbf"}},"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":{"deprecated":true,"description":"parameter is deprecated and will be ignored","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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":[{"examples":{"shortId":{"value":"1000026"},"uuid":{"value":"13eac206-ada6-4ac8-a4c0-21b263df6cbf"}},"in":"path","name":"customerId","required":true,"schema":{"type":"string"}},{"examples":{"shortId":{"value":"RG200871"},"uuid":{"value":"6d70791c-78f5-4f6d-9c83-3dad18e95c66"}},"in":"path","name":"invoiceId","required":true,"schema":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":[{"examples":{"shortId":{"value":"1000026"},"uuid":{"value":"13eac206-ada6-4ac8-a4c0-21b263df6cbf"}},"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":["PAID","OVERPAID"],"in":"query","name":"status","required":false,"schema":{"items":{"enum":["CONFIRMED","PAID","PARTIALLY_PAID","OVERPAID"],"type":"string"},"type":"array"}},{"example":"RG5457","in":"query","name":"search","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","default":1000,"minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false},{"name":"sort","in":"query","description":"List of fields how the result should be sorted.","schema":{"type":"array","items":{"type":"string","enum":["invoiceNumber"]},"default":["invoiceNumber"]},"required":false},{"name":"order","in":"query","description":"Should the result be sorted ascending or descending? You can specify for each field another sorting: sort[0]=foo, order[0]=asc, sort[1]=bar, order[1]=desc.","schema":{"type":"array","items":{"type":"string","enum":["asc","desc"]},"default":["desc"]},"required":false}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.invoice.Invoice"},"type":"array"}}},"description":"","headers":{"X-Pagination-Limit":{"description":"The limit used to select the resources for the response","schema":{"type":"integer"}},"X-Pagination-Skip":{"description":"The number of skipped items","schema":{"type":"integer"}},"X-Pagination-Page":{"description":"The calculate page of the list response. Refer to parameters to learn more.","schema":{"type":"number"}},"X-Pagination-TotalCount":{"description":"The total amount of items available in the remote ressource. Use this value in combination with the limit to calculate the available pages.","schema":{"type":"integer"}}}},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List Invoices of a Customer.","tags":["Contract"]}},"/experimental-v2/customers/{customerId}/lead-fyndr-profile-request":{"post":{"parameters":[{"in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"domain":{"minLength":1,"type":"string"}},"required":["domain"],"type":"object"}}},"description":"","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":"Create a new access request for LeadFyndr.","tags":["LeadFyndr"],"description":"This route is deprecated. Please use /v2/customers/{customerId}/lead-fyndr-profile-request instead.","deprecated":true},"get":{"parameters":[{"in":"path","name":"customerId","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 your LeadFyndr request.","tags":["LeadFyndr"],"description":"This route is deprecated. Please use /v2/customers/{customerId}/lead-fyndr-profile-request instead.","deprecated":true}},"/v2-experimental/customers/{customerId}/lead-fyndr-profile-request":{"post":{"parameters":[{"in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"domain":{"minLength":1,"type":"string"}},"required":["domain"],"type":"object"}}},"description":"","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":"Create a new access request for LeadFyndr.","tags":["LeadFyndr"],"description":"This route is deprecated. Please use /v2/customers/{customerId}/lead-fyndr-profile-request instead.","deprecated":true},"get":{"parameters":[{"in":"path","name":"customerId","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 your LeadFyndr request.","tags":["LeadFyndr"],"description":"This route is deprecated. Please use /v2/customers/{customerId}/lead-fyndr-profile-request instead.","deprecated":true}},"/v2/customers/{customerId}/lead-fyndr-profile-request":{"post":{"operationId":"leadfyndr-create-lead-fyndr-access-request","parameters":[{"in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"domain":{"minLength":1,"type":"string"}},"required":["domain"],"type":"object"}}},"description":"","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"profileId":{"type":"string"}},"required":["profileId"],"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"},"409":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Create a new access request for LeadFyndr.","tags":["LeadFyndr"]},"get":{"operationId":"leadfyndr-get-lead-fyndr-profile-request","parameters":[{"in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.leadfyndr.ProfileRequest"}}},"description":"The LeadFyndr request.\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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get your LeadFyndr request.","tags":["LeadFyndr"]}},"/experimental-v2/customers/{customerId}/unlocked-leads-export":{"post":{"parameters":[{"in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"exportAllLeads":{"description":"Whether to export all leads or only not already exported leads.","type":"boolean"},"fieldKeys":{"description":"The fields to include in the export.","items":{"enum":["domain","potential","performance","generalLook","companyName","emails","phoneNumbers","address","employeeCount","revenue","a-record","nameserver","mailserver","techStack"],"type":"string"},"type":"array"}},"required":["fieldKeys","exportAllLeads"],"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":"Create an export of unlocked leads for the given customerId.","tags":["LeadFyndr"],"description":"This route is deprecated. Please use /v2/customers/{customerId}/unlocked-leads-export instead.","deprecated":true}},"/v2-experimental/customers/{customerId}/unlocked-leads-export":{"post":{"parameters":[{"in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"exportAllLeads":{"description":"Whether to export all leads or only not already exported leads.","type":"boolean"},"fieldKeys":{"description":"The fields to include in the export.","items":{"enum":["domain","potential","performance","generalLook","companyName","emails","phoneNumbers","address","employeeCount","revenue","a-record","nameserver","mailserver","techStack"],"type":"string"},"type":"array"}},"required":["fieldKeys","exportAllLeads"],"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":"Create an export of unlocked leads for the given customerId.","tags":["LeadFyndr"],"description":"This route is deprecated. Please use /v2/customers/{customerId}/unlocked-leads-export instead.","deprecated":true}},"/v2/customers/{customerId}/unlocked-leads-export":{"post":{"operationId":"leadfyndr-create-leads-export","parameters":[{"in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"exportAllLeads":{"description":"Whether to export all leads or only not already exported leads.","type":"boolean"},"fieldKeys":{"description":"The fields to include in the export.","items":{"enum":["domain","potential","performance","generalLook","companyName","emails","phoneNumbers","address","employeeCount","revenue","a-record","nameserver","mailserver","techStack"],"type":"string"},"type":"array"}},"required":["fieldKeys","exportAllLeads"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"contentBase64":{"description":"The base64 encoded csv content of the export.","type":"string"},"exportId":{"type":"string"}},"required":["exportId","contentBase64"],"type":"object"}},"text/csv":{"schema":{"description":"The csv content of the export.","type":"string"}}},"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"},"409":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Create an export of unlocked leads for the given customerId.","tags":["LeadFyndr"]}},"/experimental-v2/cities":{"get":{"parameters":[{"in":"query","name":"input","required":true,"schema":{"minLength":3,"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 cities in DACH.","tags":["LeadFyndr"],"description":"This route is deprecated. Please use /v2/cities instead.","deprecated":true}},"/v2-experimental/cities":{"get":{"parameters":[{"in":"query","name":"input","required":true,"schema":{"minLength":3,"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 cities in DACH.","tags":["LeadFyndr"],"description":"This route is deprecated. Please use /v2/cities instead.","deprecated":true}},"/v2/cities":{"get":{"operationId":"leadfyndr-get-cities","parameters":[{"in":"query","name":"input","required":true,"schema":{"minLength":3,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.leadfyndr.City"},"type":"array"}}},"description":"The list of cities.\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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get cities in DACH.","tags":["LeadFyndr"]}},"/experimental-v2/customers/{customerId}/lead-fyndr-profile/tariff":{"get":{"parameters":[{"in":"path","name":"customerId","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 lead tariff options. How many leads did you unlock this month?","tags":["LeadFyndr"],"description":"This route is deprecated. Please use /v2/customers/{customerId}/lead-fyndr-profile/tariff instead.","deprecated":true}},"/v2-experimental/customers/{customerId}/lead-fyndr-profile/tariff":{"get":{"parameters":[{"in":"path","name":"customerId","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 lead tariff options. How many leads did you unlock this month?","tags":["LeadFyndr"],"description":"This route is deprecated. Please use /v2/customers/{customerId}/lead-fyndr-profile/tariff instead.","deprecated":true}},"/v2/customers/{customerId}/lead-fyndr-profile/tariff":{"get":{"operationId":"leadfyndr-get-lead-fyndr-profile-tariff-options","parameters":[{"in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.leadfyndr.TariffOptions"}}},"description":"The lead tariff options.\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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get lead tariff options. How many leads did you unlock this month?","tags":["LeadFyndr"]}},"/experimental-v2/customers/{customerId}/lead-fyndr-profile":{"get":{"parameters":[{"in":"path","name":"customerId","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 your LeadFyndr profile.","tags":["LeadFyndr"],"description":"This route is deprecated. Please use /v2/customers/{customerId}/lead-fyndr-profile instead.","deprecated":true}},"/v2-experimental/customers/{customerId}/lead-fyndr-profile":{"get":{"parameters":[{"in":"path","name":"customerId","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 your LeadFyndr profile.","tags":["LeadFyndr"],"description":"This route is deprecated. Please use /v2/customers/{customerId}/lead-fyndr-profile instead.","deprecated":true}},"/v2/customers/{customerId}/lead-fyndr-profile":{"get":{"operationId":"leadfyndr-get-lead-fyndr-profile","parameters":[{"in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/de.mittwald.v1.leadfyndr.Profile"},{"properties":{"tariff":{"$ref":"#/components/schemas/de.mittwald.v1.leadfyndr.TariffOptions"}},"required":["tariff"],"type":"object"}]}}},"description":"The LeadFyndr profile.\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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get your LeadFyndr profile.","tags":["LeadFyndr"]}},"/experimental-v2/customers/{customerId}/leads/{leadId}":{"get":{"parameters":[{"in":"path","name":"leadId","required":true,"schema":{"type":"string"}},{"in":"path","name":"customerId","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 a simple lead. Use the unlocked route for more detail leads.","tags":["LeadFyndr"],"description":"This route is deprecated. Please use /v2/customers/{customerId}/leads/{leadId} instead.","deprecated":true}},"/v2-experimental/customers/{customerId}/leads/{leadId}":{"get":{"parameters":[{"in":"path","name":"leadId","required":true,"schema":{"type":"string"}},{"in":"path","name":"customerId","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 a simple lead. Use the unlocked route for more detail leads.","tags":["LeadFyndr"],"description":"This route is deprecated. Please use /v2/customers/{customerId}/leads/{leadId} instead.","deprecated":true}},"/v2/customers/{customerId}/leads/{leadId}":{"get":{"operationId":"leadfyndr-get-lead","parameters":[{"in":"path","name":"leadId","required":true,"schema":{"type":"string"}},{"in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.leadfyndr.Lead"}}},"description":"The lead preview of a lead which is not unlocked yet.\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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get a simple lead. Use the unlocked route for more detail leads.","tags":["LeadFyndr"]}},"/experimental-v2/customers/{customerId}/unlocked-leads-exports":{"get":{"parameters":[{"in":"path","name":"customerId","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false},{"name":"sort","in":"query","description":"Sort the result by this field.","schema":{"type":"string","enum":["exportedAt"],"default":"exportedAt"},"required":false},{"name":"order","in":"query","description":"Should the result be sorted ascending or descending? Default ascending.","schema":{"type":"string","enum":["asc","desc"],"default":"desc"},"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":"Get unlocked leads export history for the given customerId.","tags":["LeadFyndr"],"description":"This route is deprecated. Please use /v2/customers/{customerId}/unlocked-leads-exports instead.","deprecated":true}},"/v2-experimental/customers/{customerId}/unlocked-leads-exports":{"get":{"parameters":[{"in":"path","name":"customerId","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false},{"name":"sort","in":"query","description":"Sort the result by this field.","schema":{"type":"string","enum":["exportedAt"],"default":"exportedAt"},"required":false},{"name":"order","in":"query","description":"Should the result be sorted ascending or descending? Default ascending.","schema":{"type":"string","enum":["asc","desc"],"default":"desc"},"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":"Get unlocked leads export history for the given customerId.","tags":["LeadFyndr"],"description":"This route is deprecated. Please use /v2/customers/{customerId}/unlocked-leads-exports instead.","deprecated":true}},"/v2/customers/{customerId}/unlocked-leads-exports":{"get":{"operationId":"leadfyndr-get-leads-export-history","parameters":[{"in":"path","name":"customerId","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false},{"name":"sort","in":"query","description":"Sort the result by this field.","schema":{"type":"string","enum":["exportedAt"],"default":"exportedAt"},"required":false},{"name":"order","in":"query","description":"Should the result be sorted ascending or descending? Default ascending.","schema":{"type":"string","enum":["asc","desc"],"default":"desc"},"required":false}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.leadfyndr.LeadsExport"},"type":"array"}}},"description":"A list of unlocked leads exports.","headers":{"X-Pagination-Limit":{"description":"The limit used to select the resources for the response","schema":{"type":"integer"}},"X-Pagination-Skip":{"description":"The number of skipped items","schema":{"type":"integer"}},"X-Pagination-Page":{"description":"The calculate page of the list response. Refer to parameters to learn more.","schema":{"type":"number"}},"X-Pagination-TotalCount":{"description":"The total amount of items available in the remote ressource. Use this value in combination with the limit to calculate the available pages.","schema":{"type":"integer"}}}},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get unlocked leads export history for the given customerId.","tags":["LeadFyndr"]}},"/experimental-v2/customers/{customerId}/unlocked-leads/{leadId}":{"get":{"parameters":[{"in":"path","name":"leadId","required":true,"schema":{"type":"string"}},{"in":"path","name":"customerId","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 a detail of a unlocked lead. Organisation can unlock leads.","tags":["LeadFyndr"],"description":"This route is deprecated. Please use /v2/customers/{customerId}/unlocked-leads/{leadId} instead.","deprecated":true},"post":{"parameters":[{"in":"path","name":"leadId","required":true,"schema":{"type":"string"}},{"in":"path","name":"customerId","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":"Unlock a lead for the given customerId.","tags":["LeadFyndr"],"description":"This route is deprecated. Please use /v2/customers/{customerId}/unlocked-leads/{leadId} instead.","deprecated":true}},"/v2-experimental/customers/{customerId}/unlocked-leads/{leadId}":{"get":{"parameters":[{"in":"path","name":"leadId","required":true,"schema":{"type":"string"}},{"in":"path","name":"customerId","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 a detail of a unlocked lead. Organisation can unlock leads.","tags":["LeadFyndr"],"description":"This route is deprecated. Please use /v2/customers/{customerId}/unlocked-leads/{leadId} instead.","deprecated":true},"post":{"parameters":[{"in":"path","name":"leadId","required":true,"schema":{"type":"string"}},{"in":"path","name":"customerId","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":"Unlock a lead for the given customerId.","tags":["LeadFyndr"],"description":"This route is deprecated. Please use /v2/customers/{customerId}/unlocked-leads/{leadId} instead.","deprecated":true}},"/v2/customers/{customerId}/unlocked-leads/{leadId}":{"get":{"operationId":"leadfyndr-get-unlocked-lead","parameters":[{"in":"path","name":"leadId","required":true,"schema":{"type":"string"}},{"in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.leadfyndr.UnlockedLead"}}},"description":"The unlocked lead.\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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get a detail of a unlocked lead. Organisation can unlock leads.","tags":["LeadFyndr"]},"post":{"operationId":"leadfyndr-unlock-lead","parameters":[{"in":"path","name":"leadId","required":true,"schema":{"type":"string"}},{"in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"leadId":{"type":"string"}},"required":["leadId"],"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Unlock a lead for the given customerId.","tags":["LeadFyndr"]}},"/experimental-v2/customers/{customerId}/leads":{"get":{"parameters":[{"in":"path","name":"customerId","required":true,"schema":{"type":"string"}},{"description":"Min inclusive value of potential.\n","in":"query","name":"potentialRangeMin","required":false,"schema":{"format":"float","maximum":1,"minimum":0,"type":"number"}},{"description":"Max inclusive value of potential.\n","in":"query","name":"potentialRangeMax","required":false,"schema":{"format":"float","maximum":1,"minimum":0,"type":"number"}},{"description":"Min inclusive value of employeeCount.\n","in":"query","name":"employeeCountMin","required":false,"schema":{"format":"int64","type":"integer"}},{"description":"Max inclusive value of employeeCount.\n","in":"query","name":"employeeCountMax","required":false,"schema":{"format":"int64","type":"integer"}},{"description":"Min inclusive value of salesVolume.\n","in":"query","name":"salesVolumeMin","required":false,"schema":{"format":"int64","type":"integer"}},{"description":"Max inclusive value of salesVolume.\n","in":"query","name":"salesVolumeMax","required":false,"schema":{"format":"int64","type":"integer"}},{"description":"A list of technologies to filter. Use \"none\" to filter leads without a main technology.\n","in":"query","name":"technologies","required":false,"schema":{"items":{"oneOf":[{"type":"string"},{"enum":["none"],"type":"string"}]},"type":"array"}},{"description":"A list of businessFields to filter.\n","in":"query","name":"businessFields","required":false,"schema":{"items":{"type":"string"},"maxItems":15,"type":"array"}},{"description":"City of location point.\n","in":"query","name":"locationCity","required":false,"schema":{"type":"string"}},{"description":"Post code of location point.\n","in":"query","name":"locationPostCode","required":false,"schema":{"type":"string"}},{"description":"Radius from the location point.\n","in":"query","name":"locationRadiusInKm","required":false,"schema":{"minimum":20,"type":"number"}},{"description":"Min inclusive value of timeToFirstByteMs.\n","in":"query","name":"basic:timeToFirstByteMs:min","required":false,"schema":{"type":"number"}},{"description":"Max inclusive value of timeToFirstByteMs.\n","in":"query","name":"basic:timeToFirstByteMs:max","required":false,"schema":{"type":"number"}},{"description":"Min inclusive value of desktop lighthouse metric performance.\n","in":"query","name":"basic:desktop:performance:min","required":false,"schema":{"format":"float","maximum":1,"minimum":0,"type":"number"}},{"description":"Max inclusive value of desktop lighthouse metric performance.\n","in":"query","name":"basic:desktop:performance:max","required":false,"schema":{"format":"float","maximum":1,"minimum":0,"type":"number"}},{"description":"Min inclusive value of mobile lighthouse metric performance.\n","in":"query","name":"basic:mobile:performance:min","required":false,"schema":{"format":"float","maximum":1,"minimum":0,"type":"number"}},{"description":"Max inclusive value of mobile lighthouse metric performance.\n","in":"query","name":"basic:mobile:performance:max","required":false,"schema":{"format":"float","maximum":1,"minimum":0,"type":"number"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","default":10,"minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false},{"name":"sort","in":"query","description":"Sort the result by this field.","schema":{"type":"string","enum":["potential","relevance"],"default":"relevance"},"required":false},{"name":"order","in":"query","description":"Should the result be sorted ascending or descending? Default ascending.","schema":{"type":"string","enum":["asc","desc"],"default":"desc"},"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":"Get all leads. Use the unlocked routes for more lead details.","tags":["LeadFyndr"],"description":"This route is deprecated. Please use /v2/customers/{customerId}/leads instead.","deprecated":true}},"/v2-experimental/customers/{customerId}/leads":{"get":{"parameters":[{"in":"path","name":"customerId","required":true,"schema":{"type":"string"}},{"description":"Min inclusive value of potential.\n","in":"query","name":"potentialRangeMin","required":false,"schema":{"format":"float","maximum":1,"minimum":0,"type":"number"}},{"description":"Max inclusive value of potential.\n","in":"query","name":"potentialRangeMax","required":false,"schema":{"format":"float","maximum":1,"minimum":0,"type":"number"}},{"description":"Min inclusive value of employeeCount.\n","in":"query","name":"employeeCountMin","required":false,"schema":{"format":"int64","type":"integer"}},{"description":"Max inclusive value of employeeCount.\n","in":"query","name":"employeeCountMax","required":false,"schema":{"format":"int64","type":"integer"}},{"description":"Min inclusive value of salesVolume.\n","in":"query","name":"salesVolumeMin","required":false,"schema":{"format":"int64","type":"integer"}},{"description":"Max inclusive value of salesVolume.\n","in":"query","name":"salesVolumeMax","required":false,"schema":{"format":"int64","type":"integer"}},{"description":"A list of technologies to filter. Use \"none\" to filter leads without a main technology.\n","in":"query","name":"technologies","required":false,"schema":{"items":{"oneOf":[{"type":"string"},{"enum":["none"],"type":"string"}]},"type":"array"}},{"description":"A list of businessFields to filter.\n","in":"query","name":"businessFields","required":false,"schema":{"items":{"type":"string"},"maxItems":15,"type":"array"}},{"description":"City of location point.\n","in":"query","name":"locationCity","required":false,"schema":{"type":"string"}},{"description":"Post code of location point.\n","in":"query","name":"locationPostCode","required":false,"schema":{"type":"string"}},{"description":"Radius from the location point.\n","in":"query","name":"locationRadiusInKm","required":false,"schema":{"minimum":20,"type":"number"}},{"description":"Min inclusive value of timeToFirstByteMs.\n","in":"query","name":"basic:timeToFirstByteMs:min","required":false,"schema":{"type":"number"}},{"description":"Max inclusive value of timeToFirstByteMs.\n","in":"query","name":"basic:timeToFirstByteMs:max","required":false,"schema":{"type":"number"}},{"description":"Min inclusive value of desktop lighthouse metric performance.\n","in":"query","name":"basic:desktop:performance:min","required":false,"schema":{"format":"float","maximum":1,"minimum":0,"type":"number"}},{"description":"Max inclusive value of desktop lighthouse metric performance.\n","in":"query","name":"basic:desktop:performance:max","required":false,"schema":{"format":"float","maximum":1,"minimum":0,"type":"number"}},{"description":"Min inclusive value of mobile lighthouse metric performance.\n","in":"query","name":"basic:mobile:performance:min","required":false,"schema":{"format":"float","maximum":1,"minimum":0,"type":"number"}},{"description":"Max inclusive value of mobile lighthouse metric performance.\n","in":"query","name":"basic:mobile:performance:max","required":false,"schema":{"format":"float","maximum":1,"minimum":0,"type":"number"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","default":10,"minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false},{"name":"sort","in":"query","description":"Sort the result by this field.","schema":{"type":"string","enum":["potential","relevance"],"default":"relevance"},"required":false},{"name":"order","in":"query","description":"Should the result be sorted ascending or descending? Default ascending.","schema":{"type":"string","enum":["asc","desc"],"default":"desc"},"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":"Get all leads. Use the unlocked routes for more lead details.","tags":["LeadFyndr"],"description":"This route is deprecated. Please use /v2/customers/{customerId}/leads instead.","deprecated":true}},"/v2/customers/{customerId}/leads":{"get":{"operationId":"leadfyndr-list-leads","parameters":[{"in":"path","name":"customerId","required":true,"schema":{"type":"string"}},{"description":"Min inclusive value of potential.\n","in":"query","name":"potentialRangeMin","required":false,"schema":{"format":"float","maximum":1,"minimum":0,"type":"number"}},{"description":"Max inclusive value of potential.\n","in":"query","name":"potentialRangeMax","required":false,"schema":{"format":"float","maximum":1,"minimum":0,"type":"number"}},{"description":"Min inclusive value of employeeCount.\n","in":"query","name":"employeeCountMin","required":false,"schema":{"format":"int64","type":"integer"}},{"description":"Max inclusive value of employeeCount.\n","in":"query","name":"employeeCountMax","required":false,"schema":{"format":"int64","type":"integer"}},{"description":"Min inclusive value of salesVolume.\n","in":"query","name":"salesVolumeMin","required":false,"schema":{"format":"int64","type":"integer"}},{"description":"Max inclusive value of salesVolume.\n","in":"query","name":"salesVolumeMax","required":false,"schema":{"format":"int64","type":"integer"}},{"description":"A list of technologies to filter. Use \"none\" to filter leads without a main technology.\n","in":"query","name":"technologies","required":false,"schema":{"items":{"oneOf":[{"type":"string"},{"enum":["none"],"type":"string"}]},"type":"array"}},{"description":"A list of businessFields to filter.\n","in":"query","name":"businessFields","required":false,"schema":{"items":{"type":"string"},"maxItems":15,"type":"array"}},{"description":"City of location point.\n","in":"query","name":"locationCity","required":false,"schema":{"type":"string"}},{"description":"Post code of location point.\n","in":"query","name":"locationPostCode","required":false,"schema":{"type":"string"}},{"description":"Radius from the location point.\n","in":"query","name":"locationRadiusInKm","required":false,"schema":{"minimum":20,"type":"number"}},{"description":"Min inclusive value of timeToFirstByteMs.\n","in":"query","name":"basic:timeToFirstByteMs:min","required":false,"schema":{"type":"number"}},{"description":"Max inclusive value of timeToFirstByteMs.\n","in":"query","name":"basic:timeToFirstByteMs:max","required":false,"schema":{"type":"number"}},{"description":"Min inclusive value of desktop lighthouse metric performance.\n","in":"query","name":"basic:desktop:performance:min","required":false,"schema":{"format":"float","maximum":1,"minimum":0,"type":"number"}},{"description":"Max inclusive value of desktop lighthouse metric performance.\n","in":"query","name":"basic:desktop:performance:max","required":false,"schema":{"format":"float","maximum":1,"minimum":0,"type":"number"}},{"description":"Min inclusive value of mobile lighthouse metric performance.\n","in":"query","name":"basic:mobile:performance:min","required":false,"schema":{"format":"float","maximum":1,"minimum":0,"type":"number"}},{"description":"Max inclusive value of mobile lighthouse metric performance.\n","in":"query","name":"basic:mobile:performance:max","required":false,"schema":{"format":"float","maximum":1,"minimum":0,"type":"number"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","default":10,"minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false},{"name":"sort","in":"query","description":"Sort the result by this field.","schema":{"type":"string","enum":["potential","relevance"],"default":"relevance"},"required":false},{"name":"order","in":"query","description":"Should the result be sorted ascending or descending? Default ascending.","schema":{"type":"string","enum":["asc","desc"],"default":"desc"},"required":false}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"leads":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.leadfyndr.Lead"},"type":"array"},"limit":{"type":"number"},"skip":{"type":"number"},"totalCount":{"type":"number"}},"required":["leads","totalCount","skip","limit"],"type":"object"}}},"description":"The leads list. Remember: more details will be given in the unlocked routes.","headers":{"X-Pagination-Limit":{"description":"The limit used to select the resources for the response","schema":{"type":"integer"}},"X-Pagination-Skip":{"description":"The number of skipped items","schema":{"type":"integer"}},"X-Pagination-Page":{"description":"The calculate page of the list response. Refer to parameters to learn more.","schema":{"type":"number"}},"X-Pagination-TotalCount":{"description":"The total amount of items available in the remote ressource. Use this value in combination with the limit to calculate the available pages.","schema":{"type":"integer"}}}},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get all leads. Use the unlocked routes for more lead details.","tags":["LeadFyndr"]}},"/experimental-v2/customers/{customerId}/unlocked-leads":{"get":{"parameters":[{"in":"path","name":"customerId","required":true,"schema":{"type":"string"}},{"description":"Min inclusive value of potential.\n","in":"query","name":"potentialRangeMin","required":false,"schema":{"format":"float","maximum":1,"minimum":0,"type":"number"}},{"description":"Max inclusive value of potential.\n","in":"query","name":"potentialRangeMax","required":false,"schema":{"format":"float","maximum":1,"minimum":0,"type":"number"}},{"description":"Min inclusive value of employeeCount.\n","in":"query","name":"employeeCountMin","required":false,"schema":{"format":"int64","type":"integer"}},{"description":"Max inclusive value of employeeCount.\n","in":"query","name":"employeeCountMax","required":false,"schema":{"format":"int64","type":"integer"}},{"description":"Min inclusive value of salesVolume.\n","in":"query","name":"salesVolumeMin","required":false,"schema":{"format":"int64","type":"integer"}},{"description":"Max inclusive value of salesVolume.\n","in":"query","name":"salesVolumeMax","required":false,"schema":{"format":"int64","type":"integer"}},{"description":"A list of technologies to filter. Use \"none\" to filter leads without a main technology.\n","in":"query","name":"technologies","required":false,"schema":{"items":{"oneOf":[{"type":"string"},{"enum":["none"],"type":"string"}]},"type":"array"}},{"description":"A list of businessFields to filter.\n","in":"query","name":"businessFields","required":false,"schema":{"items":{"type":"string"},"maxItems":15,"type":"array"}},{"description":"City of location point.\n","in":"query","name":"locationCity","required":false,"schema":{"type":"string"}},{"description":"Post code of location point.\n","in":"query","name":"locationPostCode","required":false,"schema":{"type":"string"}},{"description":"Radius from the location point.\n","in":"query","name":"locationRadiusInKm","required":false,"schema":{"minimum":20,"type":"number"}},{"description":"Min inclusive value of timeToFirstByteMs.\n","in":"query","name":"basic:timeToFirstByteMs:min","required":false,"schema":{"type":"number"}},{"description":"Max inclusive value of timeToFirstByteMs.\n","in":"query","name":"basic:timeToFirstByteMs:max","required":false,"schema":{"type":"number"}},{"description":"Min inclusive value of desktop lighthouse metric performance.\n","in":"query","name":"basic:desktop:performance:min","required":false,"schema":{"format":"float","maximum":1,"minimum":0,"type":"number"}},{"description":"Max inclusive value of desktop lighthouse metric performance.\n","in":"query","name":"basic:desktop:performance:max","required":false,"schema":{"format":"float","maximum":1,"minimum":0,"type":"number"}},{"description":"Min inclusive value of mobile lighthouse metric performance.\n","in":"query","name":"basic:mobile:performance:min","required":false,"schema":{"format":"float","maximum":1,"minimum":0,"type":"number"}},{"description":"Max inclusive value of mobile lighthouse metric performance.\n","in":"query","name":"basic:mobile:performance:max","required":false,"schema":{"format":"float","maximum":1,"minimum":0,"type":"number"}},{"description":"Only for this customer reserved leads.\n","in":"query","name":"reserved","required":false,"schema":{"type":"boolean"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","default":10,"minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false},{"name":"sort","in":"query","description":"Sort the result by this field.","schema":{"type":"string","enum":["potential","relevance","company"],"default":"relevance"},"required":false},{"name":"order","in":"query","description":"Should the result be sorted ascending or descending? Default ascending.","schema":{"type":"string","enum":["asc","desc"],"default":"desc"},"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":"Get all unlocked leads. Organisation can unlock leads.","tags":["LeadFyndr"],"description":"This route is deprecated. Please use /v2/customers/{customerId}/unlocked-leads instead.","deprecated":true}},"/v2-experimental/customers/{customerId}/unlocked-leads":{"get":{"parameters":[{"in":"path","name":"customerId","required":true,"schema":{"type":"string"}},{"description":"Min inclusive value of potential.\n","in":"query","name":"potentialRangeMin","required":false,"schema":{"format":"float","maximum":1,"minimum":0,"type":"number"}},{"description":"Max inclusive value of potential.\n","in":"query","name":"potentialRangeMax","required":false,"schema":{"format":"float","maximum":1,"minimum":0,"type":"number"}},{"description":"Min inclusive value of employeeCount.\n","in":"query","name":"employeeCountMin","required":false,"schema":{"format":"int64","type":"integer"}},{"description":"Max inclusive value of employeeCount.\n","in":"query","name":"employeeCountMax","required":false,"schema":{"format":"int64","type":"integer"}},{"description":"Min inclusive value of salesVolume.\n","in":"query","name":"salesVolumeMin","required":false,"schema":{"format":"int64","type":"integer"}},{"description":"Max inclusive value of salesVolume.\n","in":"query","name":"salesVolumeMax","required":false,"schema":{"format":"int64","type":"integer"}},{"description":"A list of technologies to filter. Use \"none\" to filter leads without a main technology.\n","in":"query","name":"technologies","required":false,"schema":{"items":{"oneOf":[{"type":"string"},{"enum":["none"],"type":"string"}]},"type":"array"}},{"description":"A list of businessFields to filter.\n","in":"query","name":"businessFields","required":false,"schema":{"items":{"type":"string"},"maxItems":15,"type":"array"}},{"description":"City of location point.\n","in":"query","name":"locationCity","required":false,"schema":{"type":"string"}},{"description":"Post code of location point.\n","in":"query","name":"locationPostCode","required":false,"schema":{"type":"string"}},{"description":"Radius from the location point.\n","in":"query","name":"locationRadiusInKm","required":false,"schema":{"minimum":20,"type":"number"}},{"description":"Min inclusive value of timeToFirstByteMs.\n","in":"query","name":"basic:timeToFirstByteMs:min","required":false,"schema":{"type":"number"}},{"description":"Max inclusive value of timeToFirstByteMs.\n","in":"query","name":"basic:timeToFirstByteMs:max","required":false,"schema":{"type":"number"}},{"description":"Min inclusive value of desktop lighthouse metric performance.\n","in":"query","name":"basic:desktop:performance:min","required":false,"schema":{"format":"float","maximum":1,"minimum":0,"type":"number"}},{"description":"Max inclusive value of desktop lighthouse metric performance.\n","in":"query","name":"basic:desktop:performance:max","required":false,"schema":{"format":"float","maximum":1,"minimum":0,"type":"number"}},{"description":"Min inclusive value of mobile lighthouse metric performance.\n","in":"query","name":"basic:mobile:performance:min","required":false,"schema":{"format":"float","maximum":1,"minimum":0,"type":"number"}},{"description":"Max inclusive value of mobile lighthouse metric performance.\n","in":"query","name":"basic:mobile:performance:max","required":false,"schema":{"format":"float","maximum":1,"minimum":0,"type":"number"}},{"description":"Only for this customer reserved leads.\n","in":"query","name":"reserved","required":false,"schema":{"type":"boolean"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","default":10,"minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false},{"name":"sort","in":"query","description":"Sort the result by this field.","schema":{"type":"string","enum":["potential","relevance","company"],"default":"relevance"},"required":false},{"name":"order","in":"query","description":"Should the result be sorted ascending or descending? Default ascending.","schema":{"type":"string","enum":["asc","desc"],"default":"desc"},"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":"Get all unlocked leads. Organisation can unlock leads.","tags":["LeadFyndr"],"description":"This route is deprecated. Please use /v2/customers/{customerId}/unlocked-leads instead.","deprecated":true}},"/v2/customers/{customerId}/unlocked-leads":{"get":{"operationId":"leadfyndr-list-unlocked-leads","parameters":[{"in":"path","name":"customerId","required":true,"schema":{"type":"string"}},{"description":"Min inclusive value of potential.\n","in":"query","name":"potentialRangeMin","required":false,"schema":{"format":"float","maximum":1,"minimum":0,"type":"number"}},{"description":"Max inclusive value of potential.\n","in":"query","name":"potentialRangeMax","required":false,"schema":{"format":"float","maximum":1,"minimum":0,"type":"number"}},{"description":"Min inclusive value of employeeCount.\n","in":"query","name":"employeeCountMin","required":false,"schema":{"format":"int64","type":"integer"}},{"description":"Max inclusive value of employeeCount.\n","in":"query","name":"employeeCountMax","required":false,"schema":{"format":"int64","type":"integer"}},{"description":"Min inclusive value of salesVolume.\n","in":"query","name":"salesVolumeMin","required":false,"schema":{"format":"int64","type":"integer"}},{"description":"Max inclusive value of salesVolume.\n","in":"query","name":"salesVolumeMax","required":false,"schema":{"format":"int64","type":"integer"}},{"description":"A list of technologies to filter. Use \"none\" to filter leads without a main technology.\n","in":"query","name":"technologies","required":false,"schema":{"items":{"oneOf":[{"type":"string"},{"enum":["none"],"type":"string"}]},"type":"array"}},{"description":"A list of businessFields to filter.\n","in":"query","name":"businessFields","required":false,"schema":{"items":{"type":"string"},"maxItems":15,"type":"array"}},{"description":"City of location point.\n","in":"query","name":"locationCity","required":false,"schema":{"type":"string"}},{"description":"Post code of location point.\n","in":"query","name":"locationPostCode","required":false,"schema":{"type":"string"}},{"description":"Radius from the location point.\n","in":"query","name":"locationRadiusInKm","required":false,"schema":{"minimum":20,"type":"number"}},{"description":"Min inclusive value of timeToFirstByteMs.\n","in":"query","name":"basic:timeToFirstByteMs:min","required":false,"schema":{"type":"number"}},{"description":"Max inclusive value of timeToFirstByteMs.\n","in":"query","name":"basic:timeToFirstByteMs:max","required":false,"schema":{"type":"number"}},{"description":"Min inclusive value of desktop lighthouse metric performance.\n","in":"query","name":"basic:desktop:performance:min","required":false,"schema":{"format":"float","maximum":1,"minimum":0,"type":"number"}},{"description":"Max inclusive value of desktop lighthouse metric performance.\n","in":"query","name":"basic:desktop:performance:max","required":false,"schema":{"format":"float","maximum":1,"minimum":0,"type":"number"}},{"description":"Min inclusive value of mobile lighthouse metric performance.\n","in":"query","name":"basic:mobile:performance:min","required":false,"schema":{"format":"float","maximum":1,"minimum":0,"type":"number"}},{"description":"Max inclusive value of mobile lighthouse metric performance.\n","in":"query","name":"basic:mobile:performance:max","required":false,"schema":{"format":"float","maximum":1,"minimum":0,"type":"number"}},{"description":"Only for this customer reserved leads.\n","in":"query","name":"reserved","required":false,"schema":{"type":"boolean"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","default":10,"minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false},{"name":"sort","in":"query","description":"Sort the result by this field.","schema":{"type":"string","enum":["potential","relevance","company"],"default":"relevance"},"required":false},{"name":"order","in":"query","description":"Should the result be sorted ascending or descending? Default ascending.","schema":{"type":"string","enum":["asc","desc"],"default":"desc"},"required":false}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"leads":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.leadfyndr.UnlockedLead"},"type":"array"},"limit":{"type":"number"},"skip":{"type":"number"},"totalCount":{"type":"number"}},"required":["leads","totalCount","skip","limit"],"type":"object"}}},"description":"The unlocked leads list.","headers":{"X-Pagination-Limit":{"description":"The limit used to select the resources for the response","schema":{"type":"integer"}},"X-Pagination-Skip":{"description":"The number of skipped items","schema":{"type":"integer"}},"X-Pagination-Page":{"description":"The calculate page of the list response. Refer to parameters to learn more.","schema":{"type":"number"}},"X-Pagination-TotalCount":{"description":"The total amount of items available in the remote ressource. Use this value in combination with the limit to calculate the available pages.","schema":{"type":"integer"}}}},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Get all unlocked leads. Organisation can unlock leads.","tags":["LeadFyndr"]}},"/experimental-v2/customers/{customerId}/unlocked-leads/{leadId}/reservation":{"delete":{"parameters":[{"in":"path","name":"leadId","required":true,"schema":{"type":"string"}},{"in":"path","name":"customerId","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":"Removes a reservation on a unlocked lead for the given customerId.","tags":["LeadFyndr"],"description":"This route is deprecated. Please use /v2/customers/{customerId}/unlocked-leads/{leadId}/reservation instead.","deprecated":true},"post":{"parameters":[{"in":"path","name":"leadId","required":true,"schema":{"type":"string"}},{"in":"path","name":"customerId","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":"Reserve a unlocked lead for the given customerId.","tags":["LeadFyndr"],"description":"This route is deprecated. Please use /v2/customers/{customerId}/unlocked-leads/{leadId}/reservation instead.","deprecated":true}},"/v2-experimental/customers/{customerId}/unlocked-leads/{leadId}/reservation":{"delete":{"parameters":[{"in":"path","name":"leadId","required":true,"schema":{"type":"string"}},{"in":"path","name":"customerId","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":"Removes a reservation on a unlocked lead for the given customerId.","tags":["LeadFyndr"],"description":"This route is deprecated. Please use /v2/customers/{customerId}/unlocked-leads/{leadId}/reservation instead.","deprecated":true},"post":{"parameters":[{"in":"path","name":"leadId","required":true,"schema":{"type":"string"}},{"in":"path","name":"customerId","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":"Reserve a unlocked lead for the given customerId.","tags":["LeadFyndr"],"description":"This route is deprecated. Please use /v2/customers/{customerId}/unlocked-leads/{leadId}/reservation instead.","deprecated":true}},"/v2/customers/{customerId}/unlocked-leads/{leadId}/reservation":{"delete":{"operationId":"leadfyndr-remove-unlocked-lead-reservation","parameters":[{"in":"path","name":"leadId","required":true,"schema":{"type":"string"}},{"in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"leadId":{"type":"string"}},"required":["leadId"],"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"},"409":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Removes a reservation on a unlocked lead for the given customerId.","tags":["LeadFyndr"]},"post":{"operationId":"leadfyndr-reserve-unlocked-lead","parameters":[{"in":"path","name":"leadId","required":true,"schema":{"type":"string"}},{"in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"leadId":{"type":"string"}},"required":["leadId"],"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"},"409":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Reserve a unlocked lead for the given customerId.","tags":["LeadFyndr"]}},"/v2/licenses/{licenseId}":{"get":{"operationId":"license-get-license","parameters":[{"description":"ID of the license to be retrieved.","in":"path","name":"licenseId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.license.License"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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 license.","tags":["License"]}},"/v2/projects/{projectId}/licenses":{"get":{"operationId":"license-list-licenses-for-project","parameters":[{"description":"ID of the Project to get Licenses for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","default":1000,"minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.license.License"},"type":"array"}}},"description":"OK","headers":{"X-Pagination-Limit":{"description":"The limit used to select the resources for the response","schema":{"type":"integer"}},"X-Pagination-Skip":{"description":"The number of skipped items","schema":{"type":"integer"}},"X-Pagination-Page":{"description":"The calculate page of the list response. Refer to parameters to learn more.","schema":{"type":"number"}},"X-Pagination-TotalCount":{"description":"The total amount of items available in the remote ressource. Use this value in combination with the limit to calculate the available pages.","schema":{"type":"integer"}}}},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"List Licenses belonging to a Project.","tags":["License"]}},"/v2/licenses/{licenseId}/actions/rotate-key":{"post":{"operationId":"license-rotate-license-key","parameters":[{"description":"ID if the License to rotate the key of.","in":"path","name":"licenseId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"description":"Optional reference to a file containing the new key if it was not procured via mittwald.","properties":{"externalKey":{"type":"string"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.license.KeyResponse"}}},"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"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"rotate a License's key, i.e. revoke the old and generate a new one.","tags":["License"]}},"/v2/projects/{projectId}/actions/validate-license-key":{"post":{"operationId":"license-validate-license-key-for-project","parameters":[{"description":"ID if the Project to validate the License's key for.","in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"description":"The License key to validate.","properties":{"key":{"type":"string"},"kind":{"$ref":"#/components/schemas/de.mittwald.v1.license.Kind"}},"required":["key","kind"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"valid":{"type":"boolean"}},"required":["valid"],"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"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"Validate a License's key for a project.","tags":["License"]}},"/v2/projects/{projectId}/deliveryboxes":{"post":{"parameters":[{"description":"ID of the Project to create the DeliveryBox in.","examples":{"shortId":{"value":"p-ab1cd2"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"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","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 DeliveryBox.","tags":["Mail"],"description":"This route is deprecated. Please use /v2/projects/{projectId}/delivery-boxes instead.","deprecated":true},"get":{"parameters":[{"description":"ID of the Project to list DeliveryBoxes for.","examples":{"shortId":{"value":"p-ab1cd2"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"description":"Search term to filter DeliveryBoxes for. The fields id, name and description are searchable. An exact match is performed for id, a partial match for name and description.","in":"query","name":"search","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","default":10000,"minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"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":"List DeliveryBoxes belonging to a Project.","tags":["Mail"],"description":"This route is deprecated. Please use /v2/projects/{projectId}/delivery-boxes instead.","deprecated":true}},"/v2/projects/{projectId}/delivery-boxes":{"post":{"operationId":"mail-create-deliverybox","parameters":[{"description":"ID of the Project to create the DeliveryBox in.","examples":{"shortId":{"value":"p-ab1cd2"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"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","required":true},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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.","examples":{"shortId":{"value":"p-ab1cd2"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"description":"Search term to filter DeliveryBoxes for. The fields id, name and description are searchable. An exact match is performed for id, a partial match for name and description.","in":"query","name":"search","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","default":10000,"minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.mail.Deliverybox"},"type":"array"}}},"description":"OK","headers":{"X-Pagination-Limit":{"description":"The limit used to select the resources for the response","schema":{"type":"integer"}},"X-Pagination-Skip":{"description":"The number of skipped items","schema":{"type":"integer"}},"X-Pagination-Page":{"description":"The calculate page of the list response. Refer to parameters to learn more.","schema":{"type":"number"}},"X-Pagination-TotalCount":{"description":"The total amount of items available in the remote ressource. Use this value in combination with the limit to calculate the available pages.","schema":{"type":"integer"}}}},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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.","examples":{"shortId":{"value":"p-ab1cd2"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"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"}]}}},"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 MailAddress.","tags":["Mail"],"description":"This route is deprecated. Please use /v2/projects/{projectId}/mail-addresses instead.","deprecated":true},"get":{"parameters":[{"description":"ID of the Project to list MailAddresses for.","examples":{"shortId":{"value":"p-ab1cd2"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"description":"Search term to filter MailAddresses for. The fields id, address and mailboxName are searchable. An exact match is performed for id, a partial match for address and mailboxName.","in":"query","name":"search","required":false,"schema":{"type":"string"}},{"description":"Whether the MailAddress is a forward address.","in":"query","name":"forwardAddress","required":false,"schema":{"type":"boolean"}},{"description":"Whether the MailAddress is a catch-all address.","in":"query","name":"catchAll","required":false,"schema":{"type":"boolean"}},{"description":"Whether the MailAddress has an active auto responder.","in":"query","name":"autoResponder","required":false,"schema":{"type":"boolean"}},{"description":"Whether the MailAddress has a mail-archive.","in":"query","name":"mailArchive","required":false,"schema":{"type":"boolean"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","default":10000,"minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false},{"name":"sort","in":"query","description":"List of fields how the result should be sorted.","schema":{"type":"array","items":{"type":"string","enum":["address.domain","address.local","updatedAt","projectId","mailbox.quota","mailbox.name","mailbox.storageInBytes.current","mailbox.storageInBytes.limit"]},"default":["address.domain","address.local"]},"required":false},{"name":"order","in":"query","description":"Should the result be sorted ascending or descending? You can specify for each field another sorting: sort[0]=foo, order[0]=asc, sort[1]=bar, order[1]=desc.","schema":{"type":"array","items":{"type":"string","enum":["asc","desc"]},"default":["asc","asc"]},"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":"List MailAddresses belonging to a Project.","tags":["Mail"],"description":"This route is deprecated. Please use /v2/projects/{projectId}/mail-addresses instead.","deprecated":true}},"/v2/projects/{projectId}/mail-addresses":{"post":{"operationId":"mail-create-mail-address","parameters":[{"description":"ID of the project to create a MailAddress for.","examples":{"shortId":{"value":"p-ab1cd2"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"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"}]}}},"required":true},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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.","examples":{"shortId":{"value":"p-ab1cd2"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"description":"Search term to filter MailAddresses for. The fields id, address and mailboxName are searchable. An exact match is performed for id, a partial match for address and mailboxName.","in":"query","name":"search","required":false,"schema":{"type":"string"}},{"description":"Whether the MailAddress is a forward address.","in":"query","name":"forwardAddress","required":false,"schema":{"type":"boolean"}},{"description":"Whether the MailAddress is a catch-all address.","in":"query","name":"catchAll","required":false,"schema":{"type":"boolean"}},{"description":"Whether the MailAddress has an active auto responder.","in":"query","name":"autoResponder","required":false,"schema":{"type":"boolean"}},{"description":"Whether the MailAddress has a mail-archive.","in":"query","name":"mailArchive","required":false,"schema":{"type":"boolean"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","default":10000,"minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false},{"name":"sort","in":"query","description":"List of fields how the result should be sorted.","schema":{"type":"array","items":{"type":"string","enum":["address.domain","address.local","updatedAt","projectId","mailbox.quota","mailbox.name","mailbox.storageInBytes.current","mailbox.storageInBytes.limit"]},"default":["address.domain","address.local"]},"required":false},{"name":"order","in":"query","description":"Should the result be sorted ascending or descending? You can specify for each field another sorting: sort[0]=foo, order[0]=asc, sort[1]=bar, order[1]=desc.","schema":{"type":"array","items":{"type":"string","enum":["asc","desc"]},"default":["asc","asc"]},"required":false}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.mail.MailAddress"},"type":"array"}}},"description":"OK","headers":{"X-Pagination-Limit":{"description":"The limit used to select the resources for the response","schema":{"type":"integer"}},"X-Pagination-Skip":{"description":"The number of skipped items","schema":{"type":"integer"}},"X-Pagination-Page":{"description":"The calculate page of the list response. Refer to parameters to learn more.","schema":{"type":"number"}},"X-Pagination-TotalCount":{"description":"The total amount of items available in the remote ressource. Use this value in combination with the limit to calculate the available pages.","schema":{"type":"integer"}}}},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"],"description":"This route is deprecated. Please use /v2/delivery-boxes/{deliveryBoxId} instead.","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"],"description":"This route is deprecated. Please use /v2/delivery-boxes/{deliveryBoxId} instead.","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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"],"description":"This route is deprecated. Please use /v2/mail-addresses/{mailAddressId} instead.","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"],"description":"This route is deprecated. Please use /v2/mail-addresses/{mailAddressId} instead.","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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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/mail-addresses/{mailAddressId}/mail-archive":{"delete":{"operationId":"mail-disable-mail-archive","parameters":[{"description":"ID of the MailAddress to disable a mail-archive for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"No Content"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"Disable the mail-archive of a MailAddress.","tags":["Mail"]}},"/v2/mail-addresses/{mailAddressId}/backups":{"get":{"operationId":"mail-list-backups-for-mail-address","parameters":[{"description":"ID of the MailAddress to retrieve backups for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.mail.MailAddressBackup"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"List backups belonging to a MailAddress.","tags":["Mail"]}},"/v2/mail-addresses/":{"get":{"operationId":"mail-list-mail-addresses-for-user","parameters":[{"description":"ID of the Project to list MailAddresses for.","examples":{"shortId":{"value":"p-ab1cd2"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"in":"query","name":"projectId","schema":{"type":"string"}},{"description":"Search term to filter MailAddresses for. The fields id, address and mailboxName are searchable. An exact match is performed for id, a partial match for address and mailboxName.","in":"query","name":"search","required":false,"schema":{"type":"string"}},{"description":"Whether the MailAddress is a forward address.","in":"query","name":"forwardAddress","required":false,"schema":{"type":"boolean"}},{"description":"Whether the MailAddress is a catch-all address.","in":"query","name":"catchAll","required":false,"schema":{"type":"boolean"}},{"description":"Whether the MailAddress has an active auto responder.","in":"query","name":"autoResponder","required":false,"schema":{"type":"boolean"}},{"description":"Whether the MailAddress has a mail-archive.","in":"query","name":"mailArchive","required":false,"schema":{"type":"boolean"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","default":10000,"minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false},{"name":"sort","in":"query","description":"List of fields how the result should be sorted.","schema":{"type":"array","items":{"type":"string","enum":["address.domain","address.local","updatedAt","projectId","mailbox.quota","mailbox.name","mailbox.storageInBytes.current","mailbox.storageInBytes.limit"]},"default":["address.domain","address.local"]},"required":false},{"name":"order","in":"query","description":"Should the result be sorted ascending or descending? You can specify for each field another sorting: sort[0]=foo, order[0]=asc, sort[1]=bar, order[1]=desc.","schema":{"type":"array","items":{"type":"string","enum":["asc","desc"]},"default":["asc","asc"]},"required":false}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.mail.MailAddress"},"type":"array"}}},"description":"OK","headers":{"X-Pagination-Limit":{"description":"The limit used to select the resources for the response","schema":{"type":"integer"}},"X-Pagination-Skip":{"description":"The number of skipped items","schema":{"type":"integer"}},"X-Pagination-Page":{"description":"The calculate page of the list response. Refer to parameters to learn more.","schema":{"type":"number"}},"X-Pagination-TotalCount":{"description":"The total amount of items available in the remote ressource. Use this value in combination with the limit to calculate the available pages.","schema":{"type":"integer"}}}},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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.","tags":["Mail"]}},"/v2/projects/{projectId}/mailsettings":{"get":{"parameters":[{"description":"ID of the Project to list mail settings for.","examples":{"shortId":{"value":"p-ab1cd2"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"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"],"description":"This route is deprecated. Please use /v2/projects/{projectId}/mail-settings instead.","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.","examples":{"shortId":{"value":"p-ab1cd2"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"blacklist":{"items":{"pattern":"^([a-zA-Z0-9.!#$%&'*\\/=?^_{|}~-]+@[a-zA-Z0-9-*]+(?:\\.([a-zA-Z0-9-]+|\\*))+)$","type":"string"},"type":"array"},"projectId":{"type":"string"},"whitelist":{"items":{"pattern":"^([a-zA-Z0-9.!#$%&'*\\/=?^_{|}~-]+@[a-zA-Z0-9-*]+(?:\\.([a-zA-Z0-9-]+|\\*))+)$","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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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/mail-addresses/{mailAddressId}/backups/{backupId}/recovery":{"post":{"operationId":"mail-recover-mail-address-emails","parameters":[{"description":"ID of the MailAddress to recover emails for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"ID of the backup to recover from.","in":"path","name":"backupId","required":true,"schema":{"pattern":"^[0-9]{8}$","type":"string"}}],"responses":{"204":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Recover emails for a MailAddress from a backup.","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.","required":true},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"]}}},"required":true},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"]}}},"required":true},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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}/catch-all":{"patch":{"operationId":"mail-update-mail-address-catch-all","parameters":[{"description":"ID of the MailAddress to update the catch-all for.","in":"path","name":"mailAddressId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"active":{"type":"boolean"}},"required":["active"]}}},"description":"Catch-all of the MailAddress.","required":true},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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 catch-all of a MailAddress.","tags":["Mail"]}},"/v2/customers/{customerId}/payment-method":{"get":{"operationId":"marketplace-customer-get-payment-method","parameters":[{"examples":{"shortId":{"value":"1000026"},"uuid":{"value":"13eac206-ada6-4ac8-a4c0-21b263df6cbf"}},"in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"cardDetails":{"properties":{"brand":{"type":"string"},"last4":{"type":"string"}},"required":["brand","last4"],"type":"object"}},"type":"object"}}},"description":"The payment method details"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get payment method details","tags":["Marketplace"]},"put":{"operationId":"marketplace-customer-update-payment-method","parameters":[{"examples":{"shortId":{"value":"1000026"},"uuid":{"value":"13eac206-ada6-4ac8-a4c0-21b263df6cbf"}},"in":"path","name":"customerId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"customReturnUrl":{"example":"https://mittwald.studio/app/marketplace","format":"uri","type":"string"}},"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"url":{"type":"string"}},"type":"object"}}},"description":"The generated link to the Stripe payment method setup"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get the link to update the marketplace payment method","tags":["Marketplace"]}},"/v2/time-zones":{"get":{"operationId":"miscellaneous-list-time-zones","responses":{"200":{"content":{"application/json":{"schema":{"items":{"type":"string"},"type":"array"}}},"description":"OK"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List valid time zones.","tags":["Misc"]}},"/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."},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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."},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"This route is deprecated. Please use /v2/notification-unread-counts instead.","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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"}},{"in":"query","name":"severity","required":false,"schema":{"items":{"enum":["success","info","warning","error"],"type":"string"},"type":"array"}},{"in":"query","name":"type","required":false,"schema":{"items":{"type":"string"},"type":"array"}},{"in":"query","name":"type-not","required":false,"schema":{"items":{"type":"string"},"type":"array"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","default":500,"minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.messaging.Notification"},"type":"array"}}},"description":"List of notifications","headers":{"X-Pagination-Limit":{"description":"The limit used to select the resources for the response","schema":{"type":"integer"}},"X-Pagination-Skip":{"description":"The number of skipped items","schema":{"type":"integer"}},"X-Pagination-Page":{"description":"The calculate page of the list response. Refer to parameters to learn more.","schema":{"type":"number"}},"X-Pagination-TotalCount":{"description":"The total amount of items available in the remote ressource. Use this value in combination with the limit to calculate the available pages.","schema":{"type":"integer"}}}},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":[{"in":"query","name":"severities","schema":{"items":{"enum":["success","info","warning","error"],"type":"string"},"type":"array"}},{"in":"query","name":"referenceId","schema":{"format":"uuid","type":"string"}},{"in":"query","name":"referenceAggregate","schema":{"type":"string"}},{"in":"query","name":"referenceDomain","schema":{"type":"string"}}],"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"},"updatedCount":{"description":"The number of notifications that have been updated.","format":"int32","type":"integer"}},"required":["status","updatedCount"],"type":"object"}}},"description":"OK"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"examples":{"aiHosting":{"value":{"orderData":{"customerId":"0f5ec9cd-1b1b-4850-9061-fcebe765c62d","monthlyTokens":2000000,"requestsPerMinute":120},"orderType":"aiHosting"}},"domain":{"value":{"orderData":{"domain":"mittwald.example","handleData":{"ownerC":[{"name":"name","value":"Ada Lovelace"}]},"projectId":"190f3eec-8a71-42ed-94a5-c03e0d832c2a"},"orderType":"domain"}},"externalCertificate":{"value":{"orderData":{"certificateRequestId":"7ea73ca6-4de6-4dd8-b64a-ccc46623f237","projectId":"190f3eec-8a71-42ed-94a5-c03e0d832c2a"},"orderType":"externalCertificate"}},"leadFyndr":{"value":{"orderData":{"customerId":"0f5ec9cd-1b1b-4850-9061-fcebe765c62d","reservationLimit":8,"unlockLimit":100},"orderType":"leadFyndr"}},"mailArchive":{"value":{"orderData":{"mailAddressId":"af279ce0-9aef-4fd6-9d0f-8c109038cfdf","syncExistingMails":true},"orderType":"mailArchive"}},"projectHosting":{"value":{"orderData":{"customerId":"0f5ec9cd-1b1b-4850-9061-fcebe765c62d","description":"My first project","diskspaceInGiB":20,"spec":{"machineType":"prospace.2cpu.4gb"},"useFreeTrial":true},"orderType":"projectHosting"}},"server":{"value":{"orderData":{"customerId":"0f5ec9cd-1b1b-4850-9061-fcebe765c62d","description":"My first server","diskspaceInGiB":100,"spec":{"machineType":"shared.xlarge"},"useFreeTrial":true},"orderType":"server"}},"typo3Elts":{"value":{"orderData":{"description":"License for a-xxxxxx","licenseType":"typo3","majorVersion":12,"projectId":"190f3eec-8a71-42ed-94a5-c03e0d832c2a"},"orderType":"license"}}},"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"},{"$ref":"#/components/schemas/de.mittwald.v1.order.ExternalCertificateOrder"},{"$ref":"#/components/schemas/de.mittwald.v1.order.LeadFyndrOrder"},{"$ref":"#/components/schemas/de.mittwald.v1.order.MailArchiveOrder"},{"$ref":"#/components/schemas/de.mittwald.v1.order.AIHostingOrder"},{"$ref":"#/components/schemas/de.mittwald.v1.order.LicenseOrder"}]},"orderType":{"enum":["domain","projectHosting","server","externalCertificate","leadFyndr","mailArchive","aiHosting","license"],"example":"projectHosting","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"},"422":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"object"}}}}},"description":"Unprocessable Content"},"429":{"$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":[],"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":["WH25-0001"],"in":"query","name":"templateNames","required":false,"schema":{"items":{"type":"string"},"type":"array"}},{"in":"query","name":"types","required":false,"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.order.OrderType"},"type":"array"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","default":1000,"minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.order.CustomerOrder"},"type":"array"}}},"description":"","headers":{"X-Pagination-Limit":{"description":"The limit used to select the resources for the response","schema":{"type":"integer"}},"X-Pagination-Skip":{"description":"The number of skipped items","schema":{"type":"integer"}},"X-Pagination-Page":{"description":"The calculate page of the list response. Refer to parameters to learn more.","schema":{"type":"number"}},"X-Pagination-TotalCount":{"description":"The total amount of items available in the remote ressource. Use this value in combination with the limit to calculate the available pages.","schema":{"type":"integer"}}}},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},{"$ref":"#/components/schemas/de.mittwald.v1.order.LeadFyndrTariffChange"},{"$ref":"#/components/schemas/de.mittwald.v1.order.AIHostingTariffChange"}]},"tariffChangeType":{"enum":["projectHosting","server","leadFyndr","aiHosting"],"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"},"429":{"$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 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":[{"examples":{"shortId":{"value":"1234567"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"in":"path","name":"orderId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.order.CustomerOrder"}}},"description":""},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":[{"examples":{"shortId":{"value":"1000026"},"uuid":{"value":"13eac206-ada6-4ac8-a4c0-21b263df6cbf"}},"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":["WH25-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":""},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":[{"examples":{"shortId":{"value":"p-pkrjw1"},"uuid":{"value":"95e64f67-a49e-4446-968c-f74da2df3a9d"}},"in":"path","name":"projectId","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":["WH25-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":""},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},{"$ref":"#/components/schemas/de.mittwald.v1.order.ExternalCertificateOrderPreview"},{"$ref":"#/components/schemas/de.mittwald.v1.order.LeadFyndrOrderPreview"},{"$ref":"#/components/schemas/de.mittwald.v1.order.MailArchiveOrderPreview"},{"$ref":"#/components/schemas/de.mittwald.v1.order.AIHostingOrderPreview"},{"$ref":"#/components/schemas/de.mittwald.v1.order.LicenseOrderPreview"}]},"orderType":{"enum":["domain","projectHosting","server","externalCertificate","leadFyndr","mailArchive","aiHosting","license"],"type":"string"}},"type":"object"}}},"description":"Your order information","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/de.mittwald.v1.order.HostingOrderPreviewResponse"},{"$ref":"#/components/schemas/de.mittwald.v1.order.DomainOrderPreviewResponse"},{"$ref":"#/components/schemas/de.mittwald.v1.order.ExternalCertificateOrderPreviewResponse"},{"$ref":"#/components/schemas/de.mittwald.v1.order.LeadFyndrOrderPreviewResponse"},{"$ref":"#/components/schemas/de.mittwald.v1.order.MailArchiveOrderPreviewResponse"},{"$ref":"#/components/schemas/de.mittwald.v1.order.AIHostingOrderPreviewResponse"},{"$ref":"#/components/schemas/de.mittwald.v1.order.LicenseOrderPreviewResponse"}]}}},"description":""},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"422":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"object"}}}}},"description":"Unprocessable Content"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},{"$ref":"#/components/schemas/de.mittwald.v1.order.LeadFyndrTariffChange"},{"$ref":"#/components/schemas/de.mittwald.v1.order.AIHostingTariffChange"}]},"tariffChangeType":{"enum":["projectHosting","server","leadFyndr","aiHosting"],"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"],"description":"This route is deprecated. Please use /v2/page-insights instead.","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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"],"description":"This route is deprecated. Please use /v2/projects/{projectId}/page-insights instead.","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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"}}},"required":true},"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"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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."},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"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"],"description":"This route is deprecated. Please use /v2/projects/{projectId}/invites instead.","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":{"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"},"429":{"$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 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":"integer"}},"X-Pagination-Skip":{"schema":{"type":"integer"}},"X-Pagination-TotalCount":{"schema":{"type":"integer"}}}},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"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"}}},"required":true},"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"},"429":{"$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 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"}}],"responses":{"204":{"description":""},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"type":"string"}}],"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":""},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":""},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"type":"string"}}],"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"],"description":"This route is deprecated. Please use /v2/projects/{projectId}/filesystem-directories instead.","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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"502":{"$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 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":{"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"],"description":"This route is deprecated. Please use /v2/projects/{projectId}/filesystem-disk-usage instead.","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":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"502":{"$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 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":{"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"],"description":"This route is deprecated. Please use /v2/projects/{projectId}/filesystem-file-content instead.","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":{"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":{"application/octet-stream":{"schema":{"format":"binary","type":"string"}}},"description":"OK"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"502":{"$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 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"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"502":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"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":{"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"],"description":"This route is deprecated. Please use /v2/projects/{projectId}/filesystem-files instead.","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":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"502":{"$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 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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a Server.","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"}},{"in":"query","name":"hasExpiry","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"isInherited","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"role","required":false,"schema":{"$ref":"#/components/schemas/de.mittwald.v1.membership.ProjectRoles"}},{"in":"query","name":"hasMfa","required":false,"schema":{"type":"boolean"}}],"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":"integer"}},"X-Pagination-Skip":{"schema":{"type":"integer"}},"X-Pagination-TotalCount":{"schema":{"type":"integer"}}}},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"}},{"in":"query","name":"page","required":false,"schema":{"minimum":0,"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":"integer"}},"X-Pagination-Page":{"schema":{"type":"integer"}},"X-Pagination-Skip":{"schema":{"type":"integer"}},"X-Pagination-TotalCount":{"schema":{"type":"integer"}}}},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"}},{"in":"query","name":"page","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"hasExpiry","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"isInherited","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"role","required":false,"schema":{"$ref":"#/components/schemas/de.mittwald.v1.membership.ProjectRoles"}}],"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":"integer"}},"X-Pagination-Page":{"schema":{"type":"integer"}},"X-Pagination-Skip":{"schema":{"type":"integer"}},"X-Pagination-TotalCount":{"schema":{"type":"integer"}}}},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"}},{"description":"Search term to list Projects for. The fields id, shortId, and description are searchable.","in":"query","name":"searchTerm","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","default":10000,"minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false},{"name":"sort","in":"query","description":"Sort the result by this field.","schema":{"type":"string","enum":["createdAt","description"],"default":"createdAt"},"required":false},{"name":"order","in":"query","description":"Should the result be sorted ascending or descending? Default ascending.","schema":{"type":"string","enum":["asc","desc"],"default":"asc"},"required":false}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"backupStorageUsageInBytes":{"format":"int64","type":"integer"},"backupStorageUsageInBytesSetAt":{"format":"date-time","type":"string"},"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"},"features":{"deprecated":true,"description":"Deprecated by 'supportedFeatures'.","items":{"$ref":"#/components/schemas/de.mittwald.v1.project.ProjectFeature"},"type":"array"},"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"},"supportedFeatures":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.project.ProjectFeature"},"type":"array"},"webStorageUsageInBytes":{"format":"int64","type":"integer"},"webStorageUsageInBytesSetAt":{"format":"date-time","type":"string"}},"required":["id","shortId","description","enabled","customerMeta","customerId","createdAt","isReady","readiness","status","statusSetAt","webStorageUsageInBytes","webStorageUsageInBytesSetAt","backupStorageUsageInBytes","backupStorageUsageInBytesSetAt","supportedFeatures"],"type":"object"},"type":"array"}}},"description":"OK","headers":{"X-Pagination-Limit":{"description":"The limit used to select the resources for the response","schema":{"type":"integer"}},"X-Pagination-Skip":{"description":"The number of skipped items","schema":{"type":"integer"}},"X-Pagination-Page":{"description":"The calculate page of the list response. Refer to parameters to learn more.","schema":{"type":"number"}},"X-Pagination-TotalCount":{"description":"The total amount of items available in the remote ressource. Use this value in combination with the limit to calculate the available pages.","schema":{"type":"integer"}}}},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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 Servers for. If no ID is provided, the ID of the executing User is used instead.","in":"query","name":"customerId","required":false,"schema":{"type":"string"}},{"description":"Search term to list Servers for. The fields id, shortId, and description are searchable.","in":"query","name":"searchTerm","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","default":10000,"minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false},{"name":"sort","in":"query","description":"Sort the result by this field.","schema":{"type":"string","enum":["createdAt","description"],"default":"createdAt"},"required":false},{"name":"order","in":"query","description":"Should the result be sorted ascending or descending? Default ascending.","schema":{"type":"string","enum":["asc","desc"],"default":"asc"},"required":false}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.project.Server"},"type":"array"}}},"description":"OK","headers":{"X-Pagination-Limit":{"description":"The limit used to select the resources for the response","schema":{"type":"integer"}},"X-Pagination-Skip":{"description":"The number of skipped items","schema":{"type":"integer"}},"X-Pagination-Page":{"description":"The calculate page of the list response. Refer to parameters to learn more.","schema":{"type":"number"}},"X-Pagination-TotalCount":{"description":"The total amount of items available in the remote ressource. Use this value in combination with the limit to calculate the available pages.","schema":{"type":"integer"}}}},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"}}],"responses":{"204":{"description":""},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"example":"My new description!","type":"string"}},"required":["description"]}}},"required":true},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"example":"My first Server!","type":"string"}},"required":["description"]}}},"required":true},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":""},"429":{"$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":{"additionalServices":{"properties":{"dataCompare":{"enum":["default","additionalCompare"],"type":"string"}},"required":["dataCompare"],"type":"object"},"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"},"articleType":{"description":"Type of the article you want to relocate.","enum":["cms-hosting","cms-hosting-express","onlineshop","onlineshop-express"],"type":"string"},"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"},"emailInboxes":{"description":"List of email inboxes which should be transferred.","items":{"$ref":"#/components/schemas/de.mittwald.v1.directus.EmailInbox"},"type":"array"},"notes":{"description":"Anything our customer service needs to know for the relocation process.","type":"string"},"prices":{"properties":{"positions":{"items":{"properties":{"name":{"minLength":1,"type":"string"},"price":{"minimum":0,"type":"number"}},"required":["name","price"],"type":"object"},"type":"array"},"total":{"minimum":0,"type":"number"}},"required":["positions","total"],"type":"object"},"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"},"userId":{"oneOf":[{"format":"uuid","minLength":1,"type":"string"},{"maxLength":0,"type":"string"}]}},"required":["articleType","additionalServices","prices","provider","contact","target","allowPasswordChange"],"type":"object"}}},"description":"","required":true},"responses":{"204":{"description":"No content"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":["Misc"],"description":"This route is deprecated. Please use /v2/services/{accessKeyId}/actions/authenticate instead.","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."},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Obtain a service token.","tags":["Misc"]}},"/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"},"429":{"$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 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":"integer"}},"X-Pagination-Skip":{"schema":{"type":"integer"}},"X-Pagination-TotalCount":{"schema":{"type":"integer"}}}},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"}}},"required":false},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"],"description":"This route is deprecated. Please use /v2/projects/{projectId}/sftp-users instead.","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"},"429":{"$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 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":"integer"}},"X-Pagination-Skip":{"schema":{"type":"integer"}},"X-Pagination-TotalCount":{"schema":{"type":"integer"}}}},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"}}},"required":false},"responses":{"204":{"description":"NoContent"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"}}},"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":"Update an SSHUser.","tags":["SSH/SFTP User"],"description":"This route is deprecated. Please use /v2/ssh-users/{sshUserId} instead.","deprecated":true}},"/v2/certificates/{certificateId}/actions/check-replace-certificate":{"post":{"operationId":"ssl-check-replace-certificate","description":"Checks the replacement of a Certificate and shows differences between the current and the new Certificate.","parameters":[{"in":"path","name":"certificateId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"certificate":{"type":"string"},"privateKey":{"type":"string"}},"required":["certificate"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.ssl.CheckReplaceCertificateResponse"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Check the replacement of a Certificate.","tags":["Domain"]}},"/v2/certificate-requests":{"post":{"operationId":"ssl-create-certificate-request","requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/de.mittwald.v1.ssl.CertificateRequestCreateRequest"},{"$ref":"#/components/schemas/de.mittwald.v1.ssl.CertificateRequestCreateWithCSRRequest"},{"$ref":"#/components/schemas/de.mittwald.v1.ssl.CertificateRequestCreateWithDNSRequest"}]}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.ssl.CertificateRequestCreateResponse"}}},"description":"Created"},"400":{"$ref":"#/components/responses/de.mittwald.v1.ssl.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"409":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$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 a CertificateRequest.","tags":["Domain"]},"get":{"operationId":"ssl-list-certificate-requests","parameters":[{"description":"ID of the Project to list Certificate Requests for.","examples":{"shortId":{"value":"p-ab1cd2"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"in":"query","name":"projectId","required":false,"schema":{"type":"string"}},{"description":"ID of the Ingress to list Certificate Requests for.","in":"query","name":"ingressId","required":false,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.ssl.CertificateRequest"},"type":"array"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List CertificateRequests belonging to a Project or an Ingress.","tags":["Domain"]}},"/v2/certificate-request/{certificateRequestId}":{"delete":{"operationId":"ssl-delete-certificate-request","parameters":[{"in":"path","name":"certificateRequestId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"No Content"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a CertificateRequest.","tags":["Domain"]}},"/v2/certificate/{certificateId}":{"delete":{"operationId":"ssl-delete-certificate","parameters":[{"in":"path","name":"certificateId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"No Content"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Delete a Certificate.","tags":["Domain"]}},"/v2/certificate-requests/{certificateRequestId}":{"get":{"operationId":"ssl-get-certificate-request","parameters":[{"description":"ID of the CertificateRequest to be retrieved.","in":"path","name":"certificateRequestId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.ssl.CertificateRequest"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a CertificateRequest.","tags":["Domain"]}},"/v2/certificates/{certificateId}":{"get":{"operationId":"ssl-get-certificate","parameters":[{"description":"ID of the SSL Certificate to be retrieved.","in":"path","name":"certificateId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.ssl.Certificate"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get a Certificate.","tags":["Domain"]},"put":{"operationId":"ssl-replace-certificate","parameters":[{"in":"path","name":"certificateId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"certificate":{"type":"string"},"privateKey":{"type":"string"}},"required":["certificate"],"type":"object"}}},"required":true},"responses":{"204":{"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.ssl.ValidationError"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Update a Certificate.","tags":["Domain"]}},"/v2/certificates":{"get":{"operationId":"ssl-list-certificates","parameters":[{"description":"ID of the Project to list Certificates for.","examples":{"shortId":{"value":"p-ab1cd2"},"uuid":{"value":"0b15641e-26e2-4e56-9b83-96a995c8bf05"}},"in":"query","name":"projectId","required":false,"schema":{"type":"string"}},{"description":"ID of the Ingress to list Certificates for.","in":"query","name":"ingressId","required":false,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/de.mittwald.v1.ssl.Certificate"},"type":"array"}}},"description":"OK"},"404":{"$ref":"#/components/responses/de.mittwald.v1.commons.NotFoundError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List Certificates belonging to a Project or an Ingress.","tags":["Domain"]}},"/v2/projects/{projectId}/storage-space-statistics":{"get":{"operationId":"storagespace-get-project-statistics","parameters":[{"description":"ID of the Project to retrieve storage space Statistics for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.storagespace.Statistics"}}},"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.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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 storage space Statistics belonging to a Project.","tags":["Project"]}},"/v2/servers/{serverId}/storage-space-statistics":{"get":{"operationId":"storagespace-get-server-statistics","parameters":[{"description":"ID of the Server to retrieve storage space Statistics for.","in":"path","name":"serverId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.storagespace.Statistics"}}},"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.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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 storage space Statistics belonging to a Server.","tags":["Project"]}},"/v2/projects/{projectId}/storage-space-notification-threshold":{"put":{"operationId":"storagespace-replace-project-notification-threshold","parameters":[{"description":"ID of the Project to update the storage space notification threshold for.","in":"path","name":"projectId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"notificationThresholdInBytes":{"example":10000,"format":"int64","nullable":true,"type":"integer"}}}}},"required":false},"responses":{"204":{"description":"NoContent"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"Update a Project's storage space notification threshold.","tags":["Project"]}},"/v2/servers/{serverId}/storage-space-notification-threshold":{"put":{"operationId":"storagespace-replace-server-notification-threshold","parameters":[{"description":"ID of the Server to update the storage space notification threshold for.","in":"path","name":"serverId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"notificationThresholdInBytes":{"example":10000,"format":"int64","nullable":true,"type":"integer"}}}}},"required":false},"responses":{"204":{"description":"NoContent"},"403":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":"Update a Server's storage space notification threshold.","tags":["Project"]}},"/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":{"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"},"409":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"type":"string"}}],"responses":{"204":{"description":"PhoneNumber removal was successful"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"412":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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","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":"Validate your second factor.","tags":["User"],"description":"This route is deprecated. Please use /v2/authenticate-mfa instead.","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","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 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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"],"description":"This route is deprecated. Please use /v2/authenticate instead.","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 successful 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":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"},{"$ref":"#/components/schemas/de.mittwald.v1.commons.Error"}]}}},"description":"Authentication failed because of wrong credentials.\n"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.commons.ValidationErrors"}}},"description":"Authentication failed because of wrong credentials.\n"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"],"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"],"description":"This route is deprecated. Please use /v2/users/self/credentials/password instead.","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"],"description":"This route is deprecated. Please use /v2/users/self/credentials/password-updated-at instead.","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"},"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","expires","refreshToken"],"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"],"description":"This route is deprecated. Please use /v2/users/self/credentials/token instead.","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."},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"],"description":"This route is deprecated. Please use /v2/users/self/credentials/mfa instead.","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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":20,"minLength":20,"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":["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":"Create a new ApiToken.","tags":["User"],"description":"This route is deprecated. Please use /v2/users/self/api-tokens instead.","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"],"parameters":[{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false}],"description":"This route is deprecated. Please use /v2/users/self/api-tokens instead.","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":["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`.","example":"00000000-0000-4000-0000-000000000000:foobar:mittwald_a","type":"string"}},"required":["token"],"type":"object"}}},"description":"ApiToken was added."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"429":{"$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 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.","headers":{"X-Pagination-Limit":{"description":"The limit used to select the resources for the response","schema":{"type":"integer"}},"X-Pagination-Skip":{"description":"The number of skipped items","schema":{"type":"integer"}},"X-Pagination-Page":{"description":"The calculate page of the list response. Refer to parameters to learn more.","schema":{"type":"number"}},"X-Pagination-TotalCount":{"description":"The total amount of items available in the remote ressource. Use this value in combination with the limit to calculate the available pages.","schema":{"type":"integer"}}}},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List all of your ApiTokens.","tags":["User"],"parameters":[{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false}]}},"/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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"],"description":"This route is deprecated. Please use /v2/users/self/ssh-keys instead.","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"],"parameters":[{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false}],"description":"This route is deprecated. Please use /v2/users/self/ssh-keys instead.","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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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.","headers":{"X-Pagination-Limit":{"description":"The limit used to select the resources for the response","schema":{"type":"integer"}},"X-Pagination-Skip":{"description":"The number of skipped items","schema":{"type":"integer"}},"X-Pagination-Page":{"description":"The calculate page of the list response. Refer to parameters to learn more.","schema":{"type":"number"}},"X-Pagination-TotalCount":{"description":"The total amount of items available in the remote ressource. Use this value in combination with the limit to calculate the available pages.","schema":{"type":"integer"}}}},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Get your stored ssh-keys.","tags":["User"],"parameters":[{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false}]}},"/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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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."},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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.commons.DefaultError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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/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."},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"settingsString":{"example":"eyJvbmJvYXJkaW5nIjp7ImNvbXBsZXRlZCI6W119LCJyZWNlbnRWaXNpdHMiOnsicmVjZW50VmlzaXRzIjp7fSwicmVjZW50VmlzaXRlZFBhdGhzIjp7fX0sImNoYW5nZWxvZ3MiOnsicmVhZElkcyI6WzIsMSwzLDQsNSw2LDgsNyw5XX19","format":"base64","type":"string"}},"type":"object"}}},"description":"Personal settings of the user."},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"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":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$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":{"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."},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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.","headers":{"X-Pagination-Limit":{"description":"The limit used to select the resources for the response","schema":{"type":"integer"}},"X-Pagination-Skip":{"description":"The number of skipped items","schema":{"type":"integer"}},"X-Pagination-Page":{"description":"The calculate page of the list response. Refer to parameters to learn more.","schema":{"type":"number"}},"X-Pagination-TotalCount":{"description":"The total amount of items available in the remote ressource. Use this value in combination with the limit to calculate the available pages.","schema":{"type":"integer"}}}},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"List all sessions.","tags":["User"],"parameters":[{"name":"limit","in":"query","description":"The max count of resources to return in the list response.","schema":{"type":"integer","minimum":1},"required":false},{"name":"skip","in":"query","description":"Number of items to skip. Should be multiple of `limit`.","schema":{"type":"integer","default":0},"required":false},{"name":"page","in":"query","description":"Page to display. `skip` and `page` end up doing the same. If both `page` and `skip` are set, skip is used.","schema":{"type":"integer","minimum":1},"required":false}]},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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."},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"],"description":"This route is deprecated. Please use /v2/register instead.","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"},"429":{"$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":{"type":"string"}}],"responses":{"204":{"description":"Avatar removal was successful."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"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":{"maxSizeInBytes":{"description":"Maximum size in Bytes of the avatar image.","example":4096,"type":"integer"},"maxSizeInKB":{"deprecated":true,"description":"Deprecated. 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","maxSizeInBytes"],"type":"object"}},"required":["refId","rules"],"type":"object"}}},"description":"Avatar upload request was successful."},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$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"],"description":"This route is deprecated. Please use /v2/users/self/credentials/mfa instead.","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"],"description":"This route is deprecated. Please use /v2/users/self/credentials/support-code instead.","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"],"description":"This route is deprecated. Please use /v2/users/self/credentials/support-code instead.","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."},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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":{"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"],"description":"This route is deprecated. Please use /v2/users/{userId}/actions/verify-phone instead.","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":{"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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"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"],"description":"This route is deprecated. Please use /v2/verify-registration instead.","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"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"summary":"Verify your registration.","tags":["User"]}},"/v2/actions/detect-phishing-email":{"post":{"operationId":"verification-detect-phishing-email","description":"Parses the eml-file of an email to check if it is a phishing mail or a valid email from mittwald. In some cases we can't confirm the validity of an email.","requestBody":{"content":{"multipart/form-data":{"schema":{"properties":{"emailEml":{"format":"binary","type":"string"}},"required":["emailEml"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/de.mittwald.v1.verification.EmailDetectPhishingMailResponse"}}},"description":"OK"},"400":{"$ref":"#/components/responses/de.mittwald.v1.commons.ValidationError"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[],"summary":"Check if an email is from mittwald.","tags":["Misc"]}},"/v2/actions/verify-address":{"post":{"operationId":"verification-verify-address","description":"Only the DACH region is currently supported.","requestBody":{"content":{"application/json":{"schema":{"properties":{"city":{"example":"Bremen","type":"string"},"country":{"description":"Accepts the whole English or German name as well as the ISO 3166-2 country codes.","example":"DE","type":"string"},"street":{"description":"Includes the house number.","example":"Bremer Straße 1","type":"string"},"zip":{"example":"28203","type":"string"}},"required":["street","zip","city","country"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"exists":{"type":"boolean"}},"required":["exists"],"type":"object"}}},"description":"Success"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[],"summary":"Check if an address exists.","tags":["Misc"]}},"/v2/actions/verify-company":{"post":{"operationId":"verification-verify-company","description":"Only companies registered in the German company register are currently supported.","requestBody":{"content":{"application/json":{"schema":{"properties":{"name":{"example":"Mittwald CM Service GmbH & Co. KG","type":"string"}},"required":["name"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"exists":{"type":"boolean"}},"required":["exists"],"type":"object"}}},"description":"Success"},"412":{"description":"Precondition Failed"},"429":{"$ref":"#/components/responses/de.mittwald.v1.commons.RateLimitError"},"default":{"$ref":"#/components/responses/de.mittwald.v1.commons.DefaultError"}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}],"summary":"Check if a company exists.","tags":["Misc"]}}},"security":[{"de.mittwald.v1.commons.AccessToken":[]}]}