<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def set_stream_class_lists(self, session_id, payload):
 """ Use this method to change layout classes for OpenTok streams. The layout classes define how the streams are displayed in the layout of a composed OpenTok archive :param String session_id: The ID of the session of the streams that will be updated :param List payload: A list defining the class lists to apply to the streams. Each element in the list is a dictionary with two properties: 'id' and 'layoutClassList'. The 'id' property is the stream ID (a String), and the 'layoutClassList' is an array of class names (Strings) to apply to the stream. For example: payload = [ {'id': '7b09ec3c-26f9-43d7-8197-f608f13d4fb6', 'layoutClassList': ['focus']}, {'id': '567bc941-6ea0-4c69-97fc-70a740b68976', 'layoutClassList': ['top']}, {'id': '307dc941-0450-4c09-975c-705740d08970', 'layoutClassList': ['bottom']} ] """

        items_payload = {'items': payload}

        endpoint = self.endpoints.set_stream_class_lists_url(session_id)
        response = requests.put(
            endpoint,
            data=json.dumps(items_payload),
            headers=self.json_headers(),
            proxies=self.proxies,
            timeout=self.timeout
        )

        if response.status_code == 200:
            pass
        elif response.status_code == 400:
            raise SetStreamClassError(
                'Invalid request. This response may indicate that data in your request data '
                'is invalid JSON. It may also indicate that you passed in invalid layout options.'
            )
        elif response.status_code == 403:
            raise AuthError('Authentication error.')
        else:
            raise RequestError('OpenTok server error.', response.status_code)