---
title: "POST /v1/{+parent}/proposals"
method: POST
path: "/v1/{+parent}/proposals"
tags: ["projects"]
---

# POST /v1/{+parent}/proposals

`POST /v1/{+parent}/proposals`

Creates a new SingleTenantHsmInstanceProposal for a given SingleTenantHsmInstance.

## Path parameters

- `parent` string, required

## Query parameters

- `singleTenantHsmInstanceProposalId` string

## Request body

- SingleTenantHsmInstanceProposal — A SingleTenantHsmInstanceProposal represents a proposal to perform an operation on a SingleTenantHsmInstance.
  - `upgradeKeyTrust` UpgradeKeyTrust — Promotes a key with the AES_WRAPPING purpose to a trusted wrapping key. The key must be in the ACTIVE state to perform this operation.
    - `name` string — Required. The name of the CryptoKeyVersion to promote.
    - `twoFactorPublicKeyPem` string — Required. The public key associated with the 2FA key that will sign the login nonce for this operation.
  - `requiredActionQuorumParameters` RequiredActionQuorumParameters — Parameters for an approval that has both required challenges and a quorum.
    - `quorumChallenges` 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.
      - `challenge` string, byte — Output only. The challenge to be signed by the 2FA key indicated by the public key.
      - `publicKeyPem` string — Output only. The public key associated with the 2FA key that should sign the 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.
    - `requiredChallenges` Challenge[] — Output only. A list of specific challenges that must be signed. For some operations, this will contain a single challenge.
      - `challenge` string, byte — Output only. The challenge to be signed by the 2FA key indicated by the public key.
      - `publicKeyPem` string — Output only. The public key associated with the 2FA key that should sign the challenge.
    - `approvedTwoFactorPublicKeyPems` string[] — Output only. The public keys associated with the 2FA keys that have already approved the SingleTenantHsmInstanceProposal by signing the challenge.
  - `quorumParameters` QuorumParameters — Parameters of quorum approval for the SingleTenantHsmInstanceProposal.
    - `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` 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.
      - `challenge` string, byte — Output only. The challenge to be signed by the 2FA key indicated by the public key.
      - `publicKeyPem` string — Output only. The public key associated with the 2FA key that should sign the challenge.
    - `approvedTwoFactorPublicKeyPems` string[] — Output only. The public keys associated with the 2FA keys that have already approved the SingleTenantHsmInstanceProposal by signing the challenge.
  - `deleteTime` string, google-datetime — Output only. The time at which the SingleTenantHsmInstanceProposal was deleted.
  - `disableSingleTenantHsmInstance` DisableSingleTenantHsmInstance — Disable the SingleTenantHsmInstance. The SingleTenantHsmInstance must be in the ACTIVE state to perform this operation.
  - `refreshSingleTenantHsmInstance` RefreshSingleTenantHsmInstance — Refreshes the SingleTenantHsmInstance. This operation must be performed periodically to keep the SingleTenantHsmInstance active. This operation must be performed before unrefreshed_duration_until_disable has passed. The SingleTenantHsmInstance must be in the ACTIVE state to perform this operation.
  - `enableSingleTenantHsmInstance` EnableSingleTenantHsmInstance — Enable the SingleTenantHsmInstance. The SingleTenantHsmInstance must be in the DISABLED state to perform this operation.
  - `deleteSingleTenantHsmInstance` DeleteSingleTenantHsmInstance — 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.
  - `state` 'STATE_UNSPECIFIED' | 'CREATING' | 'PENDING' | 'APPROVED' | 'RUNNING' | 'SUCCEEDED' | 'FAILED' | 'DELETED' — 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.
  - `expireTime` string, google-datetime — The time at which the SingleTenantHsmInstanceProposal will expire if not approved and executed.
  - `name` string — Identifier. The resource name for this SingleTenantHsmInstance in the format `projects/*/locations/*/singleTenantHsmInstances/*/proposals/*`.
  - `ttl` string, google-duration — Input only. The TTL for the SingleTenantHsmInstanceProposal. Proposals will expire after this duration.
  - `registerTwoFactorAuthKeys` 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.
    - `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 total_approver_count - 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.
  - `purgeTime` string, google-datetime — 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. >= expire_time or (create_time + ttl).
  - `removeQuorumMember` RemoveQuorumMember — Remove a quorum member from the SingleTenantHsmInstance. This will reduce total_approver_count by 1. The SingleTenantHsmInstance must be in the ACTIVE state to perform this operation.
    - `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.
  - `addQuorumMember` AddQuorumMember — Add a quorum member to the SingleTenantHsmInstance. This will increase the total_approver_count by 1. The SingleTenantHsmInstance must be in the ACTIVE state to perform this operation.
    - `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.
  - `createTime` string, google-datetime — Output only. The time at which the SingleTenantHsmInstanceProposal was created.

## Response `200`

Successful response

---

[API](https://skmtc.net/google/apis/cloudkms.md) · [All operations](https://skmtc.net/google/apis/cloudkms/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/google/cloudkms/versions/576b283e53dd/schema)
