From a64cd9b1a0a3069bf091392d2ab93cefe1a20d5a Mon Sep 17 00:00:00 2001 From: Seth Michael Larson Date: Fri, 15 Apr 2022 14:12:19 -0500 Subject: [PATCH] Update APIs to 8.2.0-SNAPSHOT --- .../_async/client/app_search.py | 184 ++++++++++++------ .../_async/client/enterprise_search.py | 2 +- .../_sync/client/app_search.py | 184 ++++++++++++------ .../_sync/client/enterprise_search.py | 2 +- 4 files changed, 250 insertions(+), 122 deletions(-) diff --git a/elastic_enterprise_search/_async/client/app_search.py b/elastic_enterprise_search/_async/client/app_search.py index 6c6fdb5..61624e5 100644 --- a/elastic_enterprise_search/_async/client/app_search.py +++ b/elastic_enterprise_search/_async/client/app_search.py @@ -583,7 +583,6 @@ async def create_crawler_crawl_rule( pattern: str, policy: t.Union["t.Literal['allow', 'deny']", str], rule: t.Union["t.Literal['begins', 'contains', 'ends', 'regex']", str], - created_at: t.Optional[str] = None, ) -> ObjectApiResponse[t.Any]: """ Creates a crawl rule for a given engine and domain @@ -596,7 +595,6 @@ async def create_crawler_crawl_rule( :param pattern: :param policy: :param rule: - :param created_at: """ if engine_name in SKIP_IN_PATH: raise ValueError("Empty value passed for parameter 'engine_name'") @@ -619,8 +617,6 @@ async def create_crawler_crawl_rule( __body["policy"] = policy if rule is not None: __body["rule"] = rule - if created_at is not None: - __body["created_at"] = created_at __headers = {"accept": "application/json", "content-type": "application/json"} return await self.perform_request( # type: ignore[return-value] "POST", @@ -642,7 +638,6 @@ async def put_crawler_crawl_rule( pattern: str, policy: t.Union["t.Literal['allow', 'deny']", str], rule: t.Union["t.Literal['begins', 'contains', 'ends', 'regex']", str], - created_at: t.Optional[str] = None, ) -> ObjectApiResponse[t.Any]: """ Updates crawl rule configuration @@ -656,7 +651,6 @@ async def put_crawler_crawl_rule( :param pattern: :param policy: :param rule: - :param created_at: """ if engine_name in SKIP_IN_PATH: raise ValueError("Empty value passed for parameter 'engine_name'") @@ -681,8 +675,6 @@ async def put_crawler_crawl_rule( __body["policy"] = policy if rule is not None: __body["rule"] = rule - if created_at is not None: - __body["created_at"] = created_at __headers = {"accept": "application/json", "content-type": "application/json"} return await self.perform_request( # type: ignore[return-value] "PUT", @@ -1027,7 +1019,6 @@ async def create_crawler_entry_point( engine_name: str, domain_id: str, value: str, - created_at: t.Optional[str] = None, ) -> ObjectApiResponse[t.Any]: """ Creates a crawler domain entry point for a given engine and domain @@ -1037,7 +1028,6 @@ async def create_crawler_entry_point( :param engine_name: Name of the engine :param domain_id: Crawler Domain ID :param value: - :param created_at: """ if engine_name in SKIP_IN_PATH: raise ValueError("Empty value passed for parameter 'engine_name'") @@ -1048,8 +1038,6 @@ async def create_crawler_entry_point( __body: t.Dict[str, t.Any] = {} if value is not None: __body["value"] = value - if created_at is not None: - __body["created_at"] = created_at __headers = {"accept": "application/json", "content-type": "application/json"} return await self.perform_request( # type: ignore[return-value] "POST", @@ -1068,7 +1056,6 @@ async def put_crawler_entry_point( domain_id: str, entry_point_id: str, value: str, - created_at: t.Optional[str] = None, ) -> ObjectApiResponse[t.Any]: """ Updates a crawler entry point with a new value @@ -1079,7 +1066,6 @@ async def put_crawler_entry_point( :param domain_id: Crawler Domain ID :param entry_point_id: Crawler Entry Point identifier :param value: - :param created_at: """ if engine_name in SKIP_IN_PATH: raise ValueError("Empty value passed for parameter 'engine_name'") @@ -1092,8 +1078,6 @@ async def put_crawler_entry_point( __body: t.Dict[str, t.Any] = {} if value is not None: __body["value"] = value - if created_at is not None: - __body["created_at"] = created_at __headers = {"accept": "application/json", "content-type": "application/json"} return await self.perform_request( # type: ignore[return-value] "PUT", @@ -1273,7 +1257,6 @@ async def create_crawler_sitemap( engine_name: str, domain_id: str, url: str, - created_at: t.Optional[str] = None, ) -> ObjectApiResponse[t.Any]: """ Creates a crawler sitemap configuration for a given engine and domain @@ -1283,7 +1266,6 @@ async def create_crawler_sitemap( :param engine_name: Name of the engine :param domain_id: Crawler Domain ID :param url: - :param created_at: """ if engine_name in SKIP_IN_PATH: raise ValueError("Empty value passed for parameter 'engine_name'") @@ -1294,8 +1276,6 @@ async def create_crawler_sitemap( __body: t.Dict[str, t.Any] = {} if url is not None: __body["url"] = url - if created_at is not None: - __body["created_at"] = created_at __headers = {"accept": "application/json", "content-type": "application/json"} return await self.perform_request( # type: ignore[return-value] "POST", @@ -1314,7 +1294,6 @@ async def put_crawler_sitemap( domain_id: str, sitemap_id: str, url: str, - created_at: t.Optional[str] = None, ) -> ObjectApiResponse[t.Any]: """ Updates sitemap configuration @@ -1325,7 +1304,6 @@ async def put_crawler_sitemap( :param domain_id: Crawler Domain ID :param sitemap_id: Sitemap ID :param url: - :param created_at: """ if engine_name in SKIP_IN_PATH: raise ValueError("Empty value passed for parameter 'engine_name'") @@ -1338,8 +1316,6 @@ async def put_crawler_sitemap( __body: t.Dict[str, t.Any] = {} if url is not None: __body["url"] = url - if created_at is not None: - __body["created_at"] = created_at __headers = {"accept": "application/json", "content-type": "application/json"} return await self.perform_request( # type: ignore[return-value] "PUT", @@ -1379,13 +1355,13 @@ async def delete_crawler_sitemap( ) @_rewrite_parameters( - body_fields=True, + body_name="body", ) async def get_crawler_url_tracing_result( self, *, engine_name: str, - url: str, + body: str, ) -> ObjectApiResponse[t.Any]: """ Returns information about the history of a given URL with the App Search Crawler. @@ -1393,15 +1369,13 @@ async def get_crawler_url_tracing_result( ``_ :param engine_name: Name of the engine - :param url: + :param body: """ if engine_name in SKIP_IN_PATH: raise ValueError("Empty value passed for parameter 'engine_name'") - if url is None: - raise ValueError("Empty value passed for parameter 'url'") - __body: t.Dict[str, t.Any] = {} - if url is not None: - __body["url"] = url + if body is None: + raise ValueError("Empty value passed for parameter 'body'") + __body = body __headers = {"accept": "application/json", "content-type": "application/json"} return await self.perform_request( # type: ignore[return-value] "POST", @@ -1411,30 +1385,13 @@ async def get_crawler_url_tracing_result( ) @_rewrite_parameters( - body_fields=True, + body_name="body", ) async def get_crawler_url_validation_result( self, *, engine_name: str, - url: str, - checks: t.Optional[ - t.Union[ - t.List[ - t.Union[ - "t.Literal['dns', 'robots_txt', 'tcp', 'url', 'url_content', 'url_request']", - str, - ] - ], - t.Tuple[ - t.Union[ - "t.Literal['dns', 'robots_txt', 'tcp', 'url', 'url_content', 'url_request']", - str, - ], - ..., - ], - ] - ] = None, + body: str, ) -> ObjectApiResponse[t.Any]: """ Performs a number of checks on a given URL to make sure it is ready to be crawled @@ -1443,18 +1400,13 @@ async def get_crawler_url_validation_result( ``_ :param engine_name: Name of the engine - :param url: - :param checks: + :param body: """ if engine_name in SKIP_IN_PATH: raise ValueError("Empty value passed for parameter 'engine_name'") - if url is None: - raise ValueError("Empty value passed for parameter 'url'") - __body: t.Dict[str, t.Any] = {} - if url is not None: - __body["url"] = url - if checks is not None: - __body["checks"] = checks + if body is None: + raise ValueError("Empty value passed for parameter 'body'") + __body = body __headers = {"accept": "application/json", "content-type": "application/json"} return await self.perform_request( # type: ignore[return-value] "POST", @@ -2186,6 +2138,42 @@ async def add_meta_engine_source( headers=__headers, ) + @_rewrite_parameters( + body_fields=True, + ) + async def search_es_search( + self, + *, + engine_name: str, + request: t.Mapping[str, t.Any], + analytics: t.Optional[t.Mapping[str, t.Any]] = None, + ) -> ObjectApiResponse[t.Any]: + """ + Execute the provided Elasticsearch search query against an App Search Engine + + ``_ + + :param engine_name: Name of the engine + :param request: + :param analytics: + """ + if engine_name in SKIP_IN_PATH: + raise ValueError("Empty value passed for parameter 'engine_name'") + if request is None: + raise ValueError("Empty value passed for parameter 'request'") + __body: t.Dict[str, t.Any] = {} + if request is not None: + __body["request"] = request + if analytics is not None: + __body["analytics"] = analytics + __headers = {"accept": "application/json", "content-type": "application/json"} + return await self.perform_request( # type: ignore[return-value] + "POST", + f"/api/as/v0/engines/{_quote(engine_name)}/elasticsearch/_search", + body=__body, + headers=__headers, + ) + @_rewrite_parameters( body_fields=True, ) @@ -2399,6 +2387,82 @@ async def search( headers=__headers, ) + @_rewrite_parameters( + body_fields=True, + ) + async def search_explain( + self, + *, + engine_name: str, + query: str, + analytics: t.Optional[t.Mapping[str, t.Any]] = None, + boost: t.Optional[t.Mapping[str, t.Any]] = None, + current_page: t.Optional[int] = None, + facets: t.Optional[t.Mapping[str, t.Any]] = None, + filters: t.Optional[t.Mapping[str, t.Any]] = None, + group: t.Optional[t.Mapping[str, t.Any]] = None, + page_size: t.Optional[int] = None, + result_fields: t.Optional[t.Mapping[str, t.Any]] = None, + search_fields: t.Optional[t.Mapping[str, t.Any]] = None, + sort: t.Optional[ + t.Union[t.List[t.Mapping[str, t.Any]], t.Tuple[t.Mapping[str, t.Any], ...]] + ] = None, + ) -> ObjectApiResponse[t.Any]: + """ + Submit a search and retrieve an Elasticsearch query + + ``_ + + :param engine_name: Name of the engine + :param query: + :param analytics: + :param boost: + :param current_page: + :param facets: + :param filters: + :param group: + :param page_size: + :param result_fields: + :param search_fields: + :param sort: + """ + if engine_name in SKIP_IN_PATH: + raise ValueError("Empty value passed for parameter 'engine_name'") + if query is None: + raise ValueError("Empty value passed for parameter 'query'") + __body: t.Dict[str, t.Any] = {} + if query is not None: + __body["query"] = query + if analytics is not None: + __body["analytics"] = analytics + if boost is not None: + __body["boost"] = boost + if current_page is not None: + __body.setdefault("page", {}) + __body["page"]["current"] = current_page + if facets is not None: + __body["facets"] = facets + if filters is not None: + __body["filters"] = filters + if group is not None: + __body["group"] = group + if page_size is not None: + __body.setdefault("page", {}) + __body["page"]["size"] = page_size + if result_fields is not None: + __body["result_fields"] = result_fields + if search_fields is not None: + __body["search_fields"] = search_fields + if sort is not None: + __body["sort"] = sort + __headers = {"accept": "application/json", "content-type": "application/json"} + return await self.perform_request( # type: ignore[return-value] + "POST", + f"/api/as/v0/engines/{_quote(engine_name)}/search_explain", + body=__body, + headers=__headers, + ) + @_rewrite_parameters() async def get_search_settings( self, diff --git a/elastic_enterprise_search/_async/client/enterprise_search.py b/elastic_enterprise_search/_async/client/enterprise_search.py index e4b3c9d..32cf1bd 100644 --- a/elastic_enterprise_search/_async/client/enterprise_search.py +++ b/elastic_enterprise_search/_async/client/enterprise_search.py @@ -109,7 +109,7 @@ async def get_version( """ Get version information for this server - ``_ + ``_ """ __headers = {"accept": "application/json"} return await self.perform_request( # type: ignore[return-value] diff --git a/elastic_enterprise_search/_sync/client/app_search.py b/elastic_enterprise_search/_sync/client/app_search.py index 1af1ea1..5d46be6 100644 --- a/elastic_enterprise_search/_sync/client/app_search.py +++ b/elastic_enterprise_search/_sync/client/app_search.py @@ -583,7 +583,6 @@ def create_crawler_crawl_rule( pattern: str, policy: t.Union["t.Literal['allow', 'deny']", str], rule: t.Union["t.Literal['begins', 'contains', 'ends', 'regex']", str], - created_at: t.Optional[str] = None, ) -> ObjectApiResponse[t.Any]: """ Creates a crawl rule for a given engine and domain @@ -596,7 +595,6 @@ def create_crawler_crawl_rule( :param pattern: :param policy: :param rule: - :param created_at: """ if engine_name in SKIP_IN_PATH: raise ValueError("Empty value passed for parameter 'engine_name'") @@ -619,8 +617,6 @@ def create_crawler_crawl_rule( __body["policy"] = policy if rule is not None: __body["rule"] = rule - if created_at is not None: - __body["created_at"] = created_at __headers = {"accept": "application/json", "content-type": "application/json"} return self.perform_request( # type: ignore[return-value] "POST", @@ -642,7 +638,6 @@ def put_crawler_crawl_rule( pattern: str, policy: t.Union["t.Literal['allow', 'deny']", str], rule: t.Union["t.Literal['begins', 'contains', 'ends', 'regex']", str], - created_at: t.Optional[str] = None, ) -> ObjectApiResponse[t.Any]: """ Updates crawl rule configuration @@ -656,7 +651,6 @@ def put_crawler_crawl_rule( :param pattern: :param policy: :param rule: - :param created_at: """ if engine_name in SKIP_IN_PATH: raise ValueError("Empty value passed for parameter 'engine_name'") @@ -681,8 +675,6 @@ def put_crawler_crawl_rule( __body["policy"] = policy if rule is not None: __body["rule"] = rule - if created_at is not None: - __body["created_at"] = created_at __headers = {"accept": "application/json", "content-type": "application/json"} return self.perform_request( # type: ignore[return-value] "PUT", @@ -1027,7 +1019,6 @@ def create_crawler_entry_point( engine_name: str, domain_id: str, value: str, - created_at: t.Optional[str] = None, ) -> ObjectApiResponse[t.Any]: """ Creates a crawler domain entry point for a given engine and domain @@ -1037,7 +1028,6 @@ def create_crawler_entry_point( :param engine_name: Name of the engine :param domain_id: Crawler Domain ID :param value: - :param created_at: """ if engine_name in SKIP_IN_PATH: raise ValueError("Empty value passed for parameter 'engine_name'") @@ -1048,8 +1038,6 @@ def create_crawler_entry_point( __body: t.Dict[str, t.Any] = {} if value is not None: __body["value"] = value - if created_at is not None: - __body["created_at"] = created_at __headers = {"accept": "application/json", "content-type": "application/json"} return self.perform_request( # type: ignore[return-value] "POST", @@ -1068,7 +1056,6 @@ def put_crawler_entry_point( domain_id: str, entry_point_id: str, value: str, - created_at: t.Optional[str] = None, ) -> ObjectApiResponse[t.Any]: """ Updates a crawler entry point with a new value @@ -1079,7 +1066,6 @@ def put_crawler_entry_point( :param domain_id: Crawler Domain ID :param entry_point_id: Crawler Entry Point identifier :param value: - :param created_at: """ if engine_name in SKIP_IN_PATH: raise ValueError("Empty value passed for parameter 'engine_name'") @@ -1092,8 +1078,6 @@ def put_crawler_entry_point( __body: t.Dict[str, t.Any] = {} if value is not None: __body["value"] = value - if created_at is not None: - __body["created_at"] = created_at __headers = {"accept": "application/json", "content-type": "application/json"} return self.perform_request( # type: ignore[return-value] "PUT", @@ -1273,7 +1257,6 @@ def create_crawler_sitemap( engine_name: str, domain_id: str, url: str, - created_at: t.Optional[str] = None, ) -> ObjectApiResponse[t.Any]: """ Creates a crawler sitemap configuration for a given engine and domain @@ -1283,7 +1266,6 @@ def create_crawler_sitemap( :param engine_name: Name of the engine :param domain_id: Crawler Domain ID :param url: - :param created_at: """ if engine_name in SKIP_IN_PATH: raise ValueError("Empty value passed for parameter 'engine_name'") @@ -1294,8 +1276,6 @@ def create_crawler_sitemap( __body: t.Dict[str, t.Any] = {} if url is not None: __body["url"] = url - if created_at is not None: - __body["created_at"] = created_at __headers = {"accept": "application/json", "content-type": "application/json"} return self.perform_request( # type: ignore[return-value] "POST", @@ -1314,7 +1294,6 @@ def put_crawler_sitemap( domain_id: str, sitemap_id: str, url: str, - created_at: t.Optional[str] = None, ) -> ObjectApiResponse[t.Any]: """ Updates sitemap configuration @@ -1325,7 +1304,6 @@ def put_crawler_sitemap( :param domain_id: Crawler Domain ID :param sitemap_id: Sitemap ID :param url: - :param created_at: """ if engine_name in SKIP_IN_PATH: raise ValueError("Empty value passed for parameter 'engine_name'") @@ -1338,8 +1316,6 @@ def put_crawler_sitemap( __body: t.Dict[str, t.Any] = {} if url is not None: __body["url"] = url - if created_at is not None: - __body["created_at"] = created_at __headers = {"accept": "application/json", "content-type": "application/json"} return self.perform_request( # type: ignore[return-value] "PUT", @@ -1379,13 +1355,13 @@ def delete_crawler_sitemap( ) @_rewrite_parameters( - body_fields=True, + body_name="body", ) def get_crawler_url_tracing_result( self, *, engine_name: str, - url: str, + body: str, ) -> ObjectApiResponse[t.Any]: """ Returns information about the history of a given URL with the App Search Crawler. @@ -1393,15 +1369,13 @@ def get_crawler_url_tracing_result( ``_ :param engine_name: Name of the engine - :param url: + :param body: """ if engine_name in SKIP_IN_PATH: raise ValueError("Empty value passed for parameter 'engine_name'") - if url is None: - raise ValueError("Empty value passed for parameter 'url'") - __body: t.Dict[str, t.Any] = {} - if url is not None: - __body["url"] = url + if body is None: + raise ValueError("Empty value passed for parameter 'body'") + __body = body __headers = {"accept": "application/json", "content-type": "application/json"} return self.perform_request( # type: ignore[return-value] "POST", @@ -1411,30 +1385,13 @@ def get_crawler_url_tracing_result( ) @_rewrite_parameters( - body_fields=True, + body_name="body", ) def get_crawler_url_validation_result( self, *, engine_name: str, - url: str, - checks: t.Optional[ - t.Union[ - t.List[ - t.Union[ - "t.Literal['dns', 'robots_txt', 'tcp', 'url', 'url_content', 'url_request']", - str, - ] - ], - t.Tuple[ - t.Union[ - "t.Literal['dns', 'robots_txt', 'tcp', 'url', 'url_content', 'url_request']", - str, - ], - ..., - ], - ] - ] = None, + body: str, ) -> ObjectApiResponse[t.Any]: """ Performs a number of checks on a given URL to make sure it is ready to be crawled @@ -1443,18 +1400,13 @@ def get_crawler_url_validation_result( ``_ :param engine_name: Name of the engine - :param url: - :param checks: + :param body: """ if engine_name in SKIP_IN_PATH: raise ValueError("Empty value passed for parameter 'engine_name'") - if url is None: - raise ValueError("Empty value passed for parameter 'url'") - __body: t.Dict[str, t.Any] = {} - if url is not None: - __body["url"] = url - if checks is not None: - __body["checks"] = checks + if body is None: + raise ValueError("Empty value passed for parameter 'body'") + __body = body __headers = {"accept": "application/json", "content-type": "application/json"} return self.perform_request( # type: ignore[return-value] "POST", @@ -2186,6 +2138,42 @@ def add_meta_engine_source( headers=__headers, ) + @_rewrite_parameters( + body_fields=True, + ) + def search_es_search( + self, + *, + engine_name: str, + request: t.Mapping[str, t.Any], + analytics: t.Optional[t.Mapping[str, t.Any]] = None, + ) -> ObjectApiResponse[t.Any]: + """ + Execute the provided Elasticsearch search query against an App Search Engine + + ``_ + + :param engine_name: Name of the engine + :param request: + :param analytics: + """ + if engine_name in SKIP_IN_PATH: + raise ValueError("Empty value passed for parameter 'engine_name'") + if request is None: + raise ValueError("Empty value passed for parameter 'request'") + __body: t.Dict[str, t.Any] = {} + if request is not None: + __body["request"] = request + if analytics is not None: + __body["analytics"] = analytics + __headers = {"accept": "application/json", "content-type": "application/json"} + return self.perform_request( # type: ignore[return-value] + "POST", + f"/api/as/v0/engines/{_quote(engine_name)}/elasticsearch/_search", + body=__body, + headers=__headers, + ) + @_rewrite_parameters( body_fields=True, ) @@ -2399,6 +2387,82 @@ def search( headers=__headers, ) + @_rewrite_parameters( + body_fields=True, + ) + def search_explain( + self, + *, + engine_name: str, + query: str, + analytics: t.Optional[t.Mapping[str, t.Any]] = None, + boost: t.Optional[t.Mapping[str, t.Any]] = None, + current_page: t.Optional[int] = None, + facets: t.Optional[t.Mapping[str, t.Any]] = None, + filters: t.Optional[t.Mapping[str, t.Any]] = None, + group: t.Optional[t.Mapping[str, t.Any]] = None, + page_size: t.Optional[int] = None, + result_fields: t.Optional[t.Mapping[str, t.Any]] = None, + search_fields: t.Optional[t.Mapping[str, t.Any]] = None, + sort: t.Optional[ + t.Union[t.List[t.Mapping[str, t.Any]], t.Tuple[t.Mapping[str, t.Any], ...]] + ] = None, + ) -> ObjectApiResponse[t.Any]: + """ + Submit a search and retrieve an Elasticsearch query + + ``_ + + :param engine_name: Name of the engine + :param query: + :param analytics: + :param boost: + :param current_page: + :param facets: + :param filters: + :param group: + :param page_size: + :param result_fields: + :param search_fields: + :param sort: + """ + if engine_name in SKIP_IN_PATH: + raise ValueError("Empty value passed for parameter 'engine_name'") + if query is None: + raise ValueError("Empty value passed for parameter 'query'") + __body: t.Dict[str, t.Any] = {} + if query is not None: + __body["query"] = query + if analytics is not None: + __body["analytics"] = analytics + if boost is not None: + __body["boost"] = boost + if current_page is not None: + __body.setdefault("page", {}) + __body["page"]["current"] = current_page + if facets is not None: + __body["facets"] = facets + if filters is not None: + __body["filters"] = filters + if group is not None: + __body["group"] = group + if page_size is not None: + __body.setdefault("page", {}) + __body["page"]["size"] = page_size + if result_fields is not None: + __body["result_fields"] = result_fields + if search_fields is not None: + __body["search_fields"] = search_fields + if sort is not None: + __body["sort"] = sort + __headers = {"accept": "application/json", "content-type": "application/json"} + return self.perform_request( # type: ignore[return-value] + "POST", + f"/api/as/v0/engines/{_quote(engine_name)}/search_explain", + body=__body, + headers=__headers, + ) + @_rewrite_parameters() def get_search_settings( self, diff --git a/elastic_enterprise_search/_sync/client/enterprise_search.py b/elastic_enterprise_search/_sync/client/enterprise_search.py index 2302fe6..12a2ff9 100644 --- a/elastic_enterprise_search/_sync/client/enterprise_search.py +++ b/elastic_enterprise_search/_sync/client/enterprise_search.py @@ -109,7 +109,7 @@ def get_version( """ Get version information for this server - ``_ + ``_ """ __headers = {"accept": "application/json"} return self.perform_request( # type: ignore[return-value]