ores.iam.tenant_provisioning_messages
Table of Contents
The tenant_provisioning protocol messages.
1. Includes
#include <cstdint> #include <string> #include <string_view> #include <vector>
2. Messages
2.1. provision_tenant_command
/** * @brief Provisions a tenant from a seed profile. * * The tenant and its administrator are created before the answer; the steps * the profile orders run afterwards as a workflow instance, whose id the * answer carries. This is the one verb for every tenant, the first one * included, and it replaces iam.v1.bootstrap.provision-tenant and * iam.v1.ops.provision_tenant-acme. * * The answer takes longer than the transport's default request timeout, * because creating the tenant copies the deployment's registered data into it * -- its roles, its permissions and its lookup tables -- before the steps are * dispatched. The budget is the one the bootstrap verb this replaces declared. */
2.1.1. profile_code
/** * @brief Code of the seed profile to provision from. * * The profile states the tenant's type, the steps to run and the parameters * this request must supply. An unknown code is refused. */
2.1.2. tenant_code
/** * @brief Unique code of the tenant to create. */
2.1.3. tenant_name
/** * @brief Display name of the tenant. */
2.1.4. tenant_hostname
/** * @brief Hostname of the tenant. * * A principal of the form username@hostname resolves its tenant through this * value. */
2.1.5. tenant_description
/** * @brief Optional description for the tenant record. */
2.1.6. admin_username
/** * @brief Username of the tenant's first administrator, without a hostname * part. */
2.1.7. admin_email
/** * @brief Email address of that administrator. */
2.1.8. admin_password
/** * @brief Initial password of that administrator. * * A client that reuses the caller's own password, as a demonstration * profile's form does, sends it here: a server cannot read the password its * caller signed in with. */
2.1.9. parameters
/** * @brief Values for the profile's declared parameters, one "name=value" entry * each. * * A parameter the profile does not declare is refused, and so is a value the * parameter's data type or its choices refuse. A parameter this list omits * takes the profile's default; one that is required, omitted and declares no * default is refused, and so is a required parameter whose value is empty. */
2.2. provision_tenant_command_response
/** * @brief The answer to a provision request. * * The tenant and its administrator exist by the time this answers, and the steps * the starting point orders run afterwards, so the answer carries the run's id * rather than waiting for work that takes minutes. */
2.2.1. success
2.2.2. message
2.2.3. instance_id
/** * @brief Id of the workflow instance that runs the profile's steps. * * The caller follows the run, its progress and its retries by this id. */
2.2.4. tenant_id
/** * @brief Id of the tenant the request created. */
2.2.5. account_id
/** * @brief Id of the administrator account it created. */
2.3. provision_party_command
/** * @brief Provisions one party of the caller's own tenant. * * The tenant exists already: this request provisions one of its parties, the * one an administrator names. The party stage is one request because both * clients drive it and neither is the reference — the browser when a person * adds a party, the shell when a script does — and the work runs as a workflow * instance, whose id the answer carries, because publishing a party's data * takes minutes and can fail half way. */
2.3.1. party
/** * @brief The party to provision, by its identifier or its exact full name. * * A person types the name they know the party by and a script states the * identifier it read; the read that resolves either is the party read, so * neither spelling is privileged. */
2.3.2. profile_code
/** * @brief Code of the seed profile whose party stage the request runs. * * A party's data is the starting point's and the starting point states it as * a row: the bundles a party is published from are the profile's * "provision_party" step arguments. An unknown code is refused, and so is a * profile that orders no party step. * * An empty code means the deployment's own party starting point, which is the * first profile that orders a party step. A tenant administrator cannot name a * profile: the profiles are the system tenant's rows, and a tenant reads only * its own, so the service that holds both is the one that chooses. */
2.3.3. lei
/** * @brief The legal entity the party was built from, or empty for one that is * not in the register. * * A person who adds a party either finds the legal entity among those the * deployment holds or names the party by hand, and the LEI is what tells the * two apart: the register's identifier of the entity the party is, or nothing * at all. * * The run records it, because a party identifier carries the party the writing * session acts in and the person who adds a party works in another one. An * empty value leaves the party without an LEI, which is the party a person * described by hand. */
2.4. provision_party_command_response
2.4.1. success
2.4.2. message
2.4.3. instance_id
/** * @brief Id of the workflow instance that runs the party stage. * * The caller follows the run, its progress and its retries by this id. */
2.4.4. party_id
/** * @brief Id of the party the request resolved. */