:doc:`WAF <../../waf>` / Client / update_geo_match_set

********************
update_geo_match_set
********************



.. py:method:: WAF.Client.update_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.

    

   

  Inserts or deletes  GeoMatchConstraint objects in an ``GeoMatchSet``. For each ``GeoMatchConstraint`` object, you specify the following values:

   

  
  * Whether to insert or delete the object from the array. If you want to change an ``GeoMatchConstraint`` object, you delete the existing object and add a new one.
   
  * The ``Type``. The only valid value for ``Type`` is ``Country``.
   
  * The ``Value``, which is a two character code for the country to add to the ``GeoMatchConstraint`` object. Valid codes are listed in  GeoMatchConstraint$Value.
  

   

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

   

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

   

  When you update an ``GeoMatchSet``, you specify the country that you want to add and/or the country that you want to delete. If you want to change a country, you delete the existing country and add the new one.

   

  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-2015-08-24/UpdateGeoMatchSet>`_  


  **Request Syntax**
  ::

    response = client.update_geo_match_set(
        GeoMatchSetId='string',
        ChangeToken='string',
        Updates=[
            {
                'Action': 'INSERT'|'DELETE',
                'GeoMatchConstraint': {
                    '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'
                }
            },
        ]
    )
    
  :type GeoMatchSetId: string
  :param GeoMatchSetId: **[REQUIRED]** 

    The ``GeoMatchSetId`` of the  GeoMatchSet that you want to update. ``GeoMatchSetId`` is returned by  CreateGeoMatchSet and by  ListGeoMatchSets.

    

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

    The value returned by the most recent call to  GetChangeToken.

    

  
  :type Updates: list
  :param Updates: **[REQUIRED]** 

    An array of ``GeoMatchSetUpdate`` objects that you want to insert into or delete from an  GeoMatchSet. For more information, see the applicable data types:

     

    
    *  GeoMatchSetUpdate: Contains ``Action`` and ``GeoMatchConstraint``
     
    *  GeoMatchConstraint: Contains ``Type`` and ``Value`` You can have only one ``Type`` and ``Value`` per ``GeoMatchConstraint``. To add multiple countries, include multiple ``GeoMatchSetUpdate`` objects in your request.
    

    

  
    - *(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.

        

       

      Specifies the type of update to perform to an  GeoMatchSet with  UpdateGeoMatchSet.

      

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

        Specifies whether to insert or delete a country with  UpdateGeoMatchSet.

        

      
      - **GeoMatchConstraint** *(dict) --* **[REQUIRED]** 

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

        

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

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

          

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

          The country that you want AWS WAF to search for.

          

        
      
    

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

    
    ::

      {
          'ChangeToken': 'string'
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

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

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

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

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

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

  
  *   :py:class:`WAF.Client.exceptions.WAFInvalidOperationException`

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

  
  *   :py:class:`WAF.Client.exceptions.WAFNonexistentContainerException`

  
  *   :py:class:`WAF.Client.exceptions.WAFNonexistentItemException`

  
  *   :py:class:`WAF.Client.exceptions.WAFReferencedItemException`

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

  