:doc:`Organizations <../../organizations>` / Client / describe_handshake

******************
describe_handshake
******************



.. py:method:: Organizations.Client.describe_handshake(**kwargs)

  

  Returns details for a handshake. A handshake is the secure exchange of information between two Amazon Web Services accounts: a sender and a recipient.

   

  You can view ``ACCEPTED``, ``DECLINED``, or ``CANCELED`` handshakes in API Responses for 30 days before they are deleted.

   

  You can call this operation from any account in a organization.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/DescribeHandshake>`_  


  **Request Syntax**
  ::

    response = client.describe_handshake(
        HandshakeId='string'
    )
    
  :type HandshakeId: string
  :param HandshakeId: **[REQUIRED]** 

    ID for the handshake that you want information about.

     

    The `regex pattern <http://wikipedia.org/wiki/regex>`__ for handshake ID string requires "h-" followed by from 8 to 32 lowercase letters or digits.

    

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

    
    ::

      {
          'Handshake': {
              'Id': 'string',
              'Arn': 'string',
              'Parties': [
                  {
                      'Id': 'string',
                      'Type': 'ACCOUNT'|'ORGANIZATION'|'EMAIL'
                  },
              ],
              'State': 'REQUESTED'|'OPEN'|'CANCELED'|'ACCEPTED'|'DECLINED'|'EXPIRED',
              'RequestedTimestamp': datetime(2015, 1, 1),
              'ExpirationTimestamp': datetime(2015, 1, 1),
              'Action': 'INVITE'|'ENABLE_ALL_FEATURES'|'APPROVE_ALL_FEATURES'|'ADD_ORGANIZATIONS_SERVICE_LINKED_ROLE'|'TRANSFER_RESPONSIBILITY',
              'Resources': [
                  {
                      'Value': 'string',
                      'Type': 'ACCOUNT'|'ORGANIZATION'|'ORGANIZATION_FEATURE_SET'|'EMAIL'|'MASTER_EMAIL'|'MASTER_NAME'|'NOTES'|'PARENT_HANDSHAKE'|'RESPONSIBILITY_TRANSFER'|'TRANSFER_START_TIMESTAMP'|'TRANSFER_TYPE'|'MANAGEMENT_ACCOUNT'|'MANAGEMENT_EMAIL'|'MANAGEMENT_NAME',
                      'Resources': {'... recursive ...'}
                  },
              ]
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **Handshake** *(dict) --* 

        A ``Handshake`` object. Contains details for the handshake.

        
        

        - **Id** *(string) --* 

          ID for the handshake.

           

          The `regex pattern <http://wikipedia.org/wiki/regex>`__ for handshake ID string requires "h-" followed by from 8 to 32 lowercase letters or digits.

          
        

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

          Amazon Resource Name (ARN) for the handshake.

           

          For more information about ARNs in Organizations, see `ARN Formats Supported by Organizations <https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsorganizations.html#awsorganizations-resources-for-iam-policies>`__ in the *Amazon Web Services Service Authorization Reference*.

          
        

        - **Parties** *(list) --* 

          An array of ``HandshakeParty`` objects. Contains details for participant in a handshake.

          
          

          - *(dict) --* 

            Contains details for a participant in a handshake.

            
            

            - **Id** *(string) --* 

              ID for the participant: Acccount ID, organization ID, or email address.

               

              The `regex pattern <http://wikipedia.org/wiki/regex>`__ for handshake ID string requires "h-" followed by from 8 to 32 lowercase letters or digits.

              
            

            - **Type** *(string) --* 

              The type of ID for the participant.

              
        
      
        

        - **State** *(string) --* 

          Current state for the handshake.

           

          
          * **REQUESTED**: Handshake awaiting a response from the recipient.
           
          * **OPEN**: Handshake sent to multiple recipients and all recipients have responded. The sender can now complete the handshake action.
           
          * **CANCELED**: Handshake canceled by the sender.
           
          * **ACCEPTED**: Handshake accepted by the recipient.
           
          * **DECLINED**: Handshake declined by the recipient.
           
          * **EXPIRED**: Handshake has expired.
          

          
        

        - **RequestedTimestamp** *(datetime) --* 

          Timestamp when the handshake request was made.

          
        

        - **ExpirationTimestamp** *(datetime) --* 

          Timestamp when the handshake expires.

          
        

        - **Action** *(string) --* 

          The type of handshake:

           

          
          * **INVITE**: Handshake sent to a standalone account requesting that it to join the sender's organization.
           
          * **ENABLE_ALL_FEATURES**: Handshake sent to invited member accounts to enable all features for the organization.
           
          * **APPROVE_ALL_FEATURES**: Handshake sent to the management account when all invited member accounts have approved to enable all features.
           
          * **TRANSFER_RESPONSIBILITY**: Handshake sent to another organization's management account requesting that it designate the sender with the specified responsibilities for recipient's organization.
          

          
        

        - **Resources** *(list) --* 

          An array of ``HandshakeResource`` objects. When needed, contains additional details for a handshake. For example, the email address for the sender.

          
          

          - *(dict) --* 

            Contains additional details for a handshake.

            
            

            - **Value** *(string) --* 

              Additional information for the handshake. The format of the value string must match the requirements of the specified type.

              
            

            - **Type** *(string) --* 

              The type of information being passed, specifying how the value is to be interpreted by the other party:

               

              
              * **ACCOUNT**: ID for an Amazon Web Services account.
               
              * **ORGANIZATION**: ID for an organization.
               
              * **EMAIL**: Email address for the recipient.
               
              * **OWNER_EMAIL**: Email address for the sender.
               
              * **OWNER_NAME**: Name of the sender.
               
              * **NOTES**: Additional text included by the sender for the recipient.
              

              
            

            - **Resources** *(list) --* 

              An array of ``HandshakeResource`` objects. When needed, contains additional details for a handshake. For example, the email address for the sender.

              
        
      
    
  
  **Exceptions**
  
  *   :py:class:`Organizations.Client.exceptions.AccessDeniedException`

  
  *   :py:class:`Organizations.Client.exceptions.ConcurrentModificationException`

  
  *   :py:class:`Organizations.Client.exceptions.HandshakeNotFoundException`

  
  *   :py:class:`Organizations.Client.exceptions.InvalidInputException`

  
  *   :py:class:`Organizations.Client.exceptions.ServiceException`

  
  *   :py:class:`Organizations.Client.exceptions.TooManyRequestsException`

  

  **Examples**

  The following example shows you how to request details about a handshake. The handshake ID comes either from the original call to "InviteAccountToOrganization", or from a call to "ListHandshakesForAccount" or "ListHandshakesForOrganization":
  ::

    response = client.describe_handshake(
        HandshakeId='h-examplehandshakeid111',
    )
    
    print(response)

  
  Expected Output:
  ::

    {
        'Handshake': {
            'Action': 'INVITE',
            'Arn': 'arn:aws:organizations::111111111111:handshake/o-exampleorgid/invite/h-examplehandshakeid111',
            'ExpirationTimestamp': datetime(2016, 11, 30, 17, 24, 58, 2, 335, 0),
            'Id': 'h-examplehandshakeid111',
            'Parties': [
                {
                    'Id': 'o-exampleorgid',
                    'Type': 'ORGANIZATION',
                },
                {
                    'Id': '333333333333',
                    'Type': 'ACCOUNT',
                },
            ],
            'RequestedTimestamp': datetime(2016, 11, 30, 17, 24, 58, 2, 335, 0),
            'Resources': [
                {
                    'Resources': [
                        {
                            'Type': 'MASTER_EMAIL',
                            'Value': 'bill@example.com',
                        },
                        {
                            'Type': 'MASTER_NAME',
                            'Value': 'Master Account',
                        },
                    ],
                    'Type': 'ORGANIZATION',
                    'Value': 'o-exampleorgid',
                },
                {
                    'Type': 'ACCOUNT',
                    'Value': '333333333333',
                },
            ],
            'State': 'OPEN',
        },
        'ResponseMetadata': {
            '...': '...',
        },
    }

  