:doc:`Connect <../../connect>` / Paginator / SearchContactFlows

******************
SearchContactFlows
******************



.. py:class:: Connect.Paginator.SearchContactFlows

  ::

    
    paginator = client.get_paginator('search_contact_flows')

  
  

  .. py:method:: paginate(**kwargs)

    Creates an iterator that will paginate through responses from :py:meth:`Connect.Client.search_contact_flows`.

    See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/SearchContactFlows>`_    


    **Request Syntax**
    ::

      response_iterator = paginator.paginate(
          InstanceId='string',
          SearchFilter={
              'TagFilter': {
                  'OrConditions': [
                      [
                          {
                              'TagKey': 'string',
                              'TagValue': 'string'
                          },
                      ],
                  ],
                  'AndConditions': [
                      {
                          'TagKey': 'string',
                          'TagValue': 'string'
                      },
                  ],
                  'TagCondition': {
                      'TagKey': 'string',
                      'TagValue': 'string'
                  }
              },
              'FlowAttributeFilter': {
                  'OrConditions': [
                      {
                          'TagConditions': [
                              {
                                  'TagKey': 'string',
                                  'TagValue': 'string'
                              },
                          ],
                          'ContactFlowTypeCondition': {
                              'ContactFlowType': 'CONTACT_FLOW'|'CUSTOMER_QUEUE'|'CUSTOMER_HOLD'|'CUSTOMER_WHISPER'|'AGENT_HOLD'|'AGENT_WHISPER'|'OUTBOUND_WHISPER'|'AGENT_TRANSFER'|'QUEUE_TRANSFER'|'CAMPAIGN'
                          }
                      },
                  ],
                  'AndCondition': {
                      'TagConditions': [
                          {
                              'TagKey': 'string',
                              'TagValue': 'string'
                          },
                      ],
                      'ContactFlowTypeCondition': {
                          'ContactFlowType': 'CONTACT_FLOW'|'CUSTOMER_QUEUE'|'CUSTOMER_HOLD'|'CUSTOMER_WHISPER'|'AGENT_HOLD'|'AGENT_WHISPER'|'OUTBOUND_WHISPER'|'AGENT_TRANSFER'|'QUEUE_TRANSFER'|'CAMPAIGN'
                      }
                  },
                  'TagCondition': {
                      'TagKey': 'string',
                      'TagValue': 'string'
                  },
                  'ContactFlowTypeCondition': {
                      'ContactFlowType': 'CONTACT_FLOW'|'CUSTOMER_QUEUE'|'CUSTOMER_HOLD'|'CUSTOMER_WHISPER'|'AGENT_HOLD'|'AGENT_WHISPER'|'OUTBOUND_WHISPER'|'AGENT_TRANSFER'|'QUEUE_TRANSFER'|'CAMPAIGN'
                  }
              }
          },
          SearchCriteria={
              'OrConditions': [
                  {'... recursive ...'},
              ],
              'AndConditions': [
                  {'... recursive ...'},
              ],
              'StringCondition': {
                  'FieldName': 'string',
                  'Value': 'string',
                  'ComparisonType': 'STARTS_WITH'|'CONTAINS'|'EXACT'
              },
              'TypeCondition': 'CONTACT_FLOW'|'CUSTOMER_QUEUE'|'CUSTOMER_HOLD'|'CUSTOMER_WHISPER'|'AGENT_HOLD'|'AGENT_WHISPER'|'OUTBOUND_WHISPER'|'AGENT_TRANSFER'|'QUEUE_TRANSFER'|'CAMPAIGN',
              'StateCondition': 'ACTIVE'|'ARCHIVED',
              'StatusCondition': 'PUBLISHED'|'SAVED'
          },
          PaginationConfig={
              'MaxItems': 123,
              'PageSize': 123,
              'StartingToken': 'string'
          }
      )
      
    :type InstanceId: string
    :param InstanceId: **[REQUIRED]** 

      The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

      

    
    :type SearchFilter: dict
    :param SearchFilter: 

      Filters to be applied to search results.

      

    
      - **TagFilter** *(dict) --* 

        An object that can be used to specify Tag conditions inside the ``SearchFilter``. This accepts an ``OR`` of ``AND`` (List of List) input where:

         

        
        * Top level list specifies conditions that need to be applied with ``OR`` operator
         
        * Inner list specifies conditions that need to be applied with ``AND`` operator.
        

        

      
        - **OrConditions** *(list) --* 

          A list of conditions which would be applied together with an ``OR`` condition.

          

        
          - *(list) --* 

          
            - *(dict) --* 

              A leaf node condition which can be used to specify a tag condition, for example, ``HAVE BPO = 123``.

              

            
              - **TagKey** *(string) --* 

                The tag key in the tag condition.

                

              
              - **TagValue** *(string) --* 

                The tag value in the tag condition.

                

              
            
        
      
        - **AndConditions** *(list) --* 

          A list of conditions which would be applied together with an ``AND`` condition.

          

        
          - *(dict) --* 

            A leaf node condition which can be used to specify a tag condition, for example, ``HAVE BPO = 123``.

            

          
            - **TagKey** *(string) --* 

              The tag key in the tag condition.

              

            
            - **TagValue** *(string) --* 

              The tag value in the tag condition.

              

            
          
      
        - **TagCondition** *(dict) --* 

          A leaf node condition which can be used to specify a tag condition.

          

        
          - **TagKey** *(string) --* 

            The tag key in the tag condition.

            

          
          - **TagValue** *(string) --* 

            The tag value in the tag condition.

            

          
        
      
      - **FlowAttributeFilter** *(dict) --* 

        Flow attribute filter for contact flow search operations.

        

      
        - **OrConditions** *(list) --* 

          A list of conditions which would be applied together with an OR condition.

          

        
          - *(dict) --* 

            A list of conditions which would be applied together with an AND condition.

            

          
            - **TagConditions** *(list) --* 

              Tag-based conditions for contact flow filtering.

              

            
              - *(dict) --* 

                A leaf node condition which can be used to specify a tag condition, for example, ``HAVE BPO = 123``.

                

              
                - **TagKey** *(string) --* 

                  The tag key in the tag condition.

                  

                
                - **TagValue** *(string) --* 

                  The tag value in the tag condition.

                  

                
              
          
            - **ContactFlowTypeCondition** *(dict) --* 

              Contact flow type condition.

              

            
              - **ContactFlowType** *(string) --* 

                Contact flow type of the contact flow type condition.

                

              
            
          
      
        - **AndCondition** *(dict) --* 

          A list of conditions which would be applied together with a AND condition.

          

        
          - **TagConditions** *(list) --* 

            Tag-based conditions for contact flow filtering.

            

          
            - *(dict) --* 

              A leaf node condition which can be used to specify a tag condition, for example, ``HAVE BPO = 123``.

              

            
              - **TagKey** *(string) --* 

                The tag key in the tag condition.

                

              
              - **TagValue** *(string) --* 

                The tag value in the tag condition.

                

              
            
        
          - **ContactFlowTypeCondition** *(dict) --* 

            Contact flow type condition.

            

          
            - **ContactFlowType** *(string) --* 

              Contact flow type of the contact flow type condition.

              

            
          
        
        - **TagCondition** *(dict) --* 

          A leaf node condition which can be used to specify a tag condition, for example, ``HAVE BPO = 123``.

          

        
          - **TagKey** *(string) --* 

            The tag key in the tag condition.

            

          
          - **TagValue** *(string) --* 

            The tag value in the tag condition.

            

          
        
        - **ContactFlowTypeCondition** *(dict) --* 

          Contact flow type condition within attribute filter.

          

        
          - **ContactFlowType** *(string) --* 

            Contact flow type of the contact flow type condition.

            

          
        
      
    
    :type SearchCriteria: dict
    :param SearchCriteria: 

      The search criteria to be used to return flows.

       

      .. note::

        

        The ``name`` and ``description`` fields support "contains" queries with a minimum of 2 characters and a maximum of 25 characters. Any queries with character lengths outside of this range will result in invalid results.

        

      

    
      - **OrConditions** *(list) --* 

        A list of conditions which would be applied together with an ``OR`` condition.

        

      
        - *(dict) --* 

          The search criteria to be used to return flows.

          

        
    
      - **AndConditions** *(list) --* 

        A list of conditions which would be applied together with an ``AND`` condition.

        

      
        - *(dict) --* 

          The search criteria to be used to return flows.

          

        
    
      - **StringCondition** *(dict) --* 

        A leaf node condition which can be used to specify a string condition.

        

      
        - **FieldName** *(string) --* 

          The name of the field in the string condition.

          

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

          The value of the string.

          

        
        - **ComparisonType** *(string) --* 

          The type of comparison to be made when evaluating the string condition.

          

        
      
      - **TypeCondition** *(string) --* 

        The type of flow.

        

      
      - **StateCondition** *(string) --* 

        The state of the flow.

        

      
      - **StatusCondition** *(string) --* 

        The status of the flow.

        

      
    
    :type PaginationConfig: dict
    :param PaginationConfig: 

      A dictionary that provides parameters to control pagination.

      

    
      - **MaxItems** *(integer) --* 

        The total number of items to return. If the total number of items available is more than the value specified in max-items then a ``NextToken`` will be provided in the output that you can use to resume pagination.

        

      
      - **PageSize** *(integer) --* 

        The size of each page.

        

      
      - **StartingToken** *(string) --* 

        A token to specify where to start paginating. This is the ``NextToken`` from a previous response.

        

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

      
      ::

        {
            'ContactFlows': [
                {
                    'Arn': 'string',
                    'Id': 'string',
                    'Name': 'string',
                    'Type': 'CONTACT_FLOW'|'CUSTOMER_QUEUE'|'CUSTOMER_HOLD'|'CUSTOMER_WHISPER'|'AGENT_HOLD'|'AGENT_WHISPER'|'OUTBOUND_WHISPER'|'AGENT_TRANSFER'|'QUEUE_TRANSFER'|'CAMPAIGN',
                    'State': 'ACTIVE'|'ARCHIVED',
                    'Status': 'PUBLISHED'|'SAVED',
                    'Description': 'string',
                    'Content': 'string',
                    'Tags': {
                        'string': 'string'
                    },
                    'FlowContentSha256': 'string',
                    'Version': 123,
                    'VersionDescription': 'string',
                    'LastModifiedTime': datetime(2015, 1, 1),
                    'LastModifiedRegion': 'string'
                },
            ],
            'ApproximateTotalCount': 123
        }
        
      **Response Structure**

      

      - *(dict) --* 
        

        - **ContactFlows** *(list) --* 

          Information about the flows.

          
          

          - *(dict) --* 

            Contains information about a flow.

            
            

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

              The Amazon Resource Name (ARN) of the flow.

              
            

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

              The identifier of the flow.

              
            

            - **Name** *(string) --* 

              The name of the flow.

              
            

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

              The type of the flow. For descriptions of the available types, see `Choose a flow type <https://docs.aws.amazon.com/connect/latest/adminguide/create-contact-flow.html#contact-flow-types>`__ in the *Amazon Connect Administrator Guide*.

              
            

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

              The type of flow.

              
            

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

              The status of the flow.

              
            

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

              The description of the flow.

              
            

            - **Content** *(string) --* 

              The JSON string that represents the content of the flow. For an example, see `Example flow in Amazon Connect Flow language <https://docs.aws.amazon.com/connect/latest/APIReference/flow-language-example.html>`__.

               

              Length Constraints: Minimum length of 1. Maximum length of 256000.

              
            

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

              The tags used to organize, track, or control access for this resource. For example, { "Tags": {"key1":"value1", "key2":"value2"} }.

              
              

              - *(string) --* 
                

                - *(string) --* 
          
        
            

            - **FlowContentSha256** *(string) --* 

              Indicates the checksum value of the flow content.

              
            

            - **Version** *(integer) --* 

              The identifier of the flow version.

              
            

            - **VersionDescription** *(string) --* 

              The description of the flow version.

              
            

            - **LastModifiedTime** *(datetime) --* 

              The time at which the flow was last modified.

              
            

            - **LastModifiedRegion** *(string) --* 

              The region in which the flow was last modified

              
        
      
        

        - **ApproximateTotalCount** *(integer) --* 

          The total number of flows which matched your search query.

          
    