REST Resource: projects.locations.instances.mpc.keyRings.keys.proposals

Resource: Proposal

Represents a cryptographic signing Proposal.

JSON representation
{
  "name": string,
  "digest": string,
  "state": enum (State),
  "finalSignature": string,
  "createTime": string,
  "expireTime": string,
  "recordedVotes": [
    {
      object (ParticipantVote)
    }
  ],
  "policyApproverSignature": string,
  "keyVersion": string,
  "requiredThreshold": integer,
  "updateTime": string,
  "initiator": string,
  "errorMessage": string
}
Fields
name

string

Identifier. The unique server-assigned resource name of the Proposal. Format: projects/{project}/locations/{location}/instances/{instance}/mpc/keyRings/{keyRing}/keys/{key}/proposals/{proposal}

digest

string (bytes format)

Required. Immutable. The digest (hash) of the message to be signed. This must be provided when the proposal is created.

A base64-encoded string.

state

enum (State)

Output only. The current state of the proposal.

finalSignature

string (bytes format)

Output only. The final cryptographic signature, populated only after the proposal reaches the SUCCEEDED state.

A base64-encoded string.

createTime

string (Timestamp format)

Output only. The timestamp when the proposal resource 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".

expireTime

string (Timestamp format)

Output only. The timestamp when the proposal is considered expired. If the proposal does not reach the READY state by this time, it may transition to FAILED. This is set by the server upon creation.

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".

recordedVotes[]

object (ParticipantVote)

Output only. The list of participant votes recorded for this proposal.

policyApproverSignature

string (bytes format)

Required. Immutable. The signature from the Policy Approver that authorized the creation of this proposal. This is persisted for audit purposes and later propagated for multi-stage verification across task execution.

A base64-encoded string.

keyVersion

string

Required. Immutable. The resource name of the Key version used for this signing proposal. Format: projects/{project}/locations/{location}/instances/{instance}/mpc/keyRings/{keyRing}/keys/{key}/versions/{version}

requiredThreshold

integer

Output only. The number of assents required for this proposal to become READY. This is determined by the Key's threshold at the time of proposal creation.

updateTime

string (Timestamp format)

Output only. The timestamp when the proposal resource 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: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

initiator

string

Required. Immutable. The resource name of the Participant who initiated this proposal. Format: projects/{project}/locations/{location}/instances/{instance}/mpc/signers/{signer}

errorMessage

string

Output only. An error message detailing why the proposal failed. Populated only when the state transitions to FAILED.

State

The state of the proposal.

Enums
STATE_UNSPECIFIED Default value. This value is unused.
PENDING_ASSENT The proposal has been created and authorized by a Policy Approver but has not yet received the required threshold of participant assents. The system is waiting for participants to provide their cryptographic consent via the proposals.recordParticipantDecision method.
IN_PROGRESS The signing ceremony is actively being orchestrated. This state indicates that the system has begun the Multi-party Compute.
SUCCEEDED The signing ceremony has successfully completed. The final, aggregated digital signature has been generated and is available. This is a terminal success state.
FAILED The proposal failed to complete. This can occur due to a timeout waiting for assents, an unrecoverable error during the signing ceremony, or explicit rejection by participants. This is a terminal failure state.

ParticipantVote

Metadata about a participant's vote on this proposal.

JSON representation
{
  "participant": string,
  "voteTime": string,
  "decision": enum (Decision),
  "signature": string,
  "signedPayload": string
}
Fields
participant

string

Output only. The resource name of the Participant who cast this vote. Format: projects/{project}/locations/{location}/instances/{instance}/mpc/signers/{signer}

voteTime

string (Timestamp format)

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

decision

enum (Decision)

Output only. The decision made by the participant.

signature

string (bytes format)

Output only. The signature provided by the participant, an attestation of their decision.

A base64-encoded string.

signedPayload

string (bytes format)

Output only. The exact payload that was signed by the participant, used for auditing.

A base64-encoded string.

Decision

The decision made by a participant regarding the proposal.

Enums
DECISION_UNSPECIFIED Default value. This value is unused.
ASSENT The participant approves the proposal.
DISSENT The participant rejects the proposal.

Methods

create

Initiates a Signing Proposal for a given Key.

fetchProposalSignature

Retrieves the final assembled signature for a completed Proposal.

get

Gets details of a single Proposal.

list

Lists Proposals for a given Key.

recordParticipantDecision

Submits a cryptographic signature from a key participant, recording their assent (or rejection) for the proposal.