:doc:`PartnerCentralChannelAPI <../../partnercentral-channel>` / Client / create_channel_handshake

************************
create_channel_handshake
************************



.. py:method:: PartnerCentralChannelAPI.Client.create_channel_handshake(**kwargs)

  

  Creates a new channel handshake request to establish a partnership with another AWS account.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/partnercentral-channel-2024-03-18/CreateChannelHandshake>`_  


  **Request Syntax**
  ::

    response = client.create_channel_handshake(
        handshakeType='START_SERVICE_PERIOD'|'REVOKE_SERVICE_PERIOD'|'PROGRAM_MANAGEMENT_ACCOUNT',
        catalog='string',
        associatedResourceIdentifier='string',
        payload={
            'startServicePeriodPayload': {
                'programManagementAccountIdentifier': 'string',
                'note': 'string',
                'servicePeriodType': 'MINIMUM_NOTICE_PERIOD'|'FIXED_COMMITMENT_PERIOD',
                'minimumNoticeDays': 'string',
                'endDate': datetime(2015, 1, 1)
            },
            'revokeServicePeriodPayload': {
                'programManagementAccountIdentifier': 'string',
                'note': 'string'
            }
        },
        clientToken='string',
        tags=[
            {
                'key': 'string',
                'value': 'string'
            },
        ]
    )
    
  :type handshakeType: string
  :param handshakeType: **[REQUIRED]** 

    The type of handshake to create (e.g., start service period, revoke service period).

    

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

    The catalog identifier for the handshake request.

    

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

    The identifier of the resource associated with this handshake.

    

  
  :type payload: dict
  :param payload: 

    The payload containing specific details for the handshake type.

    .. note::    This is a Tagged Union structure. Only one of the     following top level keys can be set: ``startServicePeriodPayload``, ``revokeServicePeriodPayload``. 

  
    - **startServicePeriodPayload** *(dict) --* 

      Payload for starting a service period handshake.

      

    
      - **programManagementAccountIdentifier** *(string) --* **[REQUIRED]** 

        The identifier of the program management account.

        

      
      - **note** *(string) --* 

        A note providing additional information about the service period.

        

      
      - **servicePeriodType** *(string) --* **[REQUIRED]** 

        The type of service period being started.

        

      
      - **minimumNoticeDays** *(string) --* 

        The minimum number of days notice required for changes.

        

      
      - **endDate** *(datetime) --* 

        The end date of the service period.

        

      
    
    - **revokeServicePeriodPayload** *(dict) --* 

      Payload for revoking a service period handshake.

      

    
      - **programManagementAccountIdentifier** *(string) --* **[REQUIRED]** 

        The identifier of the program management account.

        

      
      - **note** *(string) --* 

        A note explaining the reason for revoking the service period.

        

      
    
  
  :type clientToken: string
  :param clientToken: 

    A unique, case-sensitive identifier to ensure idempotency of the request.

    This field is autopopulated if not provided.

  
  :type tags: list
  :param tags: 

    Key-value pairs to associate with the channel handshake.

    

  
    - *(dict) --* 

      A key-value pair that can be associated with a resource.

      

    
      - **key** *(string) --* **[REQUIRED]** 

        The key of the tag.

        

      
      - **value** *(string) --* **[REQUIRED]** 

        The value of the tag.

        

      
    

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

    
    ::

      {
          'channelHandshakeDetail': {
              'id': 'string',
              'arn': 'string'
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **channelHandshakeDetail** *(dict) --* 

        Details of the created channel handshake.

        
        

        - **id** *(string) --* 

          The unique identifier of the created handshake.

          
        

        - **arn** *(string) --* 

          The Amazon Resource Name (ARN) of the created handshake.

          
    
  
  **Exceptions**
  
  *   :py:class:`PartnerCentralChannelAPI.Client.exceptions.ResourceNotFoundException`

  
  *   :py:class:`PartnerCentralChannelAPI.Client.exceptions.InternalServerException`

  
  *   :py:class:`PartnerCentralChannelAPI.Client.exceptions.ValidationException`

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

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

  
  *   :py:class:`PartnerCentralChannelAPI.Client.exceptions.ConflictException`

  
  *   :py:class:`PartnerCentralChannelAPI.Client.exceptions.ServiceQuotaExceededException`

  