REST Resource: projects.locations.singleTenantHsmInstances.proposals

Resource: SingleTenantHsmInstanceProposal

A SingleTenantHsmInstanceProposal represents a proposal to perform an operation on a SingleTenantHsmInstance.

JSON representation
{
  "name": string,
  "createTime": string,
  "state": enum (State),
  "failureReason": string,
  "deleteTime": string,
  "purgeTime": string,

  // Union field approval_parameters can be only one of the following:
  "quorumParameters": {
    object (QuorumParameters)
  },
  "requiredActionQuorumParameters": {
    object (RequiredActionQuorumParameters)
  }
  // End of list of possible types for union field approval_parameters.

  // Union field expiration can be only one of the following:
  "expireTime": string,
  "ttl": string
  // End of list of possible types for union field expiration.

  // Union field operation can be only one of the following:
  "registerTwoFactorAuthKeys": {
    object (RegisterTwoFactorAuthKeys)
  },
  "disableSingleTenantHsmInstance": {
    object (DisableSingleTenantHsmInstance)
  },
  "enableSingleTenantHsmInstance": {
    object (EnableSingleTenantHsmInstance)
  },
  "deleteSingleTenantHsmInstance": {
    object (DeleteSingleTenantHsmInstance)
  },
  "addQuorumMember": {
    object (AddQuorumMember)
  },
  "removeQuorumMember": {
    object (RemoveQuorumMember)
  },
  "refreshSingleTenantHsmInstance": {
    object (RefreshSingleTenantHsmInstance)
  }
  // End of list of possible types for union field operation.
}
Fields
name

string

Identifier. The resource name for this SingleTenantHsmInstance in the format projects/*/locations/*/singleTenantHsmInstances/*/proposals/*.

createTime

string (Timestamp format)

Output only. The time at which the SingleTenantHsmInstanceProposal 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: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

state

enum (State)

Output only. The state of the SingleTenantHsmInstanceProposal.

failureReason

string

Output only. The root cause of the most recent failure. Only present if state is FAILED.

deleteTime

string (Timestamp format)

Output only. The time at which the SingleTenantHsmInstanceProposal was deleted.

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: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

purgeTime

string (Timestamp format)

Output only. The time at which the soft-deleted SingleTenantHsmInstanceProposal will be permanently purged. This field is only populated when the state is DELETED and will be set a time after expiration of the proposal, i.e. >= expireTime or (createTime + ttl).

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: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

Union field approval_parameters. The approval parameters for the SingleTenantHsmInstanceProposal. The type of parameters is determined by the operation being proposed. approval_parameters can be only one of the following:
quorumParameters

object (QuorumParameters)

Output only. The quorum approval parameters for the SingleTenantHsmInstanceProposal.

requiredActionQuorumParameters

object (RequiredActionQuorumParameters)

Output only. Parameters for an approval of a SingleTenantHsmInstanceProposal that has both required challenges and a quorum.

Union field expiration. The expiration of the SingleTenantHsmInstanceProposal. If not set, the SingleTenantHsmInstanceProposal will expire in 1 day. The maximum expire time is 7 days. The minimum expire time is 5 minutes. expiration can be only one of the following:
expireTime

string (Timestamp format)

The time at which the SingleTenantHsmInstanceProposal will expire if not approved and executed.

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: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

ttl

string (Duration format)

Input only. The TTL for the SingleTenantHsmInstanceProposal. Proposals will expire after this duration.

A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".

Union field operation. The operation to perform on the SingleTenantHsmInstance. operation can be only one of the following:
registerTwoFactorAuthKeys

object (RegisterTwoFactorAuthKeys)

Register 2FA keys for the SingleTenantHsmInstance. This operation requires all N Challenges to be signed by 2FA keys. The SingleTenantHsmInstance must be in the PENDING_TWO_FACTOR_AUTH_REGISTRATION state to perform this operation.

disableSingleTenantHsmInstance

object (DisableSingleTenantHsmInstance)

Disable the SingleTenantHsmInstance. The SingleTenantHsmInstance must be in the ACTIVE state to perform this operation.

enableSingleTenantHsmInstance

object (EnableSingleTenantHsmInstance)

Enable the SingleTenantHsmInstance. The SingleTenantHsmInstance must be in the DISABLED state to perform this operation.

deleteSingleTenantHsmInstance

object (DeleteSingleTenantHsmInstance)

Delete the SingleTenantHsmInstance. Deleting a SingleTenantHsmInstance will make all CryptoKeys attached to the SingleTenantHsmInstance unusable. The SingleTenantHsmInstance must be in the DISABLED or PENDING_TWO_FACTOR_AUTH_REGISTRATION state to perform this operation.

addQuorumMember

object (AddQuorumMember)

Add a quorum member to the SingleTenantHsmInstance. This will increase the totalApproverCount by 1. The SingleTenantHsmInstance must be in the ACTIVE state to perform this operation.

removeQuorumMember

object (RemoveQuorumMember)

Remove a quorum member from the SingleTenantHsmInstance. This will reduce totalApproverCount by 1. The SingleTenantHsmInstance must be in the ACTIVE state to perform this operation.

refreshSingleTenantHsmInstance

object (RefreshSingleTenantHsmInstance)

Refreshes the SingleTenantHsmInstance. This operation must be performed periodically to keep the SingleTenantHsmInstance active. This operation must be performed before unrefreshedDurationUntilDisable has passed. The SingleTenantHsmInstance must be in the ACTIVE state to perform this operation.

State

The set of states of a SingleTenantHsmInstanceProposal.

Enums
STATE_UNSPECIFIED Not specified.
CREATING The SingleTenantHsmInstanceProposal is being created.
PENDING The SingleTenantHsmInstanceProposal is pending approval.
APPROVED The SingleTenantHsmInstanceProposal has been approved.
RUNNING The SingleTenantHsmInstanceProposal is being executed.
SUCCEEDED The SingleTenantHsmInstanceProposal has been executed successfully.
FAILED The SingleTenantHsmInstanceProposal has failed.
DELETED The SingleTenantHsmInstanceProposal has been deleted and will be purged after the purgeTime.

QuorumParameters

Parameters of quorum approval for the SingleTenantHsmInstanceProposal.

JSON representation
{
  "requiredApproverCount": integer,
  "challenges": [
    {
      object (Challenge)
    }
  ],
  "approvedTwoFactorPublicKeyPems": [
    string
  ]
}
Fields
requiredApproverCount

integer

Output only. The required numbers of approvers. This is the M value used for M of N quorum auth. It is less than the number of public keys.

challenges[]

object (Challenge)

Output only. The challenges to be signed by 2FA keys for quorum auth. M of N of these challenges are required to be signed to approve the operation.

approvedTwoFactorPublicKeyPems[]

string

Output only. The public keys associated with the 2FA keys that have already approved the SingleTenantHsmInstanceProposal by signing the challenge.

Challenge

A challenge to be signed by a 2FA key.

JSON representation
{
  "challenge": string,
  "publicKeyPem": string
}
Fields
challenge

string (bytes format)

Output only. The challenge to be signed by the 2FA key indicated by the public key.

A base64-encoded string.

publicKeyPem

string

Output only. The public key associated with the 2FA key that should sign the challenge.

RequiredActionQuorumParameters

Parameters for an approval that has both required challenges and a quorum.

JSON representation
{
  "requiredChallenges": [
    {
      object (Challenge)
    }
  ],
  "requiredApproverCount": integer,
  "quorumChallenges": [
    {
      object (Challenge)
    }
  ],
  "approvedTwoFactorPublicKeyPems": [
    string
  ]
}
Fields
requiredChallenges[]

object (Challenge)

Output only. A list of specific challenges that must be signed. For some operations, this will contain a single challenge.

requiredApproverCount

integer

Output only. The required number of quorum approvers. This is the M value used for M of N quorum auth. It is less than the number of public keys.

quorumChallenges[]

object (Challenge)

Output only. The challenges to be signed by 2FA keys for quorum auth. M of N of these challenges are required to be signed to approve the operation.

approvedTwoFactorPublicKeyPems[]

string

Output only. The public keys associated with the 2FA keys that have already approved the SingleTenantHsmInstanceProposal by signing the challenge.

RegisterTwoFactorAuthKeys

Register 2FA keys for the SingleTenantHsmInstance. This operation requires all Challenges to be signed by 2FA keys. The SingleTenantHsmInstance must be in the PENDING_TWO_FACTOR_AUTH_REGISTRATION state to perform this operation.

JSON representation
{
  "requiredApproverCount": integer,
  "twoFactorPublicKeyPems": [
    string
  ]
}
Fields
requiredApproverCount

integer

Required. The required numbers of approvers to set for the SingleTenantHsmInstance. This is the M value used for M of N quorum auth. Must be greater than or equal to 2 and less than or equal to totalApproverCount - 1.

twoFactorPublicKeyPems[]

string

Required. The public keys associated with the 2FA keys for M of N quorum auth. Public keys must be associated with RSA 2048 keys.

DisableSingleTenantHsmInstance

This type has no fields.

Disable the SingleTenantHsmInstance. The SingleTenantHsmInstance must be in the ACTIVE state to perform this operation.

EnableSingleTenantHsmInstance

This type has no fields.

Enable the SingleTenantHsmInstance. The SingleTenantHsmInstance must be in the DISABLED state to perform this operation.

DeleteSingleTenantHsmInstance

This type has no fields.

Delete the SingleTenantHsmInstance. Deleting a SingleTenantHsmInstance will make all CryptoKeys attached to the SingleTenantHsmInstance unusable. The SingleTenantHsmInstance must not be in the DELETING or DELETED state to perform this operation.

AddQuorumMember

Add a quorum member to the SingleTenantHsmInstance. This will increase the totalApproverCount by 1. The SingleTenantHsmInstance must be in the ACTIVE state to perform this operation.

JSON representation
{
  "twoFactorPublicKeyPem": string
}
Fields
twoFactorPublicKeyPem

string

Required. The public key associated with the 2FA key for the new quorum member to add. Public keys must be associated with RSA 2048 keys.

RemoveQuorumMember

Remove a quorum member from the SingleTenantHsmInstance. This will reduce totalApproverCount by 1. The SingleTenantHsmInstance must be in the ACTIVE state to perform this operation.

JSON representation
{
  "twoFactorPublicKeyPem": string
}
Fields
twoFactorPublicKeyPem

string

Required. The public key associated with the 2FA key for the quorum member to remove. Public keys must be associated with RSA 2048 keys.

RefreshSingleTenantHsmInstance

This type has no fields.

Refreshes the SingleTenantHsmInstance. This operation must be performed periodically to keep the SingleTenantHsmInstance active. This operation must be performed before unrefreshedDurationUntilDisable has passed. The SingleTenantHsmInstance must be in the ACTIVE state to perform this operation.

Methods

approve

Approves a SingleTenantHsmInstanceProposal for a given SingleTenantHsmInstance.

create

Creates a new SingleTenantHsmInstanceProposal for a given SingleTenantHsmInstance.

delete

Deletes a SingleTenantHsmInstanceProposal.

execute

Executes a SingleTenantHsmInstanceProposal for a given SingleTenantHsmInstance.

get

Returns metadata for a given SingleTenantHsmInstanceProposal.

list

Lists SingleTenantHsmInstanceProposals.