diff --git a/packages/mittwald/spec/openapi.json b/packages/mittwald/spec/openapi.json index a0875463..85f54019 100644 --- a/packages/mittwald/spec/openapi.json +++ b/packages/mittwald/spec/openapi.json @@ -887,6 +887,9 @@ "externalVersion": { "type": "string" }, + "fee": { + "$ref": "#/components/schemas/fee.FeeStrategy" + }, "id": { "format": "uuid", "type": "string" @@ -2049,11 +2052,16 @@ "enum": [ "development", "mail", + "infra", + "marketing", + "network", + "dataCenter", "accounting", "customerService", "cloudHosting", "software", - "generic" + "generic", + "security" ], "type": "string" }, @@ -3019,6 +3027,16 @@ ], "type": "object" }, + "database.DatabaseStatus": { + "enum": [ + "pending", + "ready", + "migrating", + "importing", + "error" + ], + "type": "string" + }, "database.MySqlCharacterSettings": { "properties": { "collations": { @@ -3979,12 +3997,16 @@ }, "tld": { "type": "string" + }, + "transferAuthCodeRequired": { + "type": "boolean" } }, "required": [ "tld", "rgpDays", - "irtp" + "irtp", + "transferAuthCodeRequired" ], "type": "object" }, @@ -4209,6 +4231,79 @@ }, "type": "object" }, + "fee.FeeStrategy": { + "description": "A strategy for fees of resources.", + "oneOf": [ + { + "$ref": "#/components/schemas/fee.OneTimePaymentFeeStrategy" + }, + { + "$ref": "#/components/schemas/fee.PeriodBasedFeeStrategy" + } + ] + }, + "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" + }, + "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" + }, + "fee.ResourceFee": { + "description": "A Fee of a Resource", + "properties": { + "feeStrategy": { + "$ref": "#/components/schemas/fee.FeeStrategy" + }, + "id": { + "description": "The id of the given Resource", + "example": "1241a1de-b633-4e6e-9aa5-7e878ccd6864", + "type": "string" + } + }, + "required": [ + "id" + ], + "type": "object" + }, "file.FileMeta": { "properties": { "friendlyURL": { @@ -4441,6 +4536,93 @@ ], "type": "object" }, + "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/ingress.Ownership" + }, + "paths": { + "description": "A list of paths. The default path `/` is always present and cannot be removed.", + "items": { + "$ref": "#/components/schemas/ingress.Path" + }, + "type": "array" + }, + "projectId": { + "format": "uuid", + "type": "string" + }, + "tls": { + "oneOf": [ + { + "$ref": "#/components/schemas/ingress.TlsAcmeDeprecated" + }, + { + "$ref": "#/components/schemas/ingress.TlsCertificate" + } + ] + } + }, + "required": [ + "id", + "hostname", + "projectId", + "isDefault", + "tls", + "paths", + "isEnabled", + "ips", + "dnsValidationErrors", + "ownership" + ], + "type": "object" + }, "ingress.Ownership": { "properties": { "txtRecord": { @@ -4560,22 +4742,40 @@ "type": "object" }, "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" + }, + "ingress.TlsAcmeDeprecated": { + "additionalProperties": false, + "properties": { + "acme": { + "type": "boolean" + } + }, "required": [ "acme" ], "type": "object" }, "ingress.TlsCertificate": { + "additionalProperties": false, "properties": { "certificateId": { "format": "uuid", @@ -5208,52 +5408,6 @@ ], "type": "object" }, - "mail.DeliveryboxInternal": { - "properties": { - "authenticationEnabled": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "id": { - "format": "uuid", - "type": "string" - }, - "mailsystemSettings": { - "$ref": "#/components/schemas/mail.MailsystemSettings" - }, - "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", - "mailsystemSettings" - ], - "type": "object" - }, "mail.Error": { "properties": { "message": { @@ -5436,157 +5590,6 @@ ], "type": "object" }, - "mail.MailAddressInternal": { - "properties": { - "address": { - "format": "idn-email", - "type": "string" - }, - "autoResponder": { - "properties": { - "active": { - "type": "boolean" - }, - "expiresAt": { - "format": "date-time", - "type": "string" - }, - "message": { - "type": "string" - }, - "startsAt": { - "format": "date-time", - "type": "string" - } - }, - "required": [ - "active" - ], - "type": "object" - }, - "forwardAddresses": { - "items": { - "format": "idn-email", - "type": "string" - }, - "type": "array" - }, - "id": { - "format": "uuid", - "type": "string" - }, - "isArchived": { - "type": "boolean" - }, - "isCatchAll": { - "type": "boolean" - }, - "mailbox": { - "properties": { - "mailsystemSettings": { - "$ref": "#/components/schemas/mail.MailsystemSettings" - }, - "name": { - "type": "string" - }, - "passwordUpdatedAt": { - "format": "date-time", - "type": "string" - }, - "sendingEnabled": { - "type": "boolean" - }, - "spamProtection": { - "properties": { - "active": { - "type": "boolean" - }, - "autoDeleteSpam": { - "type": "boolean" - }, - "folder": { - "enum": [ - "spam", - "inbox" - ], - "type": "string" - }, - "relocationMinSpamScore": { - "maximum": 10, - "type": "integer" - } - }, - "required": [ - "active", - "folder", - "relocationMinSpamScore", - "autoDeleteSpam" - ], - "type": "object" - }, - "storageInBytes": { - "properties": { - "current": { - "properties": { - "updatedAt": { - "format": "date-time", - "type": "string" - }, - "value": { - "type": "number" - } - }, - "required": [ - "value", - "updatedAt" - ], - "type": "object" - }, - "limit": { - "type": "number" - } - }, - "required": [ - "limit", - "current" - ], - "type": "object" - } - }, - "required": [ - "name", - "sendingEnabled", - "spamProtection", - "storageInBytes", - "passwordUpdatedAt", - "mailsystemSettings" - ], - "type": "object" - }, - "projectId": { - "type": "string" - }, - "receivingDisabled": { - "type": "boolean" - }, - "updatedAt": { - "format": "date-time", - "type": "string" - } - }, - "required": [ - "id", - "receivingDisabled", - "address", - "isCatchAll", - "projectId", - "forwardAddresses", - "updatedAt", - "autoResponder", - "isArchived" - ], - "type": "object" - }, "mail.MailsystemSettings": { "properties": { "imapClusterId": { @@ -5725,6 +5728,27 @@ }, "type": "object" }, + "mailmigration.MigrationFinalizeJobDisableLegacyEntities": { + "properties": { + "addresses": { + "items": { + "type": "string" + }, + "type": "array" + }, + "mailboxNames": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "mailboxNames", + "addresses" + ], + "type": "object" + }, "mailmigration.MigrationFinalizeJobProjectSetting": { "properties": { "blacklistEntries": { @@ -6593,7 +6617,6 @@ "required": [ "orderId", "orderNumber", - "orderDate", "summary", "customerId", "invoicingPeriod", @@ -8139,50 +8162,6 @@ ], "type": "object" }, - "mailmigration.MigrationFinalizeJobDisableLegacyEntities": { - "properties": { - "addresses": { - "items": { - "type": "string" - }, - "type": "array" - }, - "mailboxNames": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "mailboxNames", - "addresses" - ], - "type": "object" - }, - "database.DatabaseStatus": { - "enum": [ - "pending", - "ready", - "migrating", - "importing", - "error" - ], - "type": "string" - }, - "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" - }, "commons.Address": { "type": "object", "properties": { @@ -19873,8 +19852,7 @@ } }, "required": [ - "domain", - "authCode" + "domain" ] } } @@ -19978,6 +19956,9 @@ "404": { "$ref": "#/components/responses/commons.NotFoundError" }, + "412": { + "$ref": "#/components/responses/commons.DefaultError" + }, "default": { "$ref": "#/components/responses/commons.DefaultError" } diff --git a/packages/mittwald/src/generated/v2/descriptors.ts b/packages/mittwald/src/generated/v2/descriptors.ts index 73076821..169b2640 100644 --- a/packages/mittwald/src/generated/v2/descriptors.ts +++ b/packages/mittwald/src/generated/v2/descriptors.ts @@ -4290,6 +4290,11 @@ export const domainCreateDomainAuthCode: OpenAPIOperation< 404, "application/json" > + | Response< + Simplify, + 412, + "application/json" + > | Response< Simplify, "default", diff --git a/packages/mittwald/src/generated/v2/types.ts b/packages/mittwald/src/generated/v2/types.ts index 4eb31101..d0295ddf 100644 --- a/packages/mittwald/src/generated/v2/types.ts +++ b/packages/mittwald/src/generated/v2/types.ts @@ -3302,6 +3302,7 @@ export declare module MittwaldAPIV2 { export interface AppSystemSoftwareVersion { expiryDate?: string; externalVersion: string; + fee?: MittwaldAPIV2.Components.Schemas.FeeFeeStrategy; id: string; internalVersion: string; recommended?: boolean; @@ -3682,11 +3683,16 @@ export declare module MittwaldAPIV2 { export type ConversationDepartment = | "development" | "mail" + | "infra" + | "marketing" + | "network" + | "dataCenter" | "accounting" | "customerService" | "cloudHosting" | "software" - | "generic"; + | "generic" + | "security"; export interface ConversationError { message: string; @@ -3986,6 +3992,13 @@ export declare module MittwaldAPIV2 { password: string; } + export type DatabaseDatabaseStatus = + | "pending" + | "ready" + | "migrating" + | "importing" + | "error"; + export interface DatabaseMySqlCharacterSettings { collations: string[]; name: string; @@ -4293,6 +4306,7 @@ export declare module MittwaldAPIV2 { irtp: boolean; rgpDays: number; tld: string; + transferAuthCodeRequired: boolean; } export interface MarketplaceContributor { @@ -4363,6 +4377,48 @@ export declare module MittwaldAPIV2 { phone?: string; } + /** + * A strategy for fees of resources. + */ + export type FeeFeeStrategy = + | MittwaldAPIV2.Components.Schemas.FeeOneTimePaymentFeeStrategy + | MittwaldAPIV2.Components.Schemas.FeePeriodBasedFeeStrategy; + + /** + * A strategy for fees that occur once. + */ + export interface FeeOneTimePaymentFeeStrategy { + /** + * The one-time price in Euro Cents. + */ + price: number; + } + + /** + * A strategy for fees that occur periodically + */ + export interface FeePeriodBasedFeeStrategy { + periods: { + feeValidFrom?: string; + feeValidUntil?: string; + /** + * The monthly price in Euro Cents. + */ + monthlyPrice: number; + }[]; + } + + /** + * A Fee of a Resource + */ + export interface FeeResourceFee { + feeStrategy?: MittwaldAPIV2.Components.Schemas.FeeFeeStrategy; + /** + * The id of the given Resource + */ + id: string; + } + export interface FileFileMeta { friendlyURL: string; id: string; @@ -4437,6 +4493,38 @@ export declare module MittwaldAPIV2 { | MittwaldAPIV2.Components.Schemas.IngressTlsCertificate; } + export interface IngressIngressDeprecated { + /** + * A list of errors that occurred while validating the ingress's dns before requesting a certificate. + */ + dnsValidationErrors: ( + | "ERROR_UNSPECIFIED" + | "ERROR_QUAD_A" + | "ERROR_NO_A_RECORD" + | "ERROR_ACME_CERTIFICATE_REQUEST_DEADLINE_EXCEEDED" + )[]; + hostname: string; + id: string; + ips: { + v4: string[]; + }; + /** + * 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. + */ + isDefault: boolean; + isDomain?: boolean; + isEnabled: boolean; + ownership: MittwaldAPIV2.Components.Schemas.IngressOwnership; + /** + * A list of paths. The default path `/` is always present and cannot be removed. + */ + paths: MittwaldAPIV2.Components.Schemas.IngressPath[]; + projectId: string; + tls: + | MittwaldAPIV2.Components.Schemas.IngressTlsAcmeDeprecated + | MittwaldAPIV2.Components.Schemas.IngressTlsCertificate; + } + export interface IngressOwnership { txtRecord?: string; /** @@ -4486,9 +4574,14 @@ export declare module MittwaldAPIV2 { * Has to be `true`, as ssl cannot be deactivated. */ acme: boolean; + isCreated: boolean; requestDeadline?: string; } + export interface IngressTlsAcmeDeprecated { + acme: boolean; + } + export interface IngressTlsCertificate { certificateId: string; } @@ -4663,18 +4756,6 @@ export declare module MittwaldAPIV2 { updatedAt: string; } - export interface MailDeliveryboxInternal { - authenticationEnabled: boolean; - description: string; - id: string; - mailsystemSettings: MittwaldAPIV2.Components.Schemas.MailMailsystemSettings; - name: string; - passwordUpdatedAt: string; - projectId: string; - sendingEnabled: boolean; - updatedAt: string; - } - export interface MailError { message: string; type: string; @@ -4720,42 +4801,6 @@ export declare module MittwaldAPIV2 { updatedAt: string; } - export interface MailMailAddressInternal { - address: string; - autoResponder: { - active: boolean; - expiresAt?: string; - message?: string; - startsAt?: string; - }; - forwardAddresses: string[]; - id: string; - isArchived: boolean; - isCatchAll: boolean; - mailbox?: { - mailsystemSettings: MittwaldAPIV2.Components.Schemas.MailMailsystemSettings; - name: string; - passwordUpdatedAt: string; - sendingEnabled: boolean; - spamProtection: { - active: boolean; - autoDeleteSpam: boolean; - folder: "spam" | "inbox"; - relocationMinSpamScore: number; - }; - storageInBytes: { - current: { - updatedAt: string; - value: number; - }; - limit: number; - }; - }; - projectId: string; - receivingDisabled: boolean; - updatedAt: string; - } - export interface MailMailsystemSettings { imapClusterId: string; mailDirectory: string; @@ -4802,6 +4847,11 @@ export declare module MittwaldAPIV2 { projectSettingMigrations?: MittwaldAPIV2.Components.Schemas.MailmigrationMigrationFinalizeJobProjectSetting; } + export interface MailmigrationMigrationFinalizeJobDisableLegacyEntities { + addresses: string[]; + mailboxNames: string[]; + } + export interface MailmigrationMigrationFinalizeJobProjectSetting { blacklistEntries: string[]; whitelistEntries: string[]; @@ -5143,7 +5193,7 @@ export declare module MittwaldAPIV2 { */ invoicingPeriod: number; items: MittwaldAPIV2.Components.Schemas.OrderOrderItem[]; - orderDate: string; + orderDate?: string; orderId: string; orderNumber: string; profile?: MittwaldAPIV2.Components.Schemas.OrderProfile; @@ -5663,28 +5713,6 @@ export declare module MittwaldAPIV2 { tokenId: string; } - export interface MailmigrationMigrationFinalizeJobDisableLegacyEntities { - addresses: string[]; - mailboxNames: string[]; - } - - export type DatabaseDatabaseStatus = - | "pending" - | "ready" - | "migrating" - | "importing" - | "error"; - - /** - * A strategy for fees that occur once. - */ - export interface FeeOneTimePaymentFeeStrategy { - /** - * The one-time price in Euro Cents. - */ - price: number; - } - export interface CommonsAddress { street: string; houseNumber: string; @@ -12115,7 +12143,7 @@ export declare module MittwaldAPIV2 { export type Path = {}; export interface RequestBody { - authCode: string; + authCode?: string; domain: string; } @@ -12198,6 +12226,14 @@ export declare module MittwaldAPIV2 { } } + namespace $412 { + namespace Content { + export interface ApplicationJson { + [k: string]: unknown; + } + } + } + namespace Default { namespace Content { export interface ApplicationJson {