<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def update_group_properties(self, group_id, group_properties, headers=None, endpoint_url=None):
 """ Update a group's properties with values provided in "group_properties" dictionary :param str group_id: group ID :param dict group_properties: group properties to update with a new values :param dict headers: custom request headers (if isn't set default values are used) :param str endpoint_url: where to send the request (if isn't set default value is used) :return: Response """

        endpoint_url = endpoint_url or self._endpoint_url

        url = endpoint_url + '/groups/' + group_id + '/properties'
        headers = headers or self._default_headers()
        payload = group_properties

        response = requests.put(url, headers=headers, json=payload)

        return response