def search(self, asset_manager_id, **kwargs):
self.logger.info('<STR_LIT>', asset_manager_id)<EOL>search_params = {}<EOL>for k, v in kwargs.items():<EOL><INDENT>if not isinstance(v, str) and isinstance(v, Iterable):<EOL><INDENT>v = '<STR_LIT:U+002C>'.join(str(i) for i in v)<EOL><DEDENT>search_params[k] = v<EOL><DEDENT>url = '<STR_LIT>' % (self.endpoint, asset_manager_id)<EOL>response = self.session.get(url, params=search_params)<EOL>if response.ok:<EOL><INDENT>assets = [json_to_asset(json_asset) for json_asset in response.json()]<EOL>self.logger.info('<STR_LIT>', len(assets))<EOL>return assets<EOL><DEDENT>else:<EOL><INDENT>self.logger.error(response.text)<EOL>response.raise_for_status()<EOL><DEDENT>
Search for assets.

Possible kwargs:
 * client_ids: list[int]
 * asset_statuses: list
 * asset_ids: list
 * reference_types: list
 * reference_values: list
 * asset_issuer_ids: list[int]
 * asset_classes: list
 * asset_types: list
 * country_ids: list
 * currencies: list

 * include_public: bool (default = True)
 * include_data_sources: bool (default = True)

 * page_no = int(query_params.get('page_no', '1')) if query_params else None
 * page_size = int(query_params.get('page_size', '100')) if query_params else None