:doc:`WAFRegional <../../waf-regional>` / Client / create_geo_match_set

********************
create_geo_match_set
********************



.. py:method:: WAFRegional.Client.create_geo_match_set(**kwargs)

  

  .. note::

    

    This is **AWS WAF Classic** documentation. For more information, see `AWS WAF Classic <https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html>`__ in the developer guide.

     

    **For the latest version of AWS WAF**, use the AWS WAFV2 API and see the `AWS WAF Developer Guide <https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html>`__. With the latest version, AWS WAF has a single set of endpoints for regional and global use.

    

   

  Creates an  GeoMatchSet, which you use to specify which web requests you want to allow or block based on the country that the requests originate from. For example, if you're receiving a lot of requests from one or more countries and you want to block the requests, you can create an ``GeoMatchSet`` that contains those countries and then configure AWS WAF to block the requests.

   

  To create and configure a ``GeoMatchSet``, perform the following steps:

   

   
  * Use  GetChangeToken to get the change token that you provide in the ``ChangeToken`` parameter of a ``CreateGeoMatchSet`` request.
   
  * Submit a ``CreateGeoMatchSet`` request.
   
  * Use ``GetChangeToken`` to get the change token that you provide in the ``ChangeToken`` parameter of an  UpdateGeoMatchSet request.
   
  * Submit an ``UpdateGeoMatchSetSet`` request to specify the countries that you want AWS WAF to watch for.
   

   

  For more information about how to use the AWS WAF API to allow or block HTTP requests, see the `AWS WAF Developer Guide <https://docs.aws.amazon.com/waf/latest/developerguide/>`__.

  

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


  **Request Syntax**
  ::

    response = client.create_geo_match_set(
        Name='string',
        ChangeToken='string'
    )
    
  :type Name: string
  :param Name: **[REQUIRED]** 

    A friendly name or description of the  GeoMatchSet. You can't change ``Name`` after you create the ``GeoMatchSet``.

    

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

    The value returned by the most recent call to  GetChangeToken.

    

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

    
    ::

      {
          'GeoMatchSet': {
              'GeoMatchSetId': 'string',
              'Name': 'string',
              'GeoMatchConstraints': [
                  {
                      'Type': 'Country',
                      'Value': 'AF'|'AX'|'AL'|'DZ'|'AS'|'AD'|'AO'|'AI'|'AQ'|'AG'|'AR'|'AM'|'AW'|'AU'|'AT'|'AZ'|'BS'|'BH'|'BD'|'BB'|'BY'|'BE'|'BZ'|'BJ'|'BM'|'BT'|'BO'|'BQ'|'BA'|'BW'|'BV'|'BR'|'IO'|'BN'|'BG'|'BF'|'BI'|'KH'|'CM'|'CA'|'CV'|'KY'|'CF'|'TD'|'CL'|'CN'|'CX'|'CC'|'CO'|'KM'|'CG'|'CD'|'CK'|'CR'|'CI'|'HR'|'CU'|'CW'|'CY'|'CZ'|'DK'|'DJ'|'DM'|'DO'|'EC'|'EG'|'SV'|'GQ'|'ER'|'EE'|'ET'|'FK'|'FO'|'FJ'|'FI'|'FR'|'GF'|'PF'|'TF'|'GA'|'GM'|'GE'|'DE'|'GH'|'GI'|'GR'|'GL'|'GD'|'GP'|'GU'|'GT'|'GG'|'GN'|'GW'|'GY'|'HT'|'HM'|'VA'|'HN'|'HK'|'HU'|'IS'|'IN'|'ID'|'IR'|'IQ'|'IE'|'IM'|'IL'|'IT'|'JM'|'JP'|'JE'|'JO'|'KZ'|'KE'|'KI'|'KP'|'KR'|'KW'|'KG'|'LA'|'LV'|'LB'|'LS'|'LR'|'LY'|'LI'|'LT'|'LU'|'MO'|'MK'|'MG'|'MW'|'MY'|'MV'|'ML'|'MT'|'MH'|'MQ'|'MR'|'MU'|'YT'|'MX'|'FM'|'MD'|'MC'|'MN'|'ME'|'MS'|'MA'|'MZ'|'MM'|'NA'|'NR'|'NP'|'NL'|'NC'|'NZ'|'NI'|'NE'|'NG'|'NU'|'NF'|'MP'|'NO'|'OM'|'PK'|'PW'|'PS'|'PA'|'PG'|'PY'|'PE'|'PH'|'PN'|'PL'|'PT'|'PR'|'QA'|'RE'|'RO'|'RU'|'RW'|'BL'|'SH'|'KN'|'LC'|'MF'|'PM'|'VC'|'WS'|'SM'|'ST'|'SA'|'SN'|'RS'|'SC'|'SL'|'SG'|'SX'|'SK'|'SI'|'SB'|'SO'|'ZA'|'GS'|'SS'|'ES'|'LK'|'SD'|'SR'|'SJ'|'SZ'|'SE'|'CH'|'SY'|'TW'|'TJ'|'TZ'|'TH'|'TL'|'TG'|'TK'|'TO'|'TT'|'TN'|'TR'|'TM'|'TC'|'TV'|'UG'|'UA'|'AE'|'GB'|'US'|'UM'|'UY'|'UZ'|'VU'|'VE'|'VN'|'VG'|'VI'|'WF'|'EH'|'YE'|'ZM'|'ZW'
                  },
              ]
          },
          'ChangeToken': 'string'
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **GeoMatchSet** *(dict) --* 

        The  GeoMatchSet returned in the ``CreateGeoMatchSet`` response. The ``GeoMatchSet`` contains no ``GeoMatchConstraints``.

        
        

        - **GeoMatchSetId** *(string) --* 

          The ``GeoMatchSetId`` for an ``GeoMatchSet``. You use ``GeoMatchSetId`` to get information about a ``GeoMatchSet`` (see  GeoMatchSet), update a ``GeoMatchSet`` (see  UpdateGeoMatchSet), insert a ``GeoMatchSet`` into a ``Rule`` or delete one from a ``Rule`` (see  UpdateRule), and delete a ``GeoMatchSet`` from AWS WAF (see  DeleteGeoMatchSet).

           

          ``GeoMatchSetId`` is returned by  CreateGeoMatchSet and by  ListGeoMatchSets.

          
        

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

          A friendly name or description of the  GeoMatchSet. You can't change the name of an ``GeoMatchSet`` after you create it.

          
        

        - **GeoMatchConstraints** *(list) --* 

          An array of  GeoMatchConstraint objects, which contain the country that you want AWS WAF to search for.

          
          

          - *(dict) --* 

            .. note::

              

              This is **AWS WAF Classic** documentation. For more information, see `AWS WAF Classic <https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html>`__ in the developer guide.

               

              **For the latest version of AWS WAF**, use the AWS WAFV2 API and see the `AWS WAF Developer Guide <https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html>`__. With the latest version, AWS WAF has a single set of endpoints for regional and global use.

              

             

            The country from which web requests originate that you want AWS WAF to search for.

            
            

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

              The type of geographical area you want AWS WAF to search for. Currently ``Country`` is the only valid value.

              
            

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

              The country that you want AWS WAF to search for.

              
        
      
    
      

      - **ChangeToken** *(string) --* 

        The ``ChangeToken`` that you used to submit the ``CreateGeoMatchSet`` request. You can also use this value to query the status of the request. For more information, see  GetChangeTokenStatus.

        
  
  **Exceptions**
  
  *   :py:class:`WAFRegional.Client.exceptions.WAFStaleDataException`

  
  *   :py:class:`WAFRegional.Client.exceptions.WAFInternalErrorException`

  
  *   :py:class:`WAFRegional.Client.exceptions.WAFInvalidAccountException`

  
  *   :py:class:`WAFRegional.Client.exceptions.WAFDisallowedNameException`

  
  *   :py:class:`WAFRegional.Client.exceptions.WAFInvalidParameterException`

  
  *   :py:class:`WAFRegional.Client.exceptions.WAFLimitsExceededException`

  