code: def get_agent_pools(self, pool_name=None, properties=None, pool_type=None, action_filter=None):
          
          query_parameters = {}
          if pool_name is not None:
              query_parameters['poolName'] = self._serialize.query('pool_name', pool_name, 'str')
          if properties is not None:
              properties = ",".join(properties)
              query_parameters['properties'] = self._serialize.query('properties', properties, 'str')
          if pool_type is not None:
              query_parameters['poolType'] = self._serialize.query('pool_type', pool_type, 'str')
          if action_filter is not None:
              query_parameters['actionFilter'] = self._serialize.query('action_filter', action_filter, 'str')
          response = self._send(http_method='GET',
                                location_id='a8c47e17-4d56-4a56-92bb-de7ea7dc65be',
                                version='5.1-preview.1',
                                query_parameters=query_parameters)
          return self._deserialize('[TaskAgentPool]', self._unwrap_collection(response))
docs: GetAgentPools.
          [Preview API] Get a list of agent pools.
          :param str pool_name: Filter by name
          :param [str] properties: Filter by agent pool properties (comma-separated)
          :param str pool_type: Filter by pool type
          :param str action_filter: Filter by whether the calling user has use or manage permissions
          :rtype: [TaskAgentPool]