diff --git a/packages/mittwald/spec/openapi.json b/packages/mittwald/spec/openapi.json index b9e2d4aa..105b0a24 100644 --- a/packages/mittwald/spec/openapi.json +++ b/packages/mittwald/spec/openapi.json @@ -559,9 +559,6 @@ "app.AppVersion": { "description": "An AppVersion is an officially supported version of an App, containing the necessary and recommended configuration und dependencies.", "properties": { - "appId": { - "type": "string" - }, "breakingNote": { "$ref": "#/components/schemas/app.BreakingNote" }, @@ -613,8 +610,7 @@ "externalVersion", "internalVersion", "docRoot", - "docRootUserEditable", - "appId" + "docRootUserEditable" ], "type": "object" }, @@ -924,8 +920,7 @@ "enum": [ "email", "password", - "url", - "uri" + "url" ], "type": "string" }, @@ -3898,6 +3893,213 @@ ], "type": "object" }, + "marketplace.Contributor": { + "properties": { + "customerId": { + "format": "uuid", + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "logoRefId": { + "type": "string" + }, + "name": { + "type": "string" + }, + "phone": { + "type": "string" + }, + "state": { + "$ref": "#/components/schemas/marketplace.ContributorState" + }, + "url": { + "type": "string" + } + }, + "required": [ + "id", + "customerId", + "state", + "name" + ], + "type": "object" + }, + "marketplace.ContributorState": { + "enum": [ + "enabled", + "disabled" + ], + "type": "string" + }, + "marketplace.Extension": { + "properties": { + "context": { + "$ref": "#/components/schemas/marketplace.Context" + }, + "contributorId": { + "format": "uuid", + "type": "string" + }, + "description": { + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "name": { + "type": "string" + }, + "scopes": { + "items": { + "$ref": "#/components/schemas/marketplace.Scope" + }, + "type": "array" + }, + "state": { + "$ref": "#/components/schemas/marketplace.ExtensionState" + }, + "support": { + "$ref": "#/components/schemas/marketplace.SupportMeta" + }, + "tags": { + "items": { + "type": "string" + }, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "id", + "contributorId", + "support", + "state", + "name", + "description", + "tags", + "context", + "scopes" + ], + "type": "object" + }, + "marketplace.Context": { + "enum": [ + "project", + "customer" + ], + "type": "string" + }, + "marketplace.ExtensionInstance": { + "properties": { + "aggregateReference": { + "properties": { + "aggregate": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "id", + "domain", + "aggregate" + ], + "type": "object" + }, + "consentedScopes": { + "items": { + "$ref": "#/components/schemas/marketplace.Scope" + }, + "type": "array" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "disabled": { + "default": false, + "type": "boolean" + }, + "extensionId": { + "format": "uuid", + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "id", + "extensionId", + "disabled", + "consentedScopes", + "aggregateReference" + ], + "type": "object" + }, + "marketplace.Scope": { + "enum": [ + "mail:read", + "mail:write" + ], + "type": "string" + }, + "marketplace.ExtensionState": { + "enum": [ + "enabled", + "blocked", + "disabled" + ], + "type": "string" + }, + "marketplace.PublicKey": { + "properties": { + "algorithm": { + "example": "Ed25519", + "type": "string" + }, + "key": { + "description": "base64 encoded public key", + "format": "byte", + "type": "string" + }, + "serial": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "serial", + "algorithm", + "key" + ], + "type": "object" + }, + "marketplace.SupportMeta": { + "properties": { + "email": { + "example": "a.lovelace@example.com", + "type": "string" + }, + "phone": { + "type": "string" + } + }, + "type": "object" + }, "file.FileMeta": { "properties": { "friendlyURL": { @@ -4163,9 +4365,6 @@ }, { "$ref": "#/components/schemas/ingress.TargetUseDefaultPage" - }, - { - "$ref": "#/components/schemas/ingress.TargetContainer" } ] } @@ -4202,7 +4401,6 @@ "ingress.TargetUrl": { "properties": { "url": { - "format": "uri", "type": "string" } }, @@ -5269,2561 +5467,2532 @@ ], "type": "object" }, - "membership.CustomerInheritedRoles": { - "enum": [ - "notset", - "owner", - "member", - "accountant" - ], - "type": "string" - }, - "membership.CustomerInvite": { + "mailmigration.AutoResponder": { "properties": { - "avatarRefId": { - "description": "Reference to the Customer's avatar.", - "type": "string" - }, - "customerId": { - "description": "ID of the Customer the invite is for.", - "format": "uuid", - "type": "string" + "active": { + "type": "boolean" }, - "customerName": { - "description": "Name of the Customer the user is invited to.", - "type": "string" + "expiresAt": { + "format": "date-time" }, - "id": { - "description": "ID of the CustomerInvite.", - "format": "uuid", + "message": { "type": "string" }, - "information": { - "$ref": "#/components/schemas/membership.InviteInformation" - }, - "mailAddress": { - "description": "Mail-address of the user the invite is for.", - "format": "email", + "startsAt": { + "format": "date-time" + } + }, + "required": [ + "active", + "message" + ], + "type": "object" + }, + "mailmigration.MailSystemSettings": { + "properties": { + "imapClusterId": { "type": "string" }, - "membershipExpiresAt": { - "description": "Time the CustomerMembership should expire at.", - "format": "date-time", + "mailDirectory": { "type": "string" }, - "message": { - "description": "Message contained in the CustomerInvite.", + "rateLimitId": { "type": "string" - }, - "role": { - "$ref": "#/components/schemas/membership.CustomerRoles" } }, "required": [ - "id", - "customerId", - "mailAddress", - "role", - "accepted", - "information", - "customerName" + "imapClusterId", + "mailDirectory", + "rateLimitId" ], "type": "object" }, - "membership.CustomerMembership": { + "mailmigration.Mailbox": { "properties": { - "customerId": { - "description": "ID of the Customer the CustomerMembership is for.", - "format": "uuid", - "type": "string" + "mailsystem": { + "$ref": "#/components/schemas/mailmigration.MailSystemSettings" }, - "email": { - "description": "Email used by the invited user.", - "format": "email", + "name": { "type": "string" }, - "expiresAt": { - "description": "Time the CustomerMembership should expire at.", - "format": "date-time", + "passwordHash": { "type": "string" }, - "id": { - "description": "ID of the CustomerMembership.", - "format": "uuid", - "type": "string" + "quotaInBytes": { + "type": "integer" }, - "inviteId": { - "description": "ID of the CustomerInvite the membership was created from.", - "format": "uuid", - "type": "string" + "spamProtection": { + "$ref": "#/components/schemas/mailmigration.SpamProtection" + } + }, + "required": [ + "name", + "passwordHash", + "quotaInBytes", + "mailsystem" + ], + "type": "object" + }, + "mailmigration.Migration": { + "properties": { + "addresses": { + "items": { + "$ref": "#/components/schemas/mailmigration.MigrationMailAddress" + }, + "type": "array" }, - "memberSince": { - "description": "Date the CustomerMembership was created at.", - "format": "date-time", - "type": "string" + "finalizers": { + "$ref": "#/components/schemas/mailmigration.MigrationFinalizeJob" }, - "mfa": { - "description": "MFA activated by the user.", + "finished": { "type": "boolean" }, - "role": { - "$ref": "#/components/schemas/membership.CustomerRoles" - }, - "userId": { - "description": "ID of the user the CustomerMembership is for.", + "id": { "format": "uuid", "type": "string" + }, + "mailboxes": { + "items": { + "$ref": "#/components/schemas/mailmigration.MigrationMailbox" + }, + "type": "array" + }, + "sourceCoabProjectId": { + "type": "string" + }, + "targetNexusProjectId": { + "type": "string" } }, "required": [ "id", - "customerId", - "userId", - "role", - "email", - "mfa" + "targetNexusProjectId", + "sourceCoabProjectId", + "addresses", + "mailboxes", + "finalizers", + "finished" ], "type": "object" }, - "membership.CustomerRoles": { - "enum": [ - "notset", - "owner", - "member", - "accountant" - ], - "type": "string" + "mailmigration.MigrationFinalizeJob": { + "properties": { + "projectSettingMigrations": { + "$ref": "#/components/schemas/mailmigration.MigrationFinalizeJobProjectSetting" + } + }, + "type": "object" }, - "membership.InviteInformation": { + "mailmigration.MigrationFinalizeJobProjectSetting": { "properties": { - "invitationToken": { - "description": "Token for authentication purposes.", - "type": "string" - }, - "invitedBy": { - "description": "ID of the user that created the invite.", - "format": "uuid", - "type": "string" + "blacklistEntries": { + "items": { + "type": "string" + }, + "type": "array" }, - "userId": { - "description": "ID of the user this invite is for.", - "format": "uuid", - "type": "string" + "whitelistEntries": { + "items": { + "type": "string" + }, + "type": "array" } }, "required": [ - "invitedBy" + "blacklistEntries", + "whitelistEntries" ], "type": "object" }, - "membership.ProjectInvite": { + "mailmigration.MigrationMailAddress": { "properties": { - "id": { - "description": "ID of the ProjectInvite.", - "format": "uuid", - "type": "string" - }, - "information": { - "$ref": "#/components/schemas/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.", + "address": { "type": "string" }, - "projectDescription": { - "description": "Description of the Project the invite is created for.", - "type": "string" + "finished": { + "type": "boolean" }, - "projectId": { - "description": "ID of the Project the invitation is for.", + "id": { "format": "uuid", "type": "string" }, - "role": { - "$ref": "#/components/schemas/membership.ProjectRoles" + "migrationJobs": { + "$ref": "#/components/schemas/mailmigration.MigrationMailAddressMigrationJob" + }, + "preMigrationJobs": { + "$ref": "#/components/schemas/mailmigration.MigrationMailAddressPreMigrationJob" } }, "required": [ "id", - "projectId", - "mailAddress", - "role", - "accepted", - "information", - "projectDescription" + "address", + "preMigrationJobs", + "migrationJobs", + "finished" ], "type": "object" }, - "membership.ProjectMembership": { + "mailmigration.MigrateMailAddressCommandRequirements": { "properties": { - "email": { - "description": "Email used by the invited user.", - "format": "email", + "address": { "type": "string" }, - "expiresAt": { - "description": "Time the ProjectMembership should expire at.", - "format": "date-time", - "type": "string" + "autoResponder": { + "$ref": "#/components/schemas/mailmigration.AutoResponder" }, - "id": { - "description": "ID of the ProjectMembership.", - "format": "uuid", - "type": "string" + "forwardAddresses": { + "items": { + "type": "string" + }, + "type": "array" }, - "inherited": { - "description": "Whether the ProjectMembership was inherited from a CustomerMembership.", + "isCatchAll": { "type": "boolean" }, - "inviteId": { - "description": "ID of the ProjectInvite the membership was created from.", - "format": "uuid", - "type": "string" - }, - "memberSince": { - "description": "Date the projectMembership was created at.", - "format": "date-time", - "type": "string" - }, - "mfa": { - "description": "MFA activated by the user.", - "type": "boolean" + "mailbox": { + "$ref": "#/components/schemas/mailmigration.Mailbox" }, "projectId": { - "description": "ID of the Project the membership is for.", - "format": "uuid", - "type": "string" - }, - "role": { - "$ref": "#/components/schemas/membership.ProjectRoles" - }, - "userId": { - "description": "ID of the user the ProjectMembership is for.", - "format": "uuid", "type": "string" } }, "required": [ - "id", - "projectId", - "userId", - "role", - "inherited", - "email", - "mfa" + "projectId" ], "type": "object" }, - "membership.ProjectRoles": { - "enum": [ - "notset", - "owner", - "emailadmin", - "external" + "mailmigration.MigrationMailAddressMigrationJob": { + "properties": { + "migrate": { + "$ref": "#/components/schemas/mailmigration.MigrationMailAddressMigrationJobMigrate" + } + }, + "required": [ + "migrate" ], - "type": "string" + "type": "object" }, - "messaging.AggregateReference": { + "mailmigration.MigrationMailAddressMigrationJobMigrate": { "properties": { - "aggregate": { - "type": "string" - }, - "domain": { - "type": "string" - }, - "id": { - "type": "string" + "finished": { + "type": "boolean" }, - "parents": { + "requirements": { + "$ref": "#/components/schemas/mailmigration.MigrateMailAddressCommandRequirements" + } + }, + "required": [ + "requirements", + "finished" + ], + "type": "object" + }, + "mailmigration.MigrationMailAddressPreMigrationJob": { + "properties": { + "aliasSet": { "items": { - "properties": { - "aggregate": { - "type": "string" - }, - "domain": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id", - "aggregate", - "domain" - ], - "type": "object" + "$ref": "#/components/schemas/mailmigration.MigrationMailAddressPreMigrationJobAliasSet" + }, + "type": "array" + }, + "deliveryMigrations": { + "items": { + "$ref": "#/components/schemas/mailmigration.MigrationMailAddressPreMigrationJobDeliveryMigration" }, "type": "array" } }, "required": [ - "id", - "aggregate", - "domain" + "deliveryMigrations", + "aliasSet" ], "type": "object" }, - "messaging.Notification": { + "mailmigration.MigrationMailAddressPreMigrationJobAliasSet": { "properties": { - "createdAt": { - "format": "date-time", - "type": "string" - }, - "id": { - "format": "uuid", - "type": "string" - }, - "read": { + "finished": { "type": "boolean" }, - "reference": { - "$ref": "#/components/schemas/messaging.AggregateReference" - }, - "severity": { - "enum": [ - "success", - "info", - "warning", - "error" - ], - "type": "string" - }, - "type": { + "sourceCoabMailboxName": { "type": "string" } }, "required": [ - "id", - "type", - "reference", - "severity", - "read", - "createdAt" + "sourceCoabMailboxName", + "finished" ], "type": "object" }, - "messaging.NotificationStatus": { - "enum": [ - "read" - ], - "type": "string" - }, - "order.Addons": { + "mailmigration.MigrationMailAddressPreMigrationJobDeliveryMigration": { "properties": { - "hidden": { + "finished": { "type": "boolean" }, - "key": { + "sourceCoabDeliveryMailbox": { "type": "string" }, - "value": { + "sourceCoabDeliveryUid": { + "type": "integer" + }, + "targetDeliveryAddress": { "type": "string" } }, "required": [ - "key", - "value" + "sourceCoabDeliveryUid", + "sourceCoabDeliveryMailbox", + "targetDeliveryAddress", + "finished" ], "type": "object" }, - "order.ArticleAddons": { + "mailmigration.MigrationMailbox": { "properties": { - "hidden": { + "finished": { "type": "boolean" }, - "key": { - "minLength": 1, - "type": "string" - }, - "type": { + "id": { + "format": "uuid", "type": "string" }, - "value": { - "minLength": 1, - "type": "string" + "migrationJobs": { + "$ref": "#/components/schemas/mailmigration.MigrationMailboxJob" }, - "valueMergeType": { - "enum": [ - "add", - "set" - ], + "name": { "type": "string" } }, "required": [ - "key", - "value" + "id", + "name", + "migrationJobs", + "finished" ], "type": "object" }, - "order.AttributeConfiguration": { + "mailmigration.MigrationMailboxJob": { "properties": { - "key": { - "example": "storage", - "type": "string" - }, - "value": { - "example": 10, - "type": "string" + "migrate": { + "$ref": "#/components/schemas/mailmigration.MigrationMailboxJobMigrate" } }, "required": [ - "key" + "migrate" ], "type": "object" }, - "order.CustomerOrder": { + "mailmigration.MigrationMailboxJobMigrate": { "properties": { - "contractChangeContractId": { - "format": "uuid", - "type": "string" + "requirements": { + "$ref": "#/components/schemas/mailmigration.MigrateMailboxCommandRequirements" + } + }, + "required": [ + "requirements" + ], + "type": "object" + }, + "mailmigration.MigrateMailboxCommandRequirements": { + "properties": { + "mailbox": { + "$ref": "#/components/schemas/mailmigration.Mailbox" }, - "customerId": { - "example": "4317f5c5-1ea8-4084-a9f1-3a8e7e1c94ff", - "minLength": 1, + "projectId": { "type": "string" - }, - "dueDate": { - "format": "date-time", + } + }, + "required": [ + "projectId" + ], + "type": "object" + }, + "mailmigration.CheckMigrationIsPossibleErrorAlreadyExistingMailAddress": { + "properties": { + "address": { "type": "string" - }, - "invoicingPeriod": { - "description": "Invoicing period in months", - "example": 12, - "type": "number" - }, - "items": { + } + }, + "required": [ + "address" + ], + "type": "object" + }, + "mailmigration.CheckMigrationIsPossibleErrorAmbiguousMailAddressDelivery": { + "properties": { + "addresses": { "items": { - "$ref": "#/components/schemas/order.OrderItem" + "type": "string" }, "type": "array" }, - "orderDate": { - "format": "date-time", - "type": "string" - }, - "orderId": { - "format": "uuid", - "type": "string" - }, - "orderNumber": { - "example": "5XXXXXX", - "minLength": 1, + "mailboxName": { "type": "string" - }, - "profile": { - "$ref": "#/components/schemas/order.Profile" - }, - "status": { - "$ref": "#/components/schemas/order.OrderStatus" - }, - "summary": { - "$ref": "#/components/schemas/order.OrderSummary" - }, - "type": { - "$ref": "#/components/schemas/order.OrderType" } }, "required": [ - "orderId", - "orderNumber", - "orderDate", - "summary", - "customerId", - "invoicingPeriod", - "type", - "status", - "items" + "mailboxName", + "addresses" ], "type": "object" }, - "order.DomainHandleField": { + "mailmigration.CheckMigrationIsPossibleErrorAmbiguousMailboxDelivery": { "properties": { - "name": { - "example": "name", + "address": { "type": "string" }, - "value": { - "example": "Ada Lovelace", - "type": "string" + "mailboxes": { + "items": { + "type": "string" + }, + "type": "array" } }, "required": [ - "name", - "value" + "address", + "mailboxes" ], "type": "object" }, - "order.DomainOrderPreview": { + "mailmigration.CheckMigrationIsPossibleErrorCatchAllMissingAddress": { "properties": { - "authCode": { - "example": "XXXXXXX", - "type": "string" - }, - "domain": { - "example": "mittwald.example", - "type": "string" - }, - "projectId": { - "format": "uuid", + "address": { "type": "string" } }, "required": [ - "domain" + "address" ], "type": "object" }, - "order.DomainOrder": { + "mailmigration.CheckMigrationIsPossibleErrorCatchAllTargetWithoutAlias": { "properties": { - "authCode": { - "example": "XXXXXXX", + "address": { "type": "string" }, - "domain": { - "example": "mittwald.example", - "type": "string" - }, - "handleData": { - "properties": { - "adminC": { - "items": { - "$ref": "#/components/schemas/order.DomainHandleField" - }, - "type": "array" - }, - "ownerC": { - "items": { - "$ref": "#/components/schemas/order.DomainHandleField" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "ownerC" - ], - "type": "object" - }, - "projectId": { - "format": "uuid", + "mailboxName": { "type": "string" } }, "required": [ - "projectId", - "domain", - "handleData" + "address", + "mailboxName" ], "type": "object" }, - "order.HardwareSpec": { - "properties": { - "ram": { - "example": 2, - "type": "number" - }, - "vcpu": { - "example": 1, - "type": "number" - } - }, - "type": "object" - }, - "order.MachineTypeSpec": { + "mailmigration.CheckMigrationIsPossibleErrorMissingVerifiedIngress": { "properties": { - "machineType": { - "example": "prospace.2cpu.4gb", + "hostname": { + "format": "idn-hostname", "type": "string" } }, + "required": [ + "hostname" + ], "type": "object" }, - "order.OrderItem": { + "mailmigration.PossibleCheckErrors": { "properties": { - "addons": { + "alreadyExistingMailAddress": { "items": { - "$ref": "#/components/schemas/order.Addons" + "$ref": "#/components/schemas/mailmigration.CheckMigrationIsPossibleErrorAlreadyExistingMailAddress" }, "type": "array" }, - "articleId": { - "example": "PS23-PLUS-0004", - "type": "string" - }, - "articleName": { - "example": "proSpace", - "type": "string" - }, - "articleTemplateName": { - "example": "Pro-Space-Hosting", - "type": "string" - }, - "attributeConfiguration": { + "ambiguousMailAddressDelivery": { "items": { - "$ref": "#/components/schemas/order.AttributeConfiguration" + "$ref": "#/components/schemas/mailmigration.CheckMigrationIsPossibleErrorAmbiguousMailAddressDelivery" }, "type": "array" }, - "isInclusive": { - "type": "boolean" - }, - "orderItemId": { - "format": "uuid", - "type": "string" + "ambiguousMailboxDelivery": { + "items": { + "$ref": "#/components/schemas/mailmigration.CheckMigrationIsPossibleErrorAmbiguousMailboxDelivery" + }, + "type": "array" }, - "predefinedDomainAggregateId": { - "example": "aa38d836-fe72-4c43-aad3-9472b51edf61", - "type": "string" + "catchAllMissingAddress": { + "items": { + "$ref": "#/components/schemas/mailmigration.CheckMigrationIsPossibleErrorCatchAllMissingAddress" + }, + "type": "array" }, - "price": { - "example": 1000, - "type": "number" + "catchAllTargetWithoutAlias": { + "items": { + "$ref": "#/components/schemas/mailmigration.CheckMigrationIsPossibleErrorCatchAllTargetWithoutAlias" + }, + "type": "array" }, - "reference": { - "$ref": "#/components/schemas/order.Reference" + "missingVerifiedIngress": { + "items": { + "$ref": "#/components/schemas/mailmigration.CheckMigrationIsPossibleErrorMissingVerifiedIngress" + }, + "type": "array" } }, "required": [ - "orderItemId", - "articleId", - "price", - "isInclusive" + "ambiguousMailAddressDelivery", + "ambiguousMailboxDelivery", + "catchAllMissingAddress", + "catchAllTargetWithoutAlias", + "missingVerifiedIngress", + "alreadyExistingMailAddress" ], "type": "object" }, - "order.Reference": { + "mailmigration.CheckMigrationIsPossibleErrorResponse": { "properties": { - "contractItemId": { - "format": "uuid", - "type": "string" - }, - "offerItemId": { - "format": "uuid", - "type": "string" - }, - "orderItemId": { - "format": "uuid", - "type": "string" + "errors": { + "$ref": "#/components/schemas/mailmigration.PossibleCheckErrors" } }, "type": "object" }, - "order.OrderStatus": { - "enum": [ - "NEW", - "CONFIRMED", - "REJECTED", - "ABORTED", - "EXECUTED" - ], - "type": "string" - }, - "order.OrderSummary": { + "mailmigration.SpamProtection": { "properties": { - "nonRecurring": { - "example": 1000, - "type": "number" + "active": { + "type": "boolean" }, - "recurring": { - "example": 9000, - "type": "number" + "deleteSensitivity": { + "type": "integer" }, - "summary": { - "description": "The total price of the order", - "example": 10000, - "type": "number" + "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": [ - "summary", - "recurring", - "nonRecurring" + "active", + "folder", + "keepDays", + "relocateSensitivity", + "deleteSensitivity" ], "type": "object" }, - "order.OrderType": { + "membership.CustomerInheritedRoles": { "enum": [ - "NEW_ORDER", - "CONTRACT_CHANGE" + "notset", + "owner", + "member", + "accountant" ], "type": "string" }, - "order.DomainOrderPreviewResponse": { + "membership.CustomerInvite": { "properties": { - "domainPrice": { - "example": 800, - "type": "number" + "avatarRefId": { + "description": "Reference to the Customer's avatar.", + "type": "string" }, - "feePrice": { - "example": 100, - "type": "number" + "customerId": { + "description": "ID of the Customer the invite is for.", + "format": "uuid", + "type": "string" }, - "totalPrice": { - "example": 900, - "type": "number" + "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/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/membership.CustomerRoles" } }, "required": [ - "totalPrice", - "domainPrice", - "feePrice" + "id", + "customerId", + "mailAddress", + "role", + "accepted", + "information", + "customerName" ], "type": "object" }, - "order.HostingOrderPreviewResponse": { + "membership.CustomerMembership": { "properties": { - "machineTypePrice": { - "example": 500, - "type": "number" + "customerId": { + "description": "ID of the Customer the CustomerMembership is for.", + "format": "uuid", + "type": "string" }, - "storagePrice": { - "example": 1000, - "type": "number" - }, - "totalPrice": { - "example": 1500, - "type": "number" - } - }, - "required": [ - "totalPrice", - "storagePrice", - "machineTypePrice" - ], - "type": "object" - }, - "order.Profile": { - "properties": { "email": { + "description": "Email used by the invited user.", "format": "email", "type": "string" }, - "first_name": { - "example": "Ada", + "expiresAt": { + "description": "Time the CustomerMembership should expire at.", + "format": "date-time", "type": "string" }, - "last_name": { - "example": "Lovelace", + "id": { + "description": "ID of the CustomerMembership.", + "format": "uuid", "type": "string" }, - "title": { - "description": "the users title", - "enum": [ - "other", - "mr", - "ms" - ], + "inviteId": { + "description": "ID of the CustomerInvite the membership was created from.", + "format": "uuid", + "type": "string" + }, + "memberSince": { + "description": "Date the CustomerMembership was created at.", + "format": "date-time", "type": "string" }, + "mfa": { + "description": "MFA activated by the user.", + "type": "boolean" + }, + "role": { + "$ref": "#/components/schemas/membership.CustomerRoles" + }, "userId": { + "description": "ID of the user the CustomerMembership is for.", "format": "uuid", "type": "string" } }, "required": [ + "id", + "customerId", "userId", - "email" + "role", + "email", + "mfa" ], "type": "object" }, - "order.ProjectHostingOrderPreview": { + "membership.CustomerRoles": { + "enum": [ + "notset", + "owner", + "member", + "accountant" + ], + "type": "string" + }, + "membership.InviteInformation": { "properties": { - "customerId": { + "invitationToken": { + "description": "Token for authentication purposes.", "type": "string" }, - "description": { - "example": "My first project", + "invitedBy": { + "description": "ID of the user that created the invite.", + "format": "uuid", "type": "string" }, - "diskspaceInGiB": { - "example": 10, - "type": "number" - }, - "spec": { - "oneOf": [ - { - "$ref": "#/components/schemas/order.MachineTypeSpec" - }, - { - "$ref": "#/components/schemas/order.HardwareSpec" - } - ] + "userId": { + "description": "ID of the user this invite is for.", + "format": "uuid", + "type": "string" } }, "required": [ - "diskspaceInGiB", - "spec" + "invitedBy" ], "type": "object" }, - "order.ProjectHostingOrder": { + "membership.ProjectInvite": { "properties": { - "customerId": { + "id": { + "description": "ID of the ProjectInvite.", + "format": "uuid", "type": "string" }, - "description": { - "example": "My first project", + "information": { + "$ref": "#/components/schemas/membership.InviteInformation" + }, + "mailAddress": { + "description": "Mail-address of the user the ProjectInvite is for.", + "format": "email", "type": "string" }, - "diskspaceInGiB": { - "example": 10, - "type": "number" + "membershipExpiresAt": { + "description": "Time the ProjectMembership should expire at.", + "format": "date-time", + "type": "string" }, - "promotionCode": { - "example": "123456", + "message": { + "description": "Message contained in the ProjectInvite.", "type": "string" }, - "spec": { - "oneOf": [ - { - "$ref": "#/components/schemas/order.MachineTypeSpec" - }, - { - "$ref": "#/components/schemas/order.HardwareSpec" - } - ] + "projectDescription": { + "description": "Description of the Project the invite is created for.", + "type": "string" }, - "useFreeTrial": { - "type": "boolean" + "projectId": { + "description": "ID of the Project the invitation is for.", + "format": "uuid", + "type": "string" + }, + "role": { + "$ref": "#/components/schemas/membership.ProjectRoles" } }, "required": [ - "customerId", - "diskspaceInGiB", - "description", - "spec" + "id", + "projectId", + "mailAddress", + "role", + "accepted", + "information", + "projectDescription" ], "type": "object" }, - "order.ProjectHostingTariffChange": { + "membership.ProjectMembership": { "properties": { - "contractId": { + "email": { + "description": "Email used by the invited user.", + "format": "email", "type": "string" }, - "diskspaceInGiB": { - "example": 10, - "type": "number" + "expiresAt": { + "description": "Time the ProjectMembership should expire at.", + "format": "date-time", + "type": "string" }, - "spec": { - "oneOf": [ - { - "$ref": "#/components/schemas/order.MachineTypeSpec" - }, - { - "$ref": "#/components/schemas/order.HardwareSpec" - } - ] - } - }, - "required": [ - "contractId", - "diskspaceInGiB", - "spec" - ], - "type": "object" - }, - "order.ServerOrderPreview": { - "properties": { - "customerId": { - "example": "f3435305-fd26-470e-9f21-43d9be7e67e7", + "id": { + "description": "ID of the ProjectMembership.", + "format": "uuid", "type": "string" }, - "description": { - "example": "My first project", + "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" }, - "diskspaceInGiB": { - "example": 100, - "type": "number" + "memberSince": { + "description": "Date the projectMembership was created at.", + "format": "date-time", + "type": "string" }, - "machineType": { - "example": "shared.xlarge", + "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/membership.ProjectRoles" + }, + "userId": { + "description": "ID of the user the ProjectMembership is for.", + "format": "uuid", "type": "string" } }, "required": [ - "machineType", - "diskspaceInGiB" + "id", + "projectId", + "userId", + "role", + "inherited", + "email", + "mfa" ], "type": "object" }, - "order.ServerOrder": { + "membership.ProjectRoles": { + "enum": [ + "notset", + "owner", + "emailadmin", + "external" + ], + "type": "string" + }, + "messaging.AggregateReference": { "properties": { - "customerId": { - "example": "f3435305-fd26-470e-9f21-43d9be7e67e7", - "minLength": 1, + "aggregate": { "type": "string" }, - "description": { - "example": "My first project", + "domain": { "type": "string" }, - "diskspaceInGiB": { - "example": 100, - "type": "number" - }, - "machineType": { - "example": "shared.xlarge", + "id": { "type": "string" }, - "useFreeTrial": { - "type": "boolean" + "parents": { + "items": { + "properties": { + "aggregate": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "id": { + "type": "string" + } + }, + "required": [ + "id", + "aggregate", + "domain" + ], + "type": "object" + }, + "type": "array" } }, "required": [ - "customerId", - "machineType", - "diskspaceInGiB", - "description" + "id", + "aggregate", + "domain" ], "type": "object" }, - "order.ServerTariffChange": { + "messaging.Notification": { "properties": { - "contractId": { + "createdAt": { + "format": "date-time", + "type": "string" + }, + "id": { "format": "uuid", "type": "string" }, - "diskspaceInGiB": { - "example": 100, - "type": "number" + "read": { + "type": "boolean" }, - "machineType": { - "example": "shared.xlarge", - "type": "string" - } - }, - "required": [ - "contractId", - "machineType", - "diskspaceInGiB" - ], - "type": "object" - }, - "policy.Policy": { - "type": "string" - }, - "project.AvatarRules": { - "properties": { - "maxSizeInKB": { - "example": 3000, - "type": "integer" + "reference": { + "$ref": "#/components/schemas/messaging.AggregateReference" }, - "mimeTypes": { - "example": [ - "image/jpeg", - "image/png" + "severity": { + "enum": [ + "success", + "info", + "warning", + "error" ], - "items": { - "type": "string" - }, - "type": "array" + "type": "string" }, - "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" + "type": { + "type": "string" } }, "required": [ - "mimeTypes", - "maxSizeInKB" + "id", + "type", + "reference", + "severity", + "read", + "createdAt" ], "type": "object" }, - "project.DeprecatedProjectReadinessStatus": { - "deprecated": true, - "description": "deprecated", - "enum": [ - "creating", - "ready", - "unready" - ], - "type": "string" - }, - "project.DeprecatedServerReadinessStatus": { - "deprecated": true, - "description": "deprecated", + "messaging.NotificationStatus": { "enum": [ - "creating", - "ready", - "unready" + "read" ], "type": "string" }, - "project.FilesystemDirectoryListing": { + "order.Addons": { "properties": { - "absolutePath": { - "type": "string" - }, - "isDirectory": { - "type": "boolean" - }, - "isExecutable": { - "type": "boolean" - }, - "isFile": { - "type": "boolean" - }, - "isSymlink": { + "hidden": { "type": "boolean" }, - "items": { - "items": { - "$ref": "#/components/schemas/project.FilesystemDirectoryListing" - }, - "type": "array" - }, - "name": { + "key": { "type": "string" }, - "size": { - "type": "integer" - }, - "target": { + "value": { "type": "string" } }, "required": [ - "absolutePath", - "name", - "size" + "key", + "value" ], "type": "object" }, - "project.FilesystemUsagesDisk": { + "order.ArticleAddons": { "properties": { - "path": { + "hidden": { + "type": "boolean" + }, + "key": { + "minLength": 1, "type": "string" }, - "totalBytes": { - "type": "integer" + "type": { + "type": "string" }, - "usedBytes": { - "type": "integer" - } - }, - "type": "object" - }, - "project.FsApiJwt": { - "properties": { - "jwt": { - "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFkYSBMb3ZlbGFjZSIsImlhdCI6MTUxNjIzOTAyMn0.sMjBP_p34T5mbJTVdEWQ8i2hQPVxsmlt8L6-rKpCczo", + "value": { + "minLength": 1, + "type": "string" + }, + "valueMergeType": { + "enum": [ + "add", + "set" + ], "type": "string" } }, "required": [ - "jwt" + "key", + "value" ], "type": "object" }, - "project.HardwareSpec": { + "order.AttributeConfiguration": { "properties": { - "cpu": { - "example": "2", - "type": "string" - }, - "mem": { - "example": "4Gi", + "key": { + "example": "storage", "type": "string" }, - "storage": { - "example": "50Gi", + "value": { + "example": 10, "type": "string" } }, "required": [ - "storage" + "key" ], "type": "object" }, - "project.MachineType": { + "order.CustomerOrder": { "properties": { - "cpu": { - "example": "2", + "contractChangeContractId": { + "format": "uuid", "type": "string" }, - "memory": { - "example": "4Gi", + "customerId": { + "example": "4317f5c5-1ea8-4084-a9f1-3a8e7e1c94ff", + "minLength": 1, "type": "string" }, - "name": { - "example": "shared.large", - "type": "string" - } - }, - "required": [ - "name", - "cpu", - "memory" - ], - "type": "object" - }, - "project.DisableReason": { - "enum": [ - "maliciousCode", - "illegalContent", - "maliciousConduct", - "suspended" - ], - "type": "string" - }, - "project.ProjectStatus": { - "enum": [ - "pending", - "ready", - "preparingForVolumeMigration", - "migratingVolume", - "error", - "disabled" - ], - "type": "string" - }, - "project.Project": { - "properties": { - "clusterDomain": { - "example": "project.host", - "format": "hostname", + "dueDate": { + "format": "date-time", "type": "string" }, - "clusterID": { - "example": "espelkamp", - "type": "string" + "invoicingPeriod": { + "description": "Invoicing period in months", + "example": 12, + "type": "number" }, - "createdAt": { + "items": { + "items": { + "$ref": "#/components/schemas/order.OrderItem" + }, + "type": "array" + }, + "orderDate": { "format": "date-time", "type": "string" }, - "customerId": { - "example": "f282f1a8-2b15-4b08-9850-6788e3b20136", + "orderId": { + "format": "uuid", "type": "string" }, - "description": { - "example": "My first Project!", + "orderNumber": { + "example": "5XXXXXX", + "minLength": 1, "type": "string" }, - "directories": { - "additionalProperties": { - "type": "string" - }, - "example": { - "Home": "/home/p-4e7tz3" - }, - "type": "object" - }, - "disableReason": { - "$ref": "#/components/schemas/project.DisableReason" + "profile": { + "$ref": "#/components/schemas/order.Profile" }, - "disabledAt": { - "format": "date-time", - "type": "string" + "status": { + "$ref": "#/components/schemas/order.OrderStatus" }, - "enabled": { - "type": "boolean" + "summary": { + "$ref": "#/components/schemas/order.OrderSummary" }, - "id": { - "format": "uuid", + "type": { + "$ref": "#/components/schemas/order.OrderType" + } + }, + "required": [ + "orderId", + "orderNumber", + "orderDate", + "summary", + "customerId", + "invoicingPeriod", + "type", + "status", + "items" + ], + "type": "object" + }, + "order.DomainHandleField": { + "properties": { + "name": { + "example": "name", "type": "string" }, - "imageRefId": { - "format": "uuid", + "value": { + "example": "Ada Lovelace", "type": "string" - }, - "isReady": { - "deprecated": true, - "description": "deprecated", - "type": "boolean" - }, - "projectHostingId": { - "format": "uuid", + } + }, + "required": [ + "name", + "value" + ], + "type": "object" + }, + "order.DomainOrderPreview": { + "properties": { + "authCode": { + "example": "XXXXXXX", "type": "string" }, - "readiness": { - "$ref": "#/components/schemas/project.DeprecatedProjectReadinessStatus" + "domain": { + "example": "mittwald.example", + "type": "string" }, - "serverId": { + "projectId": { "format": "uuid", "type": "string" - }, - "serverShortId": { + } + }, + "required": [ + "domain" + ], + "type": "object" + }, + "order.DomainOrder": { + "properties": { + "authCode": { + "example": "XXXXXXX", "type": "string" }, - "shortId": { - "example": "s-4e7tz3", + "domain": { + "example": "mittwald.example", "type": "string" }, - "spec": { - "oneOf": [ - { - "$ref": "#/components/schemas/project.VisitorSpec" + "handleData": { + "properties": { + "adminC": { + "items": { + "$ref": "#/components/schemas/order.DomainHandleField" + }, + "type": "array" }, - { - "$ref": "#/components/schemas/project.HardwareSpec" + "ownerC": { + "items": { + "$ref": "#/components/schemas/order.DomainHandleField" + }, + "minItems": 1, + "type": "array" } - ] - }, - "statisticsBaseDomain": { - "example": "pe-prod.staging.mcloud.services", - "format": "hostname", - "type": "string" - }, - "status": { - "$ref": "#/components/schemas/project.ProjectStatus" + }, + "required": [ + "ownerC" + ], + "type": "object" }, - "statusSetAt": { - "format": "date-time", + "projectId": { + "format": "uuid", "type": "string" } }, "required": [ - "id", - "shortId", - "description", - "enabled", - "customerId", - "directories", - "createdAt", - "isReady", - "readiness", - "status", - "statusSetAt" + "projectId", + "domain", + "handleData" ], "type": "object" }, - "project.ServerDisableReason": { - "enum": [ - "suspended" - ], - "type": "string" - }, - "project.ServerStatus": { - "enum": [ - "pending", - "ready", - "unready" - ], - "type": "string" - }, - "project.Server": { + "order.HardwareSpec": { "properties": { - "clusterName": { - "type": "string" + "ram": { + "example": 2, + "type": "number" }, - "createdAt": { - "format": "date-time", + "vcpu": { + "example": 1, + "type": "number" + } + }, + "type": "object" + }, + "order.MachineTypeSpec": { + "properties": { + "machineType": { + "example": "prospace.2cpu.4gb", "type": "string" + } + }, + "type": "object" + }, + "order.OrderItem": { + "properties": { + "addons": { + "items": { + "$ref": "#/components/schemas/order.Addons" + }, + "type": "array" }, - "customerId": { - "example": "673c107f-75e1-451c-8eaa-5bf101bd2b2c", + "articleId": { + "example": "PS23-PLUS-0004", "type": "string" }, - "description": { - "example": "My first Server!", + "articleName": { + "example": "proSpace", "type": "string" }, - "disabledReason": { - "$ref": "#/components/schemas/project.ServerDisableReason" - }, - "id": { - "format": "uuid", + "articleTemplateName": { + "example": "Pro-Space-Hosting", "type": "string" }, - "imageRefId": { - "format": "uuid", - "type": "string" + "attributeConfiguration": { + "items": { + "$ref": "#/components/schemas/order.AttributeConfiguration" + }, + "type": "array" }, - "isReady": { - "deprecated": true, - "description": "deprecated", + "isInclusive": { "type": "boolean" }, - "machineType": { - "$ref": "#/components/schemas/project.MachineType" - }, - "readiness": { - "$ref": "#/components/schemas/project.DeprecatedServerReadinessStatus" - }, - "shortId": { - "example": "s-4e7tz3", - "type": "string" - }, - "statisticsBaseDomain": { - "example": "pe-prod.staging.mcloud.services", - "format": "hostname", - "type": "string" - }, - "status": { - "$ref": "#/components/schemas/project.ServerStatus" - }, - "storage": { - "example": "50Gi", + "orderItemId": { + "format": "uuid", "type": "string" - } - }, - "required": [ - "id", - "shortId", - "customerId", - "machineType", - "storage", - "description", - "isReady", - "readiness", - "createdAt", - "clusterName", - "status" - ], - "type": "object" - }, - "project.VisitorSpec": { - "properties": { - "storage": { + }, + "predefinedDomainAggregateId": { + "example": "aa38d836-fe72-4c43-aad3-9472b51edf61", "type": "string" }, - "visitors": { + "price": { + "example": 1000, "type": "number" + }, + "reference": { + "$ref": "#/components/schemas/order.Reference" } }, "required": [ - "visitors", - "storage" + "orderItemId", + "articleId", + "price", + "isInclusive" ], "type": "object" }, - "directus.Domain": { + "order.Reference": { "properties": { - "authCode": { - "description": "The authcode of the domain. Leave empty when mittwald can generate a authcode on its own", + "contractItemId": { + "format": "uuid", "type": "string" }, - "domainOwnerData": { - "description": "Leave empty when mittwald should keep the same domain owner", + "offerItemId": { + "format": "uuid", "type": "string" }, - "name": { - "minLength": 1, + "orderItemId": { + "format": "uuid", "type": "string" } }, - "required": [ - "name" - ], "type": "object" }, - "screenshot.Target": { + "order.OrderStatus": { + "enum": [ + "NEW", + "CONFIRMED", + "REJECTED", + "ABORTED", + "EXECUTED" + ], + "type": "string" + }, + "order.OrderSummary": { "properties": { - "domain": { - "example": "example.com", - "type": "string" + "nonRecurring": { + "example": 1000, + "type": "number" }, - "path": { - "type": "string" + "recurring": { + "example": 9000, + "type": "number" }, - "scheme": { - "enum": [ - "http", - "https" - ], - "example": "https", - "type": "string" + "summary": { + "description": "The total price of the order", + "example": 10000, + "type": "number" } }, "required": [ - "scheme", - "domain" + "summary", + "recurring", + "nonRecurring" ], "type": "object" }, - "screenshot.Task": { + "order.OrderType": { + "enum": [ + "NEW_ORDER", + "CONTRACT_CHANGE" + ], + "type": "string" + }, + "order.DomainOrderPreviewResponse": { "properties": { - "executedAt": { - "format": "date-time", - "type": "string" - }, - "fileReference": { - "type": "string" - }, - "id": { - "format": "uuid", - "type": "string" - }, - "priority": { + "domainPrice": { + "example": 800, "type": "number" }, - "settings": { - "$ref": "#/components/schemas/screenshot.ScreenshotSettings" - }, - "target": { - "$ref": "#/components/schemas/screenshot.Target" + "feePrice": { + "example": 100, + "type": "number" }, - "taskState": { - "oneOf": [ - { - "$ref": "#/components/schemas/screenshot.LifecycleState" - }, - { - "$ref": "#/components/schemas/commons.Error" - } - ] + "totalPrice": { + "example": 900, + "type": "number" } }, "required": [ - "id", - "settings", - "target", - "priority" + "totalPrice", + "domainPrice", + "feePrice" ], "type": "object" }, - "screenshot.LifecycleState": { - "type": "string" - }, - "screenshot.ScreenshotSettings": { + "order.HostingOrderPreviewResponse": { "properties": { - "dataType": { - "enum": [ - "jpeg", - "png", - "webp" - ], - "type": "string" - }, - "delay": { - "type": "number" - }, - "height": { + "machineTypePrice": { + "example": 500, "type": "number" }, - "quality": { + "storagePrice": { + "example": 1000, "type": "number" }, - "width": { + "totalPrice": { + "example": 1500, "type": "number" } }, "required": [ - "width", - "height", - "quality", - "delay", - "dataType" + "totalPrice", + "storagePrice", + "machineTypePrice" ], "type": "object" }, - "sshuser.EntityTypes": { - "enum": [ - "ssh", - "sftp" - ], - "type": "string" - }, - "sshuser.AccessLevel": { - "description": "The level of access for an SFTPUser.", - "enum": [ - "full", - "read", - "unspecified" - ], - "type": "string" - }, - "sshuser.AuthType": { - "description": "Method of authentication that a given SFTPUser or SSHuser supports.", - "enum": [ - "password", - "publicKey" - ], - "type": "string" - }, - "sshuser.Authentication": { - "description": "Method of authentication for an SFTPUser or SSHUser. Can be password or public-keys.", - "oneOf": [ - { - "properties": { - "password": { - "type": "string" - } - }, - "required": [ - "password" - ], - "type": "object" + "order.Profile": { + "properties": { + "email": { + "format": "email", + "type": "string" }, - { - "properties": { - "publicKeys": { - "items": { - "$ref": "#/components/schemas/sshuser.PublicKey" - }, - "type": "array" - } - }, - "required": [ - "publicKeys" + "first_name": { + "example": "Ada", + "type": "string" + }, + "last_name": { + "example": "Lovelace", + "type": "string" + }, + "title": { + "description": "the users title", + "enum": [ + "other", + "mr", + "ms" ], - "type": "object" + "type": "string" + }, + "userId": { + "format": "uuid", + "type": "string" } - ] + }, + "required": [ + "userId", + "email" + ], + "type": "object" }, - "sshuser.PublicKey": { - "description": "A representation of an ssh-public-key.", + "order.ProjectHostingOrderPreview": { "properties": { - "comment": { + "customerId": { "type": "string" }, - "key": { + "description": { + "example": "My first project", "type": "string" + }, + "diskspaceInGiB": { + "example": 10, + "type": "number" + }, + "spec": { + "oneOf": [ + { + "$ref": "#/components/schemas/order.MachineTypeSpec" + }, + { + "$ref": "#/components/schemas/order.HardwareSpec" + } + ] } }, "required": [ - "comment", - "key" + "diskspaceInGiB", + "spec" ], "type": "object" }, - "sshuser.SftpUser": { - "description": "A representation of an SFTPUser.", + "order.ProjectHostingOrder": { "properties": { - "accessLevel": { - "$ref": "#/components/schemas/sshuser.AccessLevel" - }, - "active": { - "type": "boolean" - }, - "authUpdatedAt": { - "format": "date-time", - "type": "string" - }, - "createdAt": { - "format": "date-time", + "customerId": { "type": "string" }, "description": { + "example": "My first project", "type": "string" }, - "directories": { - "items": { - "type": "string" - }, - "type": "array" + "diskspaceInGiB": { + "example": 10, + "type": "number" }, - "expiresAt": { - "format": "date-time", + "promotionCode": { + "example": "123456", "type": "string" }, - "hasPassword": { - "type": "boolean" + "spec": { + "oneOf": [ + { + "$ref": "#/components/schemas/order.MachineTypeSpec" + }, + { + "$ref": "#/components/schemas/order.HardwareSpec" + } + ] }, - "id": { + "useFreeTrial": { + "type": "boolean" + } + }, + "required": [ + "customerId", + "diskspaceInGiB", + "description", + "spec" + ], + "type": "object" + }, + "order.ProjectHostingTariffChange": { + "properties": { + "contractId": { "type": "string" }, - "projectId": { - "type": "string" + "diskspaceInGiB": { + "example": 10, + "type": "number" }, - "publicKeys": { - "items": { - "$ref": "#/components/schemas/sshuser.PublicKey" - }, - "type": "array" + "spec": { + "oneOf": [ + { + "$ref": "#/components/schemas/order.MachineTypeSpec" + }, + { + "$ref": "#/components/schemas/order.HardwareSpec" + } + ] + } + }, + "required": [ + "contractId", + "diskspaceInGiB", + "spec" + ], + "type": "object" + }, + "order.ServerOrderPreview": { + "properties": { + "customerId": { + "example": "f3435305-fd26-470e-9f21-43d9be7e67e7", + "type": "string" }, - "updatedAt": { - "format": "date-time", + "description": { + "example": "My first project", "type": "string" }, - "userName": { + "diskspaceInGiB": { + "example": 100, + "type": "number" + }, + "machineType": { + "example": "shared.xlarge", "type": "string" } }, "required": [ - "id", - "projectId", - "description", - "userName", - "createdAt", - "authUpdatedAt", - "accessLevel", - "hasPassword" + "machineType", + "diskspaceInGiB" ], "type": "object" }, - "sshuser.SshUser": { - "description": "A representation of an SSHUser.", + "order.ServerOrder": { "properties": { - "active": { - "type": "boolean" - }, - "authUpdatedAt": { - "format": "date-time", - "type": "string" - }, - "createdAt": { - "format": "date-time", + "customerId": { + "example": "f3435305-fd26-470e-9f21-43d9be7e67e7", + "minLength": 1, "type": "string" }, "description": { + "example": "My first project", "type": "string" }, - "expiresAt": { - "format": "date-time", - "type": "string" - }, - "hasPassword": { - "type": "boolean" + "diskspaceInGiB": { + "example": 100, + "type": "number" }, - "id": { + "machineType": { + "example": "shared.xlarge", "type": "string" }, - "projectId": { + "useFreeTrial": { + "type": "boolean" + } + }, + "required": [ + "customerId", + "machineType", + "diskspaceInGiB", + "description" + ], + "type": "object" + }, + "order.ServerTariffChange": { + "properties": { + "contractId": { + "format": "uuid", "type": "string" }, - "publicKeys": { - "items": { - "$ref": "#/components/schemas/sshuser.PublicKey" - }, - "type": "array" - }, - "updatedAt": { - "format": "date-time", - "type": "string" + "diskspaceInGiB": { + "example": 100, + "type": "number" }, - "userName": { + "machineType": { + "example": "shared.xlarge", "type": "string" } }, "required": [ - "id", - "projectId", - "description", - "userName", - "createdAt", - "authUpdatedAt", - "hasPassword" + "contractId", + "machineType", + "diskspaceInGiB" ], "type": "object" }, - "signup.Account": { + "policy.Policy": { + "type": "string" + }, + "project.AvatarRules": { "properties": { - "email": { - "example": "a.lovelace@example.com", - "format": "email", - "type": "string" + "maxSizeInKB": { + "example": 3000, + "type": "integer" }, - "mfaDetails": { - "description": "The users mfa details.", + "mimeTypes": { + "example": [ + "image/jpeg", + "image/png" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "properties": { "properties": { - "mfaConfirmed": { - "type": "boolean" - }, - "mfaInitialized": { - "type": "boolean" + "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" - }, - "passwordUpdatedAt": { - "format": "date-time", - "type": "string" - }, - "person": { - "$ref": "#/components/schemas/commons.Person" - }, - "userId": { - "type": "string" } }, + "required": [ + "mimeTypes", + "maxSizeInKB" + ], "type": "object" }, - "signup.ApiToken": { + "project.DeprecatedProjectReadinessStatus": { + "deprecated": true, + "description": "deprecated", + "enum": [ + "creating", + "ready", + "unready" + ], + "type": "string" + }, + "project.DeprecatedServerReadinessStatus": { + "deprecated": true, + "description": "deprecated", + "enum": [ + "creating", + "ready", + "unready" + ], + "type": "string" + }, + "project.FilesystemDirectoryListing": { "properties": { - "apiTokenId": { - "format": "uuid", + "absolutePath": { "type": "string" }, - "createdAt": { - "format": "date-time", - "type": "string" + "isDirectory": { + "type": "boolean" }, - "description": { - "example": "Api Token - read", - "type": "string" + "isExecutable": { + "type": "boolean" }, - "expiresAt": { - "format": "date-time", - "type": "string" + "isFile": { + "type": "boolean" }, - "roles": { + "isSymlink": { + "type": "boolean" + }, + "items": { "items": { - "enum": [ - "api_read", - "api_write" - ], - "type": "string" + "$ref": "#/components/schemas/project.FilesystemDirectoryListing" }, "type": "array" - } - }, - "required": [ - "apiTokenId", - "roles", - "description", - "createdAt" - ], - "type": "object" - }, - "signup.DeviceInfo": { - "properties": { - "browser": { - "example": "Safari", - "type": "string" - }, - "model": { - "example": "Apple Macintosh", - "type": "string" - }, - "os": { - "example": "Mac OS", - "type": "string" }, - "type": { - "example": "Macbook", + "name": { "type": "string" - } - }, - "type": "object" - }, - "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" + "size": { + "type": "integer" }, - "name": { - "description": "Unique key for the error type", + "target": { "type": "string" } }, "required": [ + "absolutePath", "name", - "message" + "size" ], "type": "object" }, - "signup.Location": { + "project.FilesystemUsagesDisk": { "properties": { - "city": { - "example": "Espelkamp", + "path": { "type": "string" }, - "country": { - "example": "DE", - "type": "string" + "totalBytes": { + "type": "integer" }, - "ipAddress": { - "format": "ipv4", - "type": "string" + "usedBytes": { + "type": "integer" } }, "type": "object" }, - "signup.Profile": { + "project.FsApiJwt": { "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/commons.Person" - }, - "userId": { + "jwt": { + "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFkYSBMb3ZlbGFjZSIsImlhdCI6MTUxNjIzOTAyMn0.sMjBP_p34T5mbJTVdEWQ8i2hQPVxsmlt8L6-rKpCczo", "type": "string" } }, + "required": [ + "jwt" + ], "type": "object" }, - "user.UserFeedback": { + "project.HardwareSpec": { "properties": { - "id": { - "format": "uuid", - "type": "string" - }, - "message": { - "maxLength": 1000, + "cpu": { + "example": "2", "type": "string" }, - "origin": { - "maxLength": 1000, + "mem": { + "example": "4Gi", "type": "string" }, - "subject": { - "maxLength": 100, - "minLength": 1, + "storage": { + "example": "50Gi", "type": "string" - }, - "vote": { - "maximum": 10, - "minimum": 0, - "type": "number" } }, "required": [ - "id", - "subject", - "vote", - "origin", - "message" + "storage" ], "type": "object" }, - "user.User": { + "project.MachineType": { "properties": { - "avatarRef": { - "format": "uuid", - "type": "string" - }, - "email": { - "format": "email", - "type": "string" - }, - "employeeInformation": { - "description": "additional information about mittwald employees", - "properties": { - "department": { - "example": "Kundenservice", - "type": "string" - } - }, - "required": [ - "department" - ], - "type": "object" - }, - "person": { - "$ref": "#/components/schemas/commons.Person" - }, - "phoneNumber": { - "example": "+491701234567", + "cpu": { + "example": "2", "type": "string" }, - "registeredAt": { - "format": "date-time", + "memory": { + "example": "4Gi", "type": "string" }, - "userId": { - "format": "uuid", + "name": { + "example": "shared.large", "type": "string" } }, "required": [ - "userId", - "person" + "name", + "cpu", + "memory" + ], + "type": "object" + }, + "project.DisableReason": { + "enum": [ + "maliciousCode", + "illegalContent", + "maliciousConduct", + "suspended" + ], + "type": "string" + }, + "project.ProjectStatus": { + "enum": [ + "pending", + "ready", + "preparingForVolumeMigration", + "migratingVolume", + "error", + "disabled" ], - "type": "object" + "type": "string" }, - "signup.SshKey": { + "project.Project": { "properties": { - "algorithm": { - "example": "ssh-rsa", + "clusterDomain": { + "example": "project.host", + "format": "hostname", "type": "string" }, - "comment": { - "example": "a.lovelace@example.com", + "clusterID": { + "example": "espelkamp", "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", + "customerId": { + "example": "f282f1a8-2b15-4b08-9850-6788e3b20136", "type": "string" }, - "key": { + "description": { + "example": "My first Project!", "type": "string" }, - "sshKeyId": { - "format": "uuid", - "type": "string" - } - }, - "required": [ - "sshKeyId", - "algorithm", - "key", - "comment", - "fingerprint", - "createdAt" - ], - "type": "object" - }, - "poll.UserPollSettings": { - "properties": { - "completedAt": { - "format": "date-time", - "type": "string" + "directories": { + "additionalProperties": { + "type": "string" + }, + "example": { + "Home": "/home/p-4e7tz3" + }, + "type": "object" }, - "dontShowUntil": { - "format": "date-time", - "type": "string" + "disableReason": { + "$ref": "#/components/schemas/project.DisableReason" }, - "ignoredAt": { + "disabledAt": { "format": "date-time", "type": "string" }, - "shouldShow": { + "enabled": { "type": "boolean" }, - "status": { - "enum": [ - "completed", - "muted", - "ignored", - "new" - ], + "id": { + "format": "uuid", "type": "string" }, - "userId": { - "type": "string" - } - }, - "required": [ - "userId", - "shouldShow", - "status" - ], - "type": "object" - }, - "signup.UserSession": { - "properties": { - "created": { - "format": "date-time", + "imageRefId": { + "format": "uuid", "type": "string" }, - "device": { - "$ref": "#/components/schemas/signup.DeviceInfo" + "isReady": { + "deprecated": true, + "description": "deprecated", + "type": "boolean" }, - "lastAccess": { - "format": "date-time", + "projectHostingId": { + "format": "uuid", "type": "string" }, - "location": { - "$ref": "#/components/schemas/signup.Location" + "readiness": { + "$ref": "#/components/schemas/project.DeprecatedProjectReadinessStatus" }, - "tokenId": { + "serverId": { "format": "uuid", "type": "string" - } - }, - "required": [ - "device", - "created", - "tokenId" - ], - "type": "object" - }, - "mailmigration.Migration": { - "properties": { - "aborted": { - "type": "boolean" - }, - "addresses": { - "items": { - "$ref": "#/components/schemas/mailmigration.MigrationMailAddress" - }, - "type": "array" - }, - "finalizers": { - "$ref": "#/components/schemas/mailmigration.MigrationFinalizeJob" }, - "finished": { - "type": "boolean" + "serverShortId": { + "type": "string" }, - "id": { - "format": "uuid", + "shortId": { + "example": "s-4e7tz3", "type": "string" }, - "mailboxes": { - "items": { - "$ref": "#/components/schemas/mailmigration.MigrationMailbox" - }, - "type": "array" + "spec": { + "oneOf": [ + { + "$ref": "#/components/schemas/project.VisitorSpec" + }, + { + "$ref": "#/components/schemas/project.HardwareSpec" + } + ] }, - "sourceCoabProjectId": { + "statisticsBaseDomain": { + "example": "pe-prod.staging.mcloud.services", + "format": "hostname", "type": "string" }, - "targetNexusProjectId": { + "status": { + "$ref": "#/components/schemas/project.ProjectStatus" + }, + "statusSetAt": { + "format": "date-time", "type": "string" } }, "required": [ "id", - "targetNexusProjectId", - "sourceCoabProjectId", - "addresses", - "mailboxes", - "finalizers", - "finished", - "aborted" + "shortId", + "description", + "enabled", + "customerId", + "directories", + "createdAt", + "isReady", + "readiness", + "status", + "statusSetAt" ], "type": "object" }, - "mailmigration.MigrationMailAddressPreMigrationJobAliasSet": { - "properties": { - "finished": { - "type": "boolean" - }, - "sourceCoabMailboxName": { - "type": "string" - } - }, - "required": [ - "sourceCoabMailboxName", - "finished" + "project.ServerDisableReason": { + "enum": [ + "suspended" ], - "type": "object" - }, - "mailmigration.MigrationFinalizeJob": { - "properties": { - "projectSettingMigrations": { - "$ref": "#/components/schemas/mailmigration.MigrationFinalizeJobProjectSetting" - } - }, - "type": "object" + "type": "string" }, - "mailmigration.MigrationFinalizeJobProjectSetting": { - "properties": { - "blacklistEntries": { - "items": { - "type": "string" - }, - "type": "array" - }, - "whitelistEntries": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "blacklistEntries", - "whitelistEntries" + "project.ServerStatus": { + "enum": [ + "pending", + "ready", + "unready" ], - "type": "object" + "type": "string" }, - "mailmigration.MigrateMailAddressCommandRequirements": { + "project.Server": { "properties": { - "address": { + "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/project.ServerDisableReason" + }, + "id": { + "format": "uuid", "type": "string" }, - "autoResponder": { - "$ref": "#/components/schemas/mailmigration.AutoResponder" + "imageRefId": { + "format": "uuid", + "type": "string" + }, + "isReady": { + "deprecated": true, + "description": "deprecated", + "type": "boolean" + }, + "machineType": { + "$ref": "#/components/schemas/project.MachineType" }, - "forwardAddresses": { - "items": { - "type": "string" - }, - "type": "array" + "readiness": { + "$ref": "#/components/schemas/project.DeprecatedServerReadinessStatus" }, - "isCatchAll": { - "type": "boolean" + "shortId": { + "example": "s-4e7tz3", + "type": "string" }, - "mailbox": { - "$ref": "#/components/schemas/mailmigration.Mailbox" + "statisticsBaseDomain": { + "example": "pe-prod.staging.mcloud.services", + "format": "hostname", + "type": "string" }, - "projectId": { + "status": { + "$ref": "#/components/schemas/project.ServerStatus" + }, + "storage": { + "example": "50Gi", "type": "string" } }, "required": [ - "projectId" + "id", + "shortId", + "customerId", + "machineType", + "storage", + "description", + "isReady", + "readiness", + "createdAt", + "clusterName", + "status" ], "type": "object" }, - "mailmigration.MigrationMailbox": { + "project.VisitorSpec": { "properties": { - "finished": { - "type": "boolean" - }, - "id": { - "format": "uuid", + "storage": { "type": "string" }, - "migrationJobs": { - "$ref": "#/components/schemas/mailmigration.MigrationMailboxJob" - }, - "name": { - "type": "string" + "visitors": { + "type": "number" } }, "required": [ - "id", - "name", - "migrationJobs", - "finished" + "visitors", + "storage" ], "type": "object" }, - "mailmigration.CheckMigrationIsPossibleErrorAlreadyExistingMailAddress": { + "directus.Domain": { "properties": { - "address": { + "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": [ - "address" + "name" ], "type": "object" }, - "mailmigration.AutoResponder": { + "screenshot.Target": { "properties": { - "active": { - "type": "boolean" - }, - "expiresAt": { - "format": "date-time" + "domain": { + "example": "example.com", + "type": "string" }, - "message": { + "path": { "type": "string" }, - "startsAt": { - "format": "date-time" + "scheme": { + "enum": [ + "http", + "https" + ], + "example": "https", + "type": "string" } }, "required": [ - "active", - "message" + "scheme", + "domain" ], "type": "object" }, - "mailmigration.MigrationMailAddress": { + "screenshot.Task": { "properties": { - "address": { + "executedAt": { + "format": "date-time", "type": "string" }, - "finished": { - "type": "boolean" + "fileReference": { + "type": "string" }, "id": { "format": "uuid", "type": "string" }, - "migrationJobs": { - "$ref": "#/components/schemas/mailmigration.MigrationMailAddressMigrationJob" + "priority": { + "type": "number" }, - "preMigrationJobs": { - "$ref": "#/components/schemas/mailmigration.MigrationMailAddressPreMigrationJob" + "settings": { + "$ref": "#/components/schemas/screenshot.ScreenshotSettings" + }, + "target": { + "$ref": "#/components/schemas/screenshot.Target" + }, + "taskState": { + "oneOf": [ + { + "$ref": "#/components/schemas/screenshot.LifecycleState" + }, + { + "$ref": "#/components/schemas/commons.Error" + } + ] } }, "required": [ "id", - "address", - "preMigrationJobs", - "migrationJobs", - "finished" + "settings", + "target", + "priority" ], "type": "object" }, - "mailmigration.CheckMigrationIsPossibleErrorCatchAllTargetWithoutAlias": { + "screenshot.LifecycleState": { + "type": "string" + }, + "screenshot.ScreenshotSettings": { "properties": { - "address": { + "dataType": { + "enum": [ + "jpeg", + "png", + "webp" + ], "type": "string" }, - "mailboxName": { - "type": "string" + "delay": { + "type": "number" + }, + "height": { + "type": "number" + }, + "quality": { + "type": "number" + }, + "width": { + "type": "number" } }, "required": [ - "address", - "mailboxName" + "width", + "height", + "quality", + "delay", + "dataType" ], "type": "object" }, - "mailmigration.MigrationMailAddressMigrationJob": { - "properties": { - "migrate": { - "$ref": "#/components/schemas/mailmigration.MigrationMailAddressMigrationJobMigrate" - } - }, - "required": [ - "migrate" + "sshuser.EntityTypes": { + "enum": [ + "ssh", + "sftp" ], - "type": "object" + "type": "string" }, - "mailmigration.PossibleCheckErrors": { - "properties": { - "alreadyExistingMailAddress": { - "items": { - "$ref": "#/components/schemas/mailmigration.CheckMigrationIsPossibleErrorAlreadyExistingMailAddress" - }, - "type": "array" - }, - "ambiguousMailAddressDelivery": { - "items": { - "$ref": "#/components/schemas/mailmigration.CheckMigrationIsPossibleErrorAmbiguousMailAddressDelivery" - }, - "type": "array" - }, - "ambiguousMailboxDelivery": { - "items": { - "$ref": "#/components/schemas/mailmigration.CheckMigrationIsPossibleErrorAmbiguousMailboxDelivery" - }, - "type": "array" - }, - "catchAllMissingAddress": { - "items": { - "$ref": "#/components/schemas/mailmigration.CheckMigrationIsPossibleErrorCatchAllMissingAddress" + "sshuser.AccessLevel": { + "description": "The level of access for an SFTPUser.", + "enum": [ + "full", + "read", + "unspecified" + ], + "type": "string" + }, + "sshuser.AuthType": { + "description": "Method of authentication that a given SFTPUser or SSHuser supports.", + "enum": [ + "password", + "publicKey" + ], + "type": "string" + }, + "sshuser.Authentication": { + "description": "Method of authentication for an SFTPUser or SSHUser. Can be password or public-keys.", + "oneOf": [ + { + "properties": { + "password": { + "type": "string" + } }, - "type": "array" + "required": [ + "password" + ], + "type": "object" }, - "catchAllTargetWithoutAlias": { - "items": { - "$ref": "#/components/schemas/mailmigration.CheckMigrationIsPossibleErrorCatchAllTargetWithoutAlias" + { + "properties": { + "publicKeys": { + "items": { + "$ref": "#/components/schemas/sshuser.PublicKey" + }, + "type": "array" + } }, - "type": "array" + "required": [ + "publicKeys" + ], + "type": "object" + } + ] + }, + "sshuser.PublicKey": { + "description": "A representation of an ssh-public-key.", + "properties": { + "comment": { + "type": "string" }, - "missingVerifiedIngress": { - "items": { - "$ref": "#/components/schemas/mailmigration.CheckMigrationIsPossibleErrorMissingVerifiedIngress" - }, - "type": "array" + "key": { + "type": "string" } }, "required": [ - "ambiguousMailAddressDelivery", - "ambiguousMailboxDelivery", - "catchAllMissingAddress", - "catchAllTargetWithoutAlias", - "missingVerifiedIngress", - "alreadyExistingMailAddress" + "comment", + "key" ], "type": "object" }, - "mailmigration.CheckMigrationIsPossibleErrorAmbiguousMailboxDelivery": { + "sshuser.SftpUser": { + "description": "A representation of an SFTPUser.", "properties": { - "address": { + "accessLevel": { + "$ref": "#/components/schemas/sshuser.AccessLevel" + }, + "active": { + "type": "boolean" + }, + "authUpdatedAt": { + "format": "date-time", "type": "string" }, - "mailboxes": { + "createdAt": { + "format": "date-time", + "type": "string" + }, + "description": { + "type": "string" + }, + "directories": { "items": { "type": "string" }, "type": "array" - } - }, - "required": [ - "address", - "mailboxes" - ], - "type": "object" - }, - "mailmigration.CheckMigrationIsPossibleErrorMissingVerifiedIngress": { - "properties": { - "hostname": { - "format": "idn-hostname", + }, + "expiresAt": { + "format": "date-time", "type": "string" - } - }, - "required": [ - "hostname" - ], - "type": "object" - }, - "mailmigration.MigrationMailAddressPreMigrationJobDeliveryMigration": { - "properties": { - "finished": { + }, + "hasPassword": { "type": "boolean" }, - "sourceCoabDeliveryMailbox": { + "id": { "type": "string" }, - "sourceCoabDeliveryUid": { - "type": "integer" + "projectId": { + "type": "string" }, - "targetDeliveryAddress": { + "publicKeys": { + "items": { + "$ref": "#/components/schemas/sshuser.PublicKey" + }, + "type": "array" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "userName": { "type": "string" } }, "required": [ - "sourceCoabDeliveryUid", - "sourceCoabDeliveryMailbox", - "targetDeliveryAddress", - "finished" + "id", + "projectId", + "description", + "userName", + "createdAt", + "authUpdatedAt", + "accessLevel", + "hasPassword" ], "type": "object" }, - "mailmigration.MigrationMailAddressMigrationJobMigrate": { + "sshuser.SshUser": { + "description": "A representation of an SSHUser.", "properties": { - "finished": { + "active": { "type": "boolean" }, - "requirements": { - "$ref": "#/components/schemas/mailmigration.MigrateMailAddressCommandRequirements" - } - }, - "required": [ - "requirements", - "finished" - ], - "type": "object" - }, - "mailmigration.MigrateMailboxCommandRequirements": { - "properties": { - "mailbox": { - "$ref": "#/components/schemas/mailmigration.Mailbox" + "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/sshuser.PublicKey" + }, + "type": "array" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "userName": { + "type": "string" } }, "required": [ - "projectId" + "id", + "projectId", + "description", + "userName", + "createdAt", + "authUpdatedAt", + "hasPassword" ], "type": "object" }, - "mailmigration.CheckMigrationIsPossibleErrorAmbiguousMailAddressDelivery": { + "signup.Account": { "properties": { - "addresses": { - "items": { - "type": "string" + "email": { + "example": "a.lovelace@example.com", + "format": "email", + "type": "string" + }, + "mfaDetails": { + "description": "The users mfa details.", + "properties": { + "mfaConfirmed": { + "type": "boolean" + }, + "mfaInitialized": { + "type": "boolean" + } }, - "type": "array" + "type": "object" }, - "mailboxName": { + "passwordUpdatedAt": { + "format": "date-time", + "type": "string" + }, + "person": { + "$ref": "#/components/schemas/commons.Person" + }, + "userId": { "type": "string" } }, - "required": [ - "mailboxName", - "addresses" - ], "type": "object" }, - "mailmigration.MigrationMailboxJob": { + "signup.ApiToken": { "properties": { - "migrate": { - "$ref": "#/components/schemas/mailmigration.MigrationMailboxJobMigrate" + "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": [ - "migrate" + "apiTokenId", + "roles", + "description", + "createdAt" ], "type": "object" }, - "mailmigration.SpamProtection": { + "signup.DeviceInfo": { "properties": { - "active": { - "type": "boolean" + "browser": { + "example": "Safari", + "type": "string" }, - "deleteSensitivity": { - "type": "integer" + "model": { + "example": "Apple Macintosh", + "type": "string" }, - "folder": { - "default": 0, - "description": "SPAM_FOLDER_INBOX_UNSPECIFIED = 0 SPAM_FOLDER_SPAM = 1", - "enum": [ - 0, - 1 - ], - "type": "integer" + "os": { + "example": "Mac OS", + "type": "string" + }, + "type": { + "example": "Macbook", + "type": "string" + } + }, + "type": "object" + }, + "signup.DomainError": { + "properties": { + "info": { + "description": "A json object, given further information about the error", + "type": "object" }, - "keepDays": { - "type": "integer" + "message": { + "description": "Some more detailed information about the error", + "type": "string" }, - "relocateSensitivity": { - "type": "integer" + "name": { + "description": "Unique key for the error type", + "type": "string" } }, "required": [ - "active", - "folder", - "keepDays", - "relocateSensitivity", - "deleteSensitivity" + "name", + "message" ], "type": "object" }, - "mailmigration.CheckMigrationIsPossibleErrorResponse": { + "signup.Location": { "properties": { - "errors": { - "$ref": "#/components/schemas/mailmigration.PossibleCheckErrors" + "city": { + "example": "Espelkamp", + "type": "string" + }, + "country": { + "example": "DE", + "type": "string" + }, + "ipAddress": { + "format": "ipv4", + "type": "string" } }, "type": "object" }, - "mailmigration.CheckMigrationIsPossibleErrorCatchAllMissingAddress": { + "signup.Profile": { "properties": { - "address": { + "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/commons.Person" + }, + "userId": { "type": "string" } }, - "required": [ - "address" - ], "type": "object" }, - "mailmigration.MigrationMailAddressPreMigrationJob": { + "user.UserFeedback": { "properties": { - "aliasSet": { - "items": { - "$ref": "#/components/schemas/mailmigration.MigrationMailAddressPreMigrationJobAliasSet" - }, - "type": "array" + "id": { + "format": "uuid", + "type": "string" }, - "deliveryMigrations": { - "items": { - "$ref": "#/components/schemas/mailmigration.MigrationMailAddressPreMigrationJobDeliveryMigration" - }, - "type": "array" + "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": [ - "deliveryMigrations", - "aliasSet" + "id", + "subject", + "vote", + "origin", + "message" ], "type": "object" }, - "mailmigration.MigrationMailboxJobMigrate": { + "user.User": { "properties": { - "requirements": { - "$ref": "#/components/schemas/mailmigration.MigrateMailboxCommandRequirements" + "avatarRef": { + "format": "uuid", + "type": "string" + }, + "email": { + "format": "email", + "type": "string" + }, + "employeeInformation": { + "description": "additional information about mittwald employees", + "properties": { + "department": { + "example": "Kundenservice", + "type": "string" + } + }, + "required": [ + "department" + ], + "type": "object" + }, + "person": { + "$ref": "#/components/schemas/commons.Person" + }, + "phoneNumber": { + "example": "+491701234567", + "type": "string" + }, + "registeredAt": { + "format": "date-time", + "type": "string" + }, + "userId": { + "format": "uuid", + "type": "string" } }, "required": [ - "requirements" + "userId", + "person" ], "type": "object" }, - "mailmigration.Mailbox": { + "signup.SshKey": { "properties": { - "mailsystem": { - "$ref": "#/components/schemas/mailmigration.MailSystemSettings" + "algorithm": { + "example": "ssh-rsa", + "type": "string" }, - "name": { + "comment": { + "example": "a.lovelace@example.com", "type": "string" }, - "passwordHash": { + "createdAt": { + "format": "date-time", "type": "string" }, - "quotaInBytes": { - "type": "integer" + "expiresAt": { + "format": "date-time", + "type": "string" }, - "spamProtection": { - "$ref": "#/components/schemas/mailmigration.SpamProtection" + "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": [ - "name", - "passwordHash", - "quotaInBytes", - "mailsystem" + "sshKeyId", + "algorithm", + "key", + "comment", + "fingerprint", + "createdAt" ], "type": "object" }, - "mailmigration.MailSystemSettings": { + "poll.UserPollSettings": { "properties": { - "imapClusterId": { + "completedAt": { + "format": "date-time", "type": "string" }, - "mailDirectory": { + "dontShowUntil": { + "format": "date-time", "type": "string" }, - "rateLimitId": { + "ignoredAt": { + "format": "date-time", + "type": "string" + }, + "shouldShow": { + "type": "boolean" + }, + "status": { + "enum": [ + "completed", + "muted", + "ignored", + "new" + ], + "type": "string" + }, + "userId": { "type": "string" } }, "required": [ - "imapClusterId", - "mailDirectory", - "rateLimitId" + "userId", + "shouldShow", + "status" ], "type": "object" }, - "ingress.TargetContainer": { + "signup.UserSession": { "properties": { - "container": { - "properties": { - "name": { - "type": "string" - }, - "portProtocol": { - "description": "docker-compose port specification in format port/protocol (e.g. 8080/TCP)", - "format": "docker-network-port", - "type": "string" - } - }, - "required": [ - "name", - "portProtocol" - ], - "type": "object" + "created": { + "format": "date-time", + "type": "string" + }, + "device": { + "$ref": "#/components/schemas/signup.DeviceInfo" + }, + "lastAccess": { + "format": "date-time", + "type": "string" + }, + "location": { + "$ref": "#/components/schemas/signup.Location" + }, + "tokenId": { + "format": "uuid", + "type": "string" } }, "required": [ - "container" + "device", + "created", + "tokenId" ], "type": "object" },