Skip to content

Commit 3c89b65

Browse files
Auto-generated API code (#2732)
1 parent f2b2117 commit 3c89b65

36 files changed

+2410
-578
lines changed

elasticsearch/_async/client/cat.py

Lines changed: 64 additions & 195 deletions
Large diffs are not rendered by default.

elasticsearch/_async/client/connector.py

Lines changed: 237 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -589,6 +589,125 @@ async def sync_job_cancel(
589589
path_parts=__path_parts,
590590
)
591591

592+
@_rewrite_parameters()
593+
@_stability_warning(Stability.EXPERIMENTAL)
594+
async def sync_job_check_in(
595+
self,
596+
*,
597+
connector_sync_job_id: str,
598+
error_trace: t.Optional[bool] = None,
599+
filter_path: t.Optional[t.Union[str, t.Sequence[str]]] = None,
600+
human: t.Optional[bool] = None,
601+
pretty: t.Optional[bool] = None,
602+
) -> ObjectApiResponse[t.Any]:
603+
"""
604+
Check in a connector sync job. Check in a connector sync job and set the `last_seen`
605+
field to the current time before updating it in the internal index. To sync data
606+
using self-managed connectors, you need to deploy the Elastic connector service
607+
on your own infrastructure. This service runs automatically on Elastic Cloud
608+
for Elastic managed connectors.
609+
610+
`<https://www.elastic.co/guide/en/elasticsearch/reference/8.17/check-in-connector-sync-job-api.html>`_
611+
612+
:param connector_sync_job_id: The unique identifier of the connector sync job
613+
to be checked in.
614+
"""
615+
if connector_sync_job_id in SKIP_IN_PATH:
616+
raise ValueError("Empty value passed for parameter 'connector_sync_job_id'")
617+
__path_parts: t.Dict[str, str] = {
618+
"connector_sync_job_id": _quote(connector_sync_job_id)
619+
}
620+
__path = (
621+
f'/_connector/_sync_job/{__path_parts["connector_sync_job_id"]}/_check_in'
622+
)
623+
__query: t.Dict[str, t.Any] = {}
624+
if error_trace is not None:
625+
__query["error_trace"] = error_trace
626+
if filter_path is not None:
627+
__query["filter_path"] = filter_path
628+
if human is not None:
629+
__query["human"] = human
630+
if pretty is not None:
631+
__query["pretty"] = pretty
632+
__headers = {"accept": "application/json"}
633+
return await self.perform_request( # type: ignore[return-value]
634+
"PUT",
635+
__path,
636+
params=__query,
637+
headers=__headers,
638+
endpoint_id="connector.sync_job_check_in",
639+
path_parts=__path_parts,
640+
)
641+
642+
@_rewrite_parameters(
643+
body_fields=("worker_hostname", "sync_cursor"),
644+
)
645+
@_stability_warning(Stability.EXPERIMENTAL)
646+
async def sync_job_claim(
647+
self,
648+
*,
649+
connector_sync_job_id: str,
650+
worker_hostname: t.Optional[str] = None,
651+
error_trace: t.Optional[bool] = None,
652+
filter_path: t.Optional[t.Union[str, t.Sequence[str]]] = None,
653+
human: t.Optional[bool] = None,
654+
pretty: t.Optional[bool] = None,
655+
sync_cursor: t.Optional[t.Any] = None,
656+
body: t.Optional[t.Dict[str, t.Any]] = None,
657+
) -> ObjectApiResponse[t.Any]:
658+
"""
659+
Claim a connector sync job. This action updates the job status to `in_progress`
660+
and sets the `last_seen` and `started_at` timestamps to the current time. Additionally,
661+
it can set the `sync_cursor` property for the sync job. This API is not intended
662+
for direct connector management by users. It supports the implementation of services
663+
that utilize the connector protocol to communicate with Elasticsearch. To sync
664+
data using self-managed connectors, you need to deploy the Elastic connector
665+
service on your own infrastructure. This service runs automatically on Elastic
666+
Cloud for Elastic managed connectors.
667+
668+
`<https://www.elastic.co/guide/en/elasticsearch/reference/8.17/claim-connector-sync-job-api.html>`_
669+
670+
:param connector_sync_job_id: The unique identifier of the connector sync job.
671+
:param worker_hostname: The host name of the current system that will run the
672+
job.
673+
:param sync_cursor: The cursor object from the last incremental sync job. This
674+
should reference the `sync_cursor` field in the connector state for which
675+
the job runs.
676+
"""
677+
if connector_sync_job_id in SKIP_IN_PATH:
678+
raise ValueError("Empty value passed for parameter 'connector_sync_job_id'")
679+
if worker_hostname is None and body is None:
680+
raise ValueError("Empty value passed for parameter 'worker_hostname'")
681+
__path_parts: t.Dict[str, str] = {
682+
"connector_sync_job_id": _quote(connector_sync_job_id)
683+
}
684+
__path = f'/_connector/_sync_job/{__path_parts["connector_sync_job_id"]}/_claim'
685+
__query: t.Dict[str, t.Any] = {}
686+
__body: t.Dict[str, t.Any] = body if body is not None else {}
687+
if error_trace is not None:
688+
__query["error_trace"] = error_trace
689+
if filter_path is not None:
690+
__query["filter_path"] = filter_path
691+
if human is not None:
692+
__query["human"] = human
693+
if pretty is not None:
694+
__query["pretty"] = pretty
695+
if not __body:
696+
if worker_hostname is not None:
697+
__body["worker_hostname"] = worker_hostname
698+
if sync_cursor is not None:
699+
__body["sync_cursor"] = sync_cursor
700+
__headers = {"accept": "application/json", "content-type": "application/json"}
701+
return await self.perform_request( # type: ignore[return-value]
702+
"PUT",
703+
__path,
704+
params=__query,
705+
headers=__headers,
706+
body=__body,
707+
endpoint_id="connector.sync_job_claim",
708+
path_parts=__path_parts,
709+
)
710+
592711
@_rewrite_parameters()
593712
@_stability_warning(Stability.BETA)
594713
async def sync_job_delete(
@@ -634,6 +753,64 @@ async def sync_job_delete(
634753
path_parts=__path_parts,
635754
)
636755

756+
@_rewrite_parameters(
757+
body_fields=("error",),
758+
)
759+
@_stability_warning(Stability.EXPERIMENTAL)
760+
async def sync_job_error(
761+
self,
762+
*,
763+
connector_sync_job_id: str,
764+
error: t.Optional[str] = None,
765+
error_trace: t.Optional[bool] = None,
766+
filter_path: t.Optional[t.Union[str, t.Sequence[str]]] = None,
767+
human: t.Optional[bool] = None,
768+
pretty: t.Optional[bool] = None,
769+
body: t.Optional[t.Dict[str, t.Any]] = None,
770+
) -> ObjectApiResponse[t.Any]:
771+
"""
772+
Set a connector sync job error. Set the `error` field for a connector sync job
773+
and set its `status` to `error`. To sync data using self-managed connectors,
774+
you need to deploy the Elastic connector service on your own infrastructure.
775+
This service runs automatically on Elastic Cloud for Elastic managed connectors.
776+
777+
`<https://www.elastic.co/guide/en/elasticsearch/reference/8.17/set-connector-sync-job-error-api.html>`_
778+
779+
:param connector_sync_job_id: The unique identifier for the connector sync job.
780+
:param error: The error for the connector sync job error field.
781+
"""
782+
if connector_sync_job_id in SKIP_IN_PATH:
783+
raise ValueError("Empty value passed for parameter 'connector_sync_job_id'")
784+
if error is None and body is None:
785+
raise ValueError("Empty value passed for parameter 'error'")
786+
__path_parts: t.Dict[str, str] = {
787+
"connector_sync_job_id": _quote(connector_sync_job_id)
788+
}
789+
__path = f'/_connector/_sync_job/{__path_parts["connector_sync_job_id"]}/_error'
790+
__query: t.Dict[str, t.Any] = {}
791+
__body: t.Dict[str, t.Any] = body if body is not None else {}
792+
if error_trace is not None:
793+
__query["error_trace"] = error_trace
794+
if filter_path is not None:
795+
__query["filter_path"] = filter_path
796+
if human is not None:
797+
__query["human"] = human
798+
if pretty is not None:
799+
__query["pretty"] = pretty
800+
if not __body:
801+
if error is not None:
802+
__body["error"] = error
803+
__headers = {"accept": "application/json", "content-type": "application/json"}
804+
return await self.perform_request( # type: ignore[return-value]
805+
"PUT",
806+
__path,
807+
params=__query,
808+
headers=__headers,
809+
body=__body,
810+
endpoint_id="connector.sync_job_error",
811+
path_parts=__path_parts,
812+
)
813+
637814
@_rewrite_parameters()
638815
@_stability_warning(Stability.BETA)
639816
async def sync_job_get(
@@ -1032,6 +1209,66 @@ async def update_error(
10321209
path_parts=__path_parts,
10331210
)
10341211

1212+
@_rewrite_parameters(
1213+
body_fields=("features",),
1214+
)
1215+
@_stability_warning(Stability.EXPERIMENTAL)
1216+
async def update_features(
1217+
self,
1218+
*,
1219+
connector_id: str,
1220+
features: t.Optional[t.Mapping[str, t.Any]] = None,
1221+
error_trace: t.Optional[bool] = None,
1222+
filter_path: t.Optional[t.Union[str, t.Sequence[str]]] = None,
1223+
human: t.Optional[bool] = None,
1224+
pretty: t.Optional[bool] = None,
1225+
body: t.Optional[t.Dict[str, t.Any]] = None,
1226+
) -> ObjectApiResponse[t.Any]:
1227+
"""
1228+
Update the connector features. Update the connector features in the connector
1229+
document. This API can be used to control the following aspects of a connector:
1230+
* document-level security * incremental syncs * advanced sync rules * basic sync
1231+
rules Normally, the running connector service automatically manages these features.
1232+
However, you can use this API to override the default behavior. To sync data
1233+
using self-managed connectors, you need to deploy the Elastic connector service
1234+
on your own infrastructure. This service runs automatically on Elastic Cloud
1235+
for Elastic managed connectors.
1236+
1237+
`<https://www.elastic.co/guide/en/elasticsearch/reference/8.17/update-connector-features-api.html>`_
1238+
1239+
:param connector_id: The unique identifier of the connector to be updated.
1240+
:param features:
1241+
"""
1242+
if connector_id in SKIP_IN_PATH:
1243+
raise ValueError("Empty value passed for parameter 'connector_id'")
1244+
if features is None and body is None:
1245+
raise ValueError("Empty value passed for parameter 'features'")
1246+
__path_parts: t.Dict[str, str] = {"connector_id": _quote(connector_id)}
1247+
__path = f'/_connector/{__path_parts["connector_id"]}/_features'
1248+
__query: t.Dict[str, t.Any] = {}
1249+
__body: t.Dict[str, t.Any] = body if body is not None else {}
1250+
if error_trace is not None:
1251+
__query["error_trace"] = error_trace
1252+
if filter_path is not None:
1253+
__query["filter_path"] = filter_path
1254+
if human is not None:
1255+
__query["human"] = human
1256+
if pretty is not None:
1257+
__query["pretty"] = pretty
1258+
if not __body:
1259+
if features is not None:
1260+
__body["features"] = features
1261+
__headers = {"accept": "application/json", "content-type": "application/json"}
1262+
return await self.perform_request( # type: ignore[return-value]
1263+
"PUT",
1264+
__path,
1265+
params=__query,
1266+
headers=__headers,
1267+
body=__body,
1268+
endpoint_id="connector.update_features",
1269+
path_parts=__path_parts,
1270+
)
1271+
10351272
@_rewrite_parameters(
10361273
body_fields=("advanced_snippet", "filtering", "rules"),
10371274
)

elasticsearch/_async/client/inference.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,21 @@ async def put(
255255
pretty: t.Optional[bool] = None,
256256
) -> ObjectApiResponse[t.Any]:
257257
"""
258-
Create an inference endpoint
258+
Create an inference endpoint. When you create an inference endpoint, the associated
259+
machine learning model is automatically deployed if it is not already running.
260+
After creating the endpoint, wait for the model deployment to complete before
261+
using it. To verify the deployment status, use the get trained model statistics
262+
API. Look for `"state": "fully_allocated"` in the response and ensure that the
263+
`"allocation_count"` matches the `"target_allocation_count"`. Avoid creating
264+
multiple endpoints for the same model unless required, as each endpoint consumes
265+
significant resources. IMPORTANT: The inference APIs enable you to use certain
266+
services, such as built-in machine learning models (ELSER, E5), models uploaded
267+
through Eland, Cohere, OpenAI, Mistral, Azure OpenAI, Google AI Studio, Google
268+
Vertex AI, Anthropic, Watsonx.ai, or Hugging Face. For built-in models and models
269+
uploaded through Eland, the inference APIs offer an alternative way to use and
270+
manage trained models. However, if you do not plan to use the inference APIs
271+
to use these models or if you want to use non-NLP models, use the machine learning
272+
trained model APIs.
259273
260274
`<https://www.elastic.co/guide/en/elasticsearch/reference/8.17/put-inference-api.html>`_
261275

0 commit comments

Comments
 (0)