:doc:`ManagedBlockchain <../../managedblockchain>` / Client / create_proposal

***************
create_proposal
***************



.. py:method:: 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 <https://docs.aws.amazon.com/goto/WebAPI/managedblockchain-2018-09-24/CreateProposal>`_  


  **Request Syntax**
  ::

    response = client.create_proposal(
        ClientRequestToken='string',
        NetworkId='string',
        MemberId='string',
        Actions={
            'Invitations': [
                {
                    'Principal': 'string'
                },
            ],
            'Removals': [
                {
                    'MemberId': 'string'
                },
            ]
        },
        Description='string',
        Tags={
            'string': 'string'
        }
    )
    
  :type ClientRequestToken: string
  :param ClientRequestToken: **[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.

  
  :type NetworkId: string
  :param NetworkId: **[REQUIRED]** 

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

    

  
  :type MemberId: string
  :param MemberId: **[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.

    

  
  :type Actions: dict
  :param Actions: **[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.

          

        
      
  
  
  :type Description: string
  :param Description: 

    A description for the proposal that is visible to voting members, for example, "Proposal to add Example Corp. as member."

    

  
  :type Tags: dict
  :param Tags: 

    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 <https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html>`__ in the *Amazon Managed Blockchain Ethereum Developer Guide*, or `Tagging Resources <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html>`__ in the *Amazon Managed Blockchain Hyperledger Fabric Developer Guide*.

    

  
    - *(string) --* 

    
      - *(string) --* 

      


  
  :rtype: dict
  :returns: 
    
    **Response Syntax**

    
    ::

      {
          'ProposalId': 'string'
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **ProposalId** *(string) --* 

        The unique identifier of the proposal.

        
  
  **Exceptions**
  
  *   :py:class:`ManagedBlockchain.Client.exceptions.InvalidRequestException`

  
  *   :py:class:`ManagedBlockchain.Client.exceptions.AccessDeniedException`

  
  *   :py:class:`ManagedBlockchain.Client.exceptions.ResourceNotFoundException`

  
  *   :py:class:`ManagedBlockchain.Client.exceptions.ResourceNotReadyException`

  
  *   :py:class:`ManagedBlockchain.Client.exceptions.ThrottlingException`

  
  *   :py:class:`ManagedBlockchain.Client.exceptions.InternalServiceErrorException`

  
  *   :py:class:`ManagedBlockchain.Client.exceptions.TooManyTagsException`

  