create_proposal

ManagedBlockchain.Client.create_proposal(**kwargs)

Creates a proposal for a change to the network that other members of the network can vote on, for example, a proposal to add a new member to the network. Any member can create a proposal.

Applies only to Hyperledger Fabric.

See also: AWS API Documentation

Request Syntax

response = client.create_proposal(
    ClientRequestToken='string',
    NetworkId='string',
    MemberId='string',
    Actions={
        'Invitations': [
            {
                'Principal': 'string'
            },
        ],
        'Removals': [
            {
                'MemberId': 'string'
            },
        ]
    },
    Description='string',
    Tags={
        'string': 'string'
    }
)
Parameters
  • ClientRequestToken (string) --

    [REQUIRED]

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the operation. An idempotent operation completes no more than one time. This identifier is required only if you make a service request directly using an HTTP client. It is generated automatically if you use an Amazon Web Services SDK or the CLI.

    This field is autopopulated if not provided.

  • NetworkId (string) --

    [REQUIRED]

    The unique identifier of the network for which the proposal is made.

  • MemberId (string) --

    [REQUIRED]

    The unique identifier of the member that is creating the proposal. This identifier is especially useful for identifying the member making the proposal when multiple members exist in a single Amazon Web Services account.

  • Actions (dict) --

    [REQUIRED]

    The type of actions proposed, such as inviting a member or removing a member. The types of Actions in a proposal are mutually exclusive. For example, a proposal with Invitations actions cannot also contain Removals actions.

    • Invitations (list) --

      The actions to perform for an APPROVED proposal to invite an Amazon Web Services account to create a member and join the network.

      • (dict) --

        An action to invite a specific Amazon Web Services account to create a member and join the network. The InviteAction is carried out when a Proposal is APPROVED .

        Applies only to Hyperledger Fabric.

        • Principal (string) -- [REQUIRED]

          The Amazon Web Services account ID to invite.

    • Removals (list) --

      The actions to perform for an APPROVED proposal to remove a member from the network, which deletes the member and all associated member resources from the network.

      • (dict) --

        An action to remove a member from a Managed Blockchain network as the result of a removal proposal that is APPROVED . The member and all associated resources are deleted from the network.

        Applies only to Hyperledger Fabric.

        • MemberId (string) -- [REQUIRED]

          The unique identifier of the member to remove.

  • Description (string) -- A description for the proposal that is visible to voting members, for example, "Proposal to add Example Corp. as member."
  • Tags (dict) --

    Tags to assign to the proposal.

    Each tag consists of a key and an optional value. You can specify multiple key-value pairs in a single request with an overall maximum of 50 tags allowed per resource.

    For more information about tags, see Tagging Resources in the Amazon Managed Blockchain Ethereum Developer Guide , or Tagging Resources in the Amazon Managed Blockchain Hyperledger Fabric Developer Guide .

    • (string) --
      • (string) --
Return type

dict

Returns

Response Syntax

{
    'ProposalId': 'string'
}

Response Structure

  • (dict) --

    • ProposalId (string) --

      The unique identifier of the proposal.

Exceptions

  • ManagedBlockchain.Client.exceptions.InvalidRequestException
  • ManagedBlockchain.Client.exceptions.AccessDeniedException
  • ManagedBlockchain.Client.exceptions.ResourceNotFoundException
  • ManagedBlockchain.Client.exceptions.ResourceNotReadyException
  • ManagedBlockchain.Client.exceptions.ThrottlingException
  • ManagedBlockchain.Client.exceptions.InternalServiceErrorException
  • ManagedBlockchain.Client.exceptions.TooManyTagsException