:doc:`Pricing <../../pricing>` / Paginator / GetProducts

***********
GetProducts
***********



.. py:class:: Pricing.Paginator.GetProducts

  ::

    
    paginator = client.get_paginator('get_products')

  
  

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

    Creates an iterator that will paginate through responses from :py:meth:`Pricing.Client.get_products`.

    See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/pricing-2017-10-15/GetProducts>`_    


    **Request Syntax**
    ::

      response_iterator = paginator.paginate(
          ServiceCode='string',
          Filters=[
              {
                  'Type': 'TERM_MATCH'|'EQUALS'|'CONTAINS'|'ANY_OF'|'NONE_OF',
                  'Field': 'string',
                  'Value': 'string'
              },
          ],
          FormatVersion='string',
          PaginationConfig={
              'MaxItems': 123,
              'PageSize': 123,
              'StartingToken': 'string'
          }
      )
      
    :type ServiceCode: string
    :param ServiceCode: **[REQUIRED]** 

      The code for the service whose products you want to retrieve.

      

    
    :type Filters: list
    :param Filters: 

      The list of filters that limit the returned products. only products that match all filters are returned.

      

    
      - *(dict) --* 

        The constraints that you want all returned products to match.

        

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

          The type of filter that you want to use.

           

          Valid values are:

           

          
          * ``TERM_MATCH``: Returns only products that match both the given filter field and the given value.
           
          * ``EQUALS``: Returns products that have a field value exactly matching the provided value.
           
          * ``CONTAINS``: Returns products where the field value contains the provided value as a substring.
           
          * ``ANY_OF``: Returns products where the field value is any of the provided values.
           
          * ``NONE_OF``: Returns products where the field value is not any of the provided values.
          

          

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

          The product metadata field that you want to filter on. You can filter by just the service code to see all products for a specific service, filter by just the attribute name to see a specific attribute for multiple services, or use both a service code and an attribute name to retrieve only products that match both fields.

           

          Valid values include: ``ServiceCode``, and all attribute names

           

          For example, you can filter by the ``AmazonEC2`` service code and the ``volumeType`` attribute name to get the prices for only Amazon EC2 volumes.

          

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

          The service code or attribute value that you want to filter by. If you're filtering by service code this is the actual service code, such as ``AmazonEC2``. If you're filtering by attribute name, this is the attribute value that you want the returned products to match, such as a ``Provisioned IOPS`` volume.

           

          For ``ANY_OF`` and ``NONE_OF`` filter types, you can provide multiple values as a comma-separated string. For example, ``t2.micro,t2.small,t2.medium`` or ``Compute optimized, GPU instance, Micro instances``.

          

        
      
  
    :type FormatVersion: string
    :param FormatVersion: 

      The format version that you want the response to be in.

       

      Valid values are: ``aws_v1``

      

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

      
      ::

        {
            'FormatVersion': 'string',
            'PriceList': [
                'string',
            ],
            
        }
        
      **Response Structure**

      

      - *(dict) --* 
        

        - **FormatVersion** *(string) --* 

          The format version of the response. For example, aws_v1.

          
        

        - **PriceList** *(list) --* 

          The list of products that match your filters. The list contains both the product metadata and the price information.

          
          

          - *(string) --* 
      
    