action dracoon_create_customer { label: "Create customer" description: "### Description:\nCreate a new customer.\n\n### Precondition:\nAuthentication with `X-Sds-Service-Token` required. \n\n### Postcondition:\nA new customer is created.\n\n### Further Information:\nIf no company name is set, first letter of the first name separated by dot followed by last name of the first administrator is used (e.g. `J.Doe`). \nMax quota has to be at least `1 MB` (= `1.048.576 B`).\n\nIf `basic` authentication is enabled, the first administrator will get `basic` authentication by default. \nTo create a first administrator without `basic` authentication it **MUST** be disabled explicitly. \n\nForbidden characters in passwords: [`&`, `'`, `<`, `>`]\n\n### Authentication Method Options:\n
\nExpand\n\n| Authentication Method | Option Key | Option Value |\n| :--- | :--- | :--- |\n| `basic` / `sql` | `username` | Unique user identifier |\n| `active_directory` | `ad_config_id` (optional) | Active Directory configuration ID |\n| | `username` | Active Directory username according to authentication setting `userFilter` |\n| `radius` | `username` | RADIUS username |\n| `openid` | `openid_config_id` (optional) | OpenID Connect configuration ID |\n| | `username` | OpenID Connect username according to authentication setting `mappingClaim` |\n\n
\n" provider: dracoon method: POST path: "/v4/provisioning/customers" encoding: json input: { type: "object" properties: { "X-Sds-Date-Format": { type: "string" enum: ["UTC", "LOCAL", "OFFSET", "EPOCH", "LEET"] } "X-Sds-Service-Token": { type: "string" } activationCode: { type: "string" description: "🚧 Deprecated since v4.8.0\n\nCustomer activation code string:\n\n* valid only for types `free` and `demo`\n\n* for `pay` customers it is empty" } companyName: { type: "string" description: "Company name" } customerAttributes: { type: "object" description: "List of customer attributes" required: ["items"] properties: { items: { type: "array" description: "List of customer attributes" items: { type: "object" description: "Key-value pair" required: ["key", "value"] properties: { key: { type: "string" description: "Entry key" } value: { type: "string" description: "Entry value" } } } } } } customerContractType: { type: "string" description: "Customer type" enum: ["demo", "free", "pay"] } firstAdminUser: { type: "object" description: "First administrator user" required: ["firstName", "lastName"] properties: { authData: { type: "object" description: "User Authentication Data" required: ["method"] properties: { adConfigId: { type: "integer" format: "int32" description: "ID of the user's Active Directory." } login: { type: "string" description: "User login name" } method: { type: "string" description: "Authentication method\n\n\n\nAuthentication methods:\n\n* `basic`\n\n* `active_directory`\n\n* `radius`\n\n* `openid`" } mustChangePassword: { type: "boolean" description: "Determines whether user has to change his / her password\n\n* default: `true` for `basic` auth type\n\n* default: `false` for `active_directory`, `openid` and `radius` auth types" } oidConfigId: { type: "integer" format: "int32" description: "ID of the user's OIDC provider." } password: { type: "string" description: "Password (only relevant for `basic` authentication type)\n\n*NOT* your Active Directory, OpenID or RADIUS password!" } } } authMethods: { type: "array" description: "🚧 Deprecated since v4.13.0\n\nAuthentication methods:\n\n* `sql`\n\n* `active_directory`\n\n* `radius`\n\n* `openid`\n\nuse `authData` instead" items: { type: "object" description: "Authentication method" required: ["authId", "isEnabled"] properties: { authId: { type: "string" description: "Authentication method\n\n\n\nAuthentication methods:\n\n* `basic`\n\n* `active_directory`\n\n* `radius`\n\n* `openid`" } isEnabled: { type: "boolean" description: "Is enabled" } options: { type: "array" description: "Authentication method options" items: { type: "object" additionalProperties: true } } } } } email: { type: "string" description: "Email " } firstName: { type: "string" description: "User first name" } gender: { type: "string" description: "🚧 Deprecated since v4.12.0\n\nGender" } language: { type: "string" description: "🚧 Deprecated since v4.7.0\n\nLanguage ID or ISO 639-1 code" } lastName: { type: "string" description: "User last name" } login: { type: "string" description: "🚧 Deprecated since v4.13.0\n\nUser login name" } needsToChangePassword: { type: "boolean" description: "🚧 Deprecated since v4.13.0\n\nDetermines whether user has to change his / her initial password.\n\nuse `authDate.mustChangePassword` instead" } needsToChangeUserName: { type: "boolean" description: "🚧 Deprecated since v4.13.0\n\nIf `true`, the user must change the `userName` at the first login." } notifyUser: { type: "boolean" description: "Notify user about his new account\n\n* default: `true` for `basic` auth type\n\n* default: `false` for `active_directory`, `openid` and `radius` auth types" } password: { type: "string" description: "🚧 Deprecated since v4.13.0\n\nAn initial password may be preset\n\nuse `authData` instead" } phone: { type: "string" description: "Phone number" } receiverLanguage: { type: "string" description: "IETF language tag" } title: { type: "string" description: "🚧 Deprecated since v4.18.0\n\nJob title" } userName: { type: "string" description: "🚀 Since v4.13.0\n\nUsername" } } } isLocked: { type: "boolean" description: "Customer is locked:\n\n* `false` - unlocked\n\n* `true` - locked\n\n\n\nAll users of this customer will be blocked and can not login anymore." } lockStatus: { type: "boolean" description: "🚧 Deprecated since v4.7.0\n\nCustomer lock status:\n\n* `false` - unlocked\n\n* `true` - locked\n\n\n\nPlease use `isLocked` instead.\n\nAll users of this customer will be blocked and can not login anymore." } providerCustomerId: { type: "string" description: "Provider customer ID" } quotaMax: { type: "integer" format: "int64" description: "Maximal disc space which can be allocated by customer in bytes. -1 for unlimited" } trialDays: { type: "integer" format: "int32" description: "Number of days left for trial period (relevant only for type `demo`)\n\n(not used)" } userMax: { type: "integer" format: "int32" description: "Maximal number of users" } webhooksMax: { type: "integer" format: "int64" description: "🚀 Since v4.19.0\n\nMaximal number of webhooks" } } required: ["customerContractType", "firstAdminUser", "quotaMax", "userMax"] additionalProperties: false } output: { type: "object" description: "Customer information" required: ["companyName", "customerContractType", "customerUuid", "firstAdminUser", "lockStatus", "quotaMax", "userMax"] properties: { activationCode: { type: "string" description: "🚧 Deprecated since v4.8.0\n\nCustomer activation code string:\n\n* valid only for types `free` and `demo`\n\n* for `pay` customers it is empty" } companyName: { type: "string" description: "Company name" } createdAt: { type: "string" format: "date-time" description: "Creation date" } customerAttributes: { type: "object" description: "List of customer attributes" required: ["items"] properties: { items: { type: "array" description: "List of customer attributes" items: { type: "object" description: "Key-value pair" required: ["key", "value"] properties: { key: { type: "string" description: "Entry key" } value: { type: "string" description: "Entry value" } } } } } } customerContractType: { type: "string" description: "Customer type" enum: ["demo", "free", "pay"] } customerUuid: { type: "string" description: "🚀 Since v4.21.0\n\nCustomer UUID" } firstAdminUser: { type: "object" description: "First administrator user" required: ["firstName", "lastName"] properties: { authData: { type: "object" description: "User Authentication Data" required: ["method"] properties: { adConfigId: { type: "integer" format: "int32" description: "ID of the user's Active Directory." } login: { type: "string" description: "User login name" } method: { type: "string" description: "Authentication method\n\n\n\nAuthentication methods:\n\n* `basic`\n\n* `active_directory`\n\n* `radius`\n\n* `openid`" } mustChangePassword: { type: "boolean" description: "Determines whether user has to change his / her password\n\n* default: `true` for `basic` auth type\n\n* default: `false` for `active_directory`, `openid` and `radius` auth types" } oidConfigId: { type: "integer" format: "int32" description: "ID of the user's OIDC provider." } password: { type: "string" description: "Password (only relevant for `basic` authentication type)\n\n*NOT* your Active Directory, OpenID or RADIUS password!" } } } authMethods: { type: "array" description: "🚧 Deprecated since v4.13.0\n\nAuthentication methods:\n\n* `sql`\n\n* `active_directory`\n\n* `radius`\n\n* `openid`\n\nuse `authData` instead" items: { type: "object" description: "Authentication method" required: ["authId", "isEnabled"] properties: { authId: { type: "string" description: "Authentication method\n\n\n\nAuthentication methods:\n\n* `basic`\n\n* `active_directory`\n\n* `radius`\n\n* `openid`" } isEnabled: { type: "boolean" description: "Is enabled" } options: { type: "array" description: "Authentication method options" items: { type: "object" additionalProperties: true } } } } } email: { type: "string" description: "Email " } firstName: { type: "string" description: "User first name" } gender: { type: "string" description: "🚧 Deprecated since v4.12.0\n\nGender" } language: { type: "string" description: "🚧 Deprecated since v4.7.0\n\nLanguage ID or ISO 639-1 code" } lastName: { type: "string" description: "User last name" } login: { type: "string" description: "🚧 Deprecated since v4.13.0\n\nUser login name" } needsToChangePassword: { type: "boolean" description: "🚧 Deprecated since v4.13.0\n\nDetermines whether user has to change his / her initial password.\n\nuse `authDate.mustChangePassword` instead" } needsToChangeUserName: { type: "boolean" description: "🚧 Deprecated since v4.13.0\n\nIf `true`, the user must change the `userName` at the first login." } notifyUser: { type: "boolean" description: "Notify user about his new account\n\n* default: `true` for `basic` auth type\n\n* default: `false` for `active_directory`, `openid` and `radius` auth types" } password: { type: "string" description: "🚧 Deprecated since v4.13.0\n\nAn initial password may be preset\n\nuse `authData` instead" } phone: { type: "string" description: "Phone number" } receiverLanguage: { type: "string" description: "IETF language tag" } title: { type: "string" description: "🚧 Deprecated since v4.18.0\n\nJob title" } userName: { type: "string" description: "🚀 Since v4.13.0\n\nUsername" } } } id: { type: "integer" format: "int64" description: "Unique identifier for the customer" } isLocked: { type: "boolean" description: "Customer is locked:\n\n* `false` - unlocked\n\n* `true` - locked\n\n\n\nAll users of this customer will be blocked and can not login anymore." } lockStatus: { type: "boolean" description: "🚧 Deprecated since v4.7.0\n\nCustomer lock status:\n\n* `false` - unlocked\n\n* `true` - locked\n\n\n\nPlease use `isLocked` instead.\n\nAll users of this customer will be blocked and can not login anymore." } providerCustomerId: { type: "string" description: "Provider customer ID" } quotaMax: { type: "integer" format: "int64" description: "Maximal disc space which can be allocated by customer in bytes. -1 for unlimited" } trialDays: { type: "integer" format: "int32" description: "Number of days left for trial period (relevant only for type `demo`)\n\n(not used)" } userMax: { type: "integer" format: "int32" description: "Maximal number of users" } webhooksMax: { type: "integer" format: "int64" description: "🚀 Since v4.19.0\n\nMaximal number of webhooks" } } } }