- Resource: User
- AuthorizationKey
- PublicKeySignatureAlgorithm
- Role
- State
- RoleStatus
- State
- RoleApprovalInfo
- RoleApproval
- Methods
Resource: User
A User is an onboarded identity within an MPC instance.
| JSON representation |
|---|
{ "name": string, "displayName": string, "principal": string, "authorizationKey": { object ( |
| Fields | |
|---|---|
name |
Identifier. The resource name of the User. Format: projects/{project}/locations/{location}/instances/{instance}/users/{user} |
displayName |
Optional. User-assigned display name for the User. |
principal |
Required. Immutable. The principal that authenticates as this User: a Google account or a BYOID (workforce identity) principal. Requests on behalf of this User must come from this principal. |
authorizationKey |
Optional. The public key the User signs authorizations with. Signers and policy authors need one to authorize transactions and policies. |
team |
Optional. The resource name of the Team the User belongs to. Must be set if |
roles[] |
Optional. The roles to grant the User at creation: empty or |
createTime |
Output only. The time at which the User was created. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
updateTime |
Output only. The time at which the User was last updated. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
state |
Output only. The lifecycle state of the User. |
uid |
Output only. The unique server-generated identifier of the User. |
roleStatuses[] |
Output only. The status of every role the User has ever been granted. A disabled role stays here as DISABLED, so its approvals stay visible. |
AuthorizationKey
The public key a user signs authorizations with. The service only ever stores the public half; the private key never leaves the user.
| JSON representation |
|---|
{
"publicKey": string,
"algorithm": enum ( |
| Fields | |
|---|---|
publicKey |
Required. The public key material. A base64-encoded string. |
algorithm |
Required. The signature algorithm of the public key. |
PublicKeySignatureAlgorithm
Signature algorithms supported for user authorization keys.
| Enums | |
|---|---|
PUBLIC_KEY_SIGNATURE_ALGORITHM_UNSPECIFIED |
Not specified. |
PUBLIC_KEY_SIGNATURE_ALGORITHM_ECDSA_SECP256K1 |
ECDSA on curve secp256k1. |
PUBLIC_KEY_SIGNATURE_ALGORITHM_EDDSA_ED25519 |
EdDSA on curve Ed25519. |
Role
A role that grants a User a set of capabilities.
| Enums | |
|---|---|
ROLE_UNSPECIFIED |
Not specified. |
SIGNER |
Can hold key shares and authorize transactions. |
POLICY_AUTHOR |
Can author and approve transaction policies. |
ADMIN |
Can administer Users, Teams, and other instance resources. |
State
The lifecycle state of a User.
| Enums | |
|---|---|
STATE_UNSPECIFIED |
Not specified. |
ACTIVE |
The User is enabled. Which roles the User can use is in roleStatuses. |
DISABLED |
The User is disabled and cannot use any role. |
RoleStatus
The status of one of a User's roles, in User.role_statuses.
Status is per role, so a change to one role doesn't affect the others. For example, a signer who is granted POLICY_AUTHOR can keep signing while POLICY_AUTHOR waits for Admin approval.
| JSON representation |
|---|
{ "role": enum ( |
| Fields | |
|---|---|
role |
Output only. The role. |
state |
Output only. The lifecycle state of the role. |
activationInfo |
Output only. The Admin approvals of the role's latest ENABLE change, pending or completed. While the role is ACTIVE or PENDING_DISABLED, this is the completed quorum that authorizes the User to use it; a disable, or a disable that expires, never replaces it. Unset for SIGNER, whose changes need no Admin approval. |
version |
Output only. The version of the role. It increases by 1 with each change that needs Admin approval, and Admins sign it in UserSigningPayload so an old approval can't be replayed. It never decreases: a change that expires or is canceled keeps its version, so its signatures can't be reused for a later change. 0 until the first such change; always 0 for SIGNER. |
updateTime |
Output only. The time at which the role's state last changed. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
deactivationInfo |
Output only. The Admin approvals of the role's latest DISABLE change: pending, completed or expired. Unset if the role was never disabled with Admin approval, and always for SIGNER. |
State
The lifecycle state of a role.
| Enums | |
|---|---|
STATE_UNSPECIFIED |
Not specified. |
PENDING_ACTIVE |
The role was enabled and is waiting for Admin approval. The User cannot use it yet. |
ACTIVE |
The User can use the role. |
PENDING_DISABLED |
The role is being disabled and is waiting for Admin approval. The User can still use it. |
DISABLED |
The role was disabled. The User cannot use it. |
RoleApprovalInfo
The Admin approvals of one change to a User's ADMIN or POLICY_AUTHOR role.
| JSON representation |
|---|
{
"approvals": [
{
object ( |
| Fields | |
|---|---|
approvals[] |
Output only. The Admin approvals collected for the change. The first entry is the approval of the Admin who requested it; others are appended as Admins call UserService.ApproveRoleChange. |
requiredApprovalCount |
Output only. The number of Admin approvals required to complete the change. While the change is waiting for approvals, this reflects the instance's current threshold. Once the change completes, it is fixed to the threshold in effect when it completed. |
expireTime |
Output only. The time at which the change expires if it hasn't reached Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
version |
Output only. RoleStatus.version for this change: the version the approvals signed in UserSigningPayload. |
completeTime |
Output only. The time at which the change reached Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
RoleApproval
One Admin's recorded approval of a change to a User's role.
| JSON representation |
|---|
{
"user": string,
"authorizationInfo": {
object ( |
| Fields | |
|---|---|
user |
Output only. The resource name of the approving Admin, resolved from the caller's authenticated identity. Format: projects/{project}/locations/{location}/instances/{instance}/users/{user} |
authorizationInfo |
Output only. The Admin's signature over a UserSigningPayload that includes this role change. |
approveTime |
Output only. The time at which the approval was recorded. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
Methods |
|
|---|---|
|
Records an Admin's approval of the User's pending role change: the roles in PENDING_ACTIVE or PENDING_DISABLED in role_statuses. |
|
Creates a new User in an instance. |
|
Disables a User and all of their roles at once. |
|
Disables one role of a User. |
|
Re-enables a disabled User: sets state back to ACTIVE. |
|
Enables one role of a User: grants it, or re-enables it if it was disabled. |
|
Gets details of a single User. |
|
Lists Users in an instance. |
|
Updates a User's display_name. |
|
Moves a User to a different Team. |