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

***********************
list_channel_handshakes
***********************



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

  

  Lists channel handshakes based on specified criteria.

  

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


  **Request Syntax**
  ::

    response = client.list_channel_handshakes(
        handshakeType='START_SERVICE_PERIOD'|'REVOKE_SERVICE_PERIOD'|'PROGRAM_MANAGEMENT_ACCOUNT',
        catalog='string',
        participantType='SENDER'|'RECEIVER',
        maxResults=123,
        statuses=[
            'PENDING'|'ACCEPTED'|'REJECTED'|'CANCELED'|'EXPIRED',
        ],
        associatedResourceIdentifiers=[
            'string',
        ],
        handshakeTypeFilters={
            'startServicePeriodTypeFilters': {
                'servicePeriodTypes': [
                    'MINIMUM_NOTICE_PERIOD'|'FIXED_COMMITMENT_PERIOD',
                ]
            },
            'revokeServicePeriodTypeFilters': {
                'servicePeriodTypes': [
                    'MINIMUM_NOTICE_PERIOD'|'FIXED_COMMITMENT_PERIOD',
                ]
            },
            'programManagementAccountTypeFilters': {
                'programs': [
                    'SOLUTION_PROVIDER'|'DISTRIBUTION'|'DISTRIBUTION_SELLER',
                ]
            }
        },
        handshakeTypeSort={
            'startServicePeriodTypeSort': {
                'sortOrder': 'Ascending'|'Descending',
                'sortBy': 'UpdatedAt'
            },
            'revokeServicePeriodTypeSort': {
                'sortOrder': 'Ascending'|'Descending',
                'sortBy': 'UpdatedAt'
            },
            'programManagementAccountTypeSort': {
                'sortOrder': 'Ascending'|'Descending',
                'sortBy': 'UpdatedAt'
            }
        },
        nextToken='string'
    )
    
  :type handshakeType: string
  :param handshakeType: **[REQUIRED]** 

    Filter results by handshake type.

    

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

    The catalog identifier to filter handshakes.

    

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

    Filter by participant type (sender or receiver).

    

  
  :type maxResults: integer
  :param maxResults: 

    The maximum number of results to return in a single call.

    

  
  :type statuses: list
  :param statuses: 

    Filter results by handshake status.

    

  
    - *(string) --* 

    

  :type associatedResourceIdentifiers: list
  :param associatedResourceIdentifiers: 

    Filter by associated resource identifiers.

    

  
    - *(string) --* 

    

  :type handshakeTypeFilters: dict
  :param handshakeTypeFilters: 

    Type-specific filters for handshakes.

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

  
    - **startServicePeriodTypeFilters** *(dict) --* 

      Filters specific to start service period handshakes.

      

    
      - **servicePeriodTypes** *(list) --* 

        Filter by service period types.

        

      
        - *(string) --* 

        
    
    
    - **revokeServicePeriodTypeFilters** *(dict) --* 

      Filters specific to revoke service period handshakes.

      

    
      - **servicePeriodTypes** *(list) --* 

        Filter by service period types.

        

      
        - *(string) --* 

        
    
    
    - **programManagementAccountTypeFilters** *(dict) --* 

      Filters specific to program management account handshakes.

      

    
      - **programs** *(list) --* 

        Filter by program types.

        

      
        - *(string) --* 

        
    
    
  
  :type handshakeTypeSort: dict
  :param handshakeTypeSort: 

    Type-specific sorting options for handshakes.

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

  
    - **startServicePeriodTypeSort** *(dict) --* 

      Sorting options specific to start service period handshakes.

      

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

        The sort order (ascending or descending).

        

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

        The field to sort by.

        

      
    
    - **revokeServicePeriodTypeSort** *(dict) --* 

      Sorting options specific to revoke service period handshakes.

      

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

        The sort order (ascending or descending).

        

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

        The field to sort by.

        

      
    
    - **programManagementAccountTypeSort** *(dict) --* 

      Sorting options specific to program management account handshakes.

      

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

        The sort order (ascending or descending).

        

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

        The field to sort by.

        

      
    
  
  :type nextToken: string
  :param nextToken: 

    Token for retrieving the next page of results.

    

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

    
    ::

      {
          'items': [
              {
                  'id': 'string',
                  'arn': 'string',
                  'catalog': 'string',
                  'handshakeType': 'START_SERVICE_PERIOD'|'REVOKE_SERVICE_PERIOD'|'PROGRAM_MANAGEMENT_ACCOUNT',
                  'ownerAccountId': 'string',
                  'senderAccountId': 'string',
                  'senderDisplayName': 'string',
                  'receiverAccountId': 'string',
                  'associatedResourceId': 'string',
                  'detail': {
                      'startServicePeriodHandshakeDetail': {
                          'note': 'string',
                          'servicePeriodType': 'MINIMUM_NOTICE_PERIOD'|'FIXED_COMMITMENT_PERIOD',
                          'minimumNoticeDays': 'string',
                          'startDate': datetime(2015, 1, 1),
                          'endDate': datetime(2015, 1, 1)
                      },
                      'revokeServicePeriodHandshakeDetail': {
                          'note': 'string',
                          'servicePeriodType': 'MINIMUM_NOTICE_PERIOD'|'FIXED_COMMITMENT_PERIOD',
                          'minimumNoticeDays': 'string',
                          'startDate': datetime(2015, 1, 1),
                          'endDate': datetime(2015, 1, 1)
                      },
                      'programManagementAccountHandshakeDetail': {
                          'program': 'SOLUTION_PROVIDER'|'DISTRIBUTION'|'DISTRIBUTION_SELLER'
                      }
                  },
                  'createdAt': datetime(2015, 1, 1),
                  'updatedAt': datetime(2015, 1, 1),
                  'status': 'PENDING'|'ACCEPTED'|'REJECTED'|'CANCELED'|'EXPIRED'
              },
          ],
          'nextToken': 'string'
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **items** *(list) --* 

        List of channel handshakes matching the criteria.

        
        

        - *(dict) --* 

          Summary information about a channel handshake.

          
          

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

            The unique identifier of the handshake.

            
          

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

            The Amazon Resource Name (ARN) of the handshake.

            
          

          - **catalog** *(string) --* 

            The catalog identifier associated with the handshake.

            
          

          - **handshakeType** *(string) --* 

            The type of the handshake.

            
          

          - **ownerAccountId** *(string) --* 

            The AWS account ID of the handshake owner.

            
          

          - **senderAccountId** *(string) --* 

            The AWS account ID of the handshake sender.

            
          

          - **senderDisplayName** *(string) --* 

            The display name of the handshake sender.

            
          

          - **receiverAccountId** *(string) --* 

            The AWS account ID of the handshake receiver.

            
          

          - **associatedResourceId** *(string) --* 

            The identifier of the resource associated with the handshake.

            
          

          - **detail** *(dict) --* 

            Detailed information about the handshake.

            .. note::    This is a Tagged Union structure. Only one of the     following top level keys will be set: ``startServicePeriodHandshakeDetail``, ``revokeServicePeriodHandshakeDetail``, ``programManagementAccountHandshakeDetail``.     If a client receives an unknown member it will     set ``SDK_UNKNOWN_MEMBER`` as the top level key,     which maps to the name or tag of the unknown     member. The structure of ``SDK_UNKNOWN_MEMBER`` is     as follows::

                        'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}


          
            

            - **startServicePeriodHandshakeDetail** *(dict) --* 

              Details for a start service period handshake.

              
              

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

                A note providing additional information about the service period.

                
              

              - **servicePeriodType** *(string) --* 

                The type of service period being started.

                
              

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

                The minimum number of days notice required for changes.

                
              

              - **startDate** *(datetime) --* 

                The start date of the service period.

                
              

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

                The end date of the service period.

                
          
            

            - **revokeServicePeriodHandshakeDetail** *(dict) --* 

              Details for a revoke service period handshake.

              
              

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

                A note explaining the reason for revoking the service period.

                
              

              - **servicePeriodType** *(string) --* 

                The type of service period being revoked.

                
              

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

                The minimum number of days notice required for revocation.

                
              

              - **startDate** *(datetime) --* 

                The start date of the service period being revoked.

                
              

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

                The end date of the service period being revoked.

                
          
            

            - **programManagementAccountHandshakeDetail** *(dict) --* 

              Details for a program management account handshake.

              
              

              - **program** *(string) --* 

                The program associated with the handshake.

                
          
        
          

          - **createdAt** *(datetime) --* 

            The timestamp when the handshake was created.

            
          

          - **updatedAt** *(datetime) --* 

            The timestamp when the handshake was last updated.

            
          

          - **status** *(string) --* 

            The current status of the handshake.

            
      
    
      

      - **nextToken** *(string) --* 

        Token for retrieving the next page of results, if available.

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

  