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

************
get_proposal
************



.. py:method:: ManagedBlockchain.Client.get_proposal(**kwargs)

  

  Returns detailed information about a proposal.

   

  Applies only to Hyperledger Fabric.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/managedblockchain-2018-09-24/GetProposal>`_  


  **Request Syntax**
  ::

    response = client.get_proposal(
        NetworkId='string',
        ProposalId='string'
    )
    
  :type NetworkId: string
  :param NetworkId: **[REQUIRED]** 

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

    

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

    The unique identifier of the proposal.

    

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

    
    ::

      {
          'Proposal': {
              'ProposalId': 'string',
              'NetworkId': 'string',
              'Description': 'string',
              'Actions': {
                  'Invitations': [
                      {
                          'Principal': 'string'
                      },
                  ],
                  'Removals': [
                      {
                          'MemberId': 'string'
                      },
                  ]
              },
              'ProposedByMemberId': 'string',
              'ProposedByMemberName': 'string',
              'Status': 'IN_PROGRESS'|'APPROVED'|'REJECTED'|'EXPIRED'|'ACTION_FAILED',
              'CreationDate': datetime(2015, 1, 1),
              'ExpirationDate': datetime(2015, 1, 1),
              'YesVoteCount': 123,
              'NoVoteCount': 123,
              'OutstandingVoteCount': 123,
              'Tags': {
                  'string': 'string'
              },
              'Arn': 'string'
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **Proposal** *(dict) --* 

        Information about a proposal.

        
        

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

          The unique identifier of the proposal.

          
        

        - **NetworkId** *(string) --* 

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

          
        

        - **Description** *(string) --* 

          The description of the proposal.

          
        

        - **Actions** *(dict) --* 

          The actions to perform on the network if the proposal is ``APPROVED``.

          
          

          - **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) --* 

                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) --* 

                The unique identifier of the member to remove.

                
          
        
      
        

        - **ProposedByMemberId** *(string) --* 

          The unique identifier of the member that created the proposal.

          
        

        - **ProposedByMemberName** *(string) --* 

          The name of the member that created the proposal.

          
        

        - **Status** *(string) --* 

          The status of the proposal. Values are as follows:

           

          
          * ``IN_PROGRESS`` - The proposal is active and open for member voting.
           
          * ``APPROVED`` - The proposal was approved with sufficient ``YES`` votes among members according to the ``VotingPolicy`` specified for the ``Network``. The specified proposal actions are carried out.
           
          * ``REJECTED`` - The proposal was rejected with insufficient ``YES`` votes among members according to the ``VotingPolicy`` specified for the ``Network``. The specified ``ProposalActions`` aren't carried out.
           
          * ``EXPIRED`` - Members didn't cast the number of votes required to determine the proposal outcome before the proposal expired. The specified ``ProposalActions`` aren't carried out.
           
          * ``ACTION_FAILED`` - One or more of the specified ``ProposalActions`` in a proposal that was approved couldn't be completed because of an error. The ``ACTION_FAILED`` status occurs even if only one ProposalAction fails and other actions are successful.
          

          
        

        - **CreationDate** *(datetime) --* 

          The date and time that the proposal was created.

          
        

        - **ExpirationDate** *(datetime) --* 

          The date and time that the proposal expires. This is the ``CreationDate`` plus the ``ProposalDurationInHours`` that is specified in the ``ProposalThresholdPolicy``. After this date and time, if members haven't cast enough votes to determine the outcome according to the voting policy, the proposal is ``EXPIRED`` and ``Actions`` aren't carried out.

          
        

        - **YesVoteCount** *(integer) --* 

          The current total of ``YES`` votes cast on the proposal by members.

          
        

        - **NoVoteCount** *(integer) --* 

          The current total of ``NO`` votes cast on the proposal by members.

          
        

        - **OutstandingVoteCount** *(integer) --* 

          The number of votes remaining to be cast on the proposal by members. In other words, the number of members minus the sum of ``YES`` votes and ``NO`` votes.

          
        

        - **Tags** *(dict) --* 

          Tags assigned to the proposal. Each tag consists of a key and optional value.

           

          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) --* 
      
    
        

        - **Arn** *(string) --* 

          The Amazon Resource Name (ARN) of the proposal. For more information about ARNs and their format, see `Amazon Resource Names (ARNs) <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html>`__ in the *Amazon Web Services General Reference*.

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

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

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

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

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

  