elasticsearch 8.17.0__py3-none-any.whl → 8.17.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. elasticsearch/_async/client/__init__.py +153 -51
  2. elasticsearch/_async/client/cat.py +64 -195
  3. elasticsearch/_async/client/cluster.py +19 -19
  4. elasticsearch/_async/client/connector.py +337 -0
  5. elasticsearch/_async/client/dangling_indices.py +3 -3
  6. elasticsearch/_async/client/ilm.py +6 -6
  7. elasticsearch/_async/client/indices.py +360 -81
  8. elasticsearch/_async/client/inference.py +94 -1
  9. elasticsearch/_async/client/ingest.py +175 -2
  10. elasticsearch/_async/client/logstash.py +9 -6
  11. elasticsearch/_async/client/migration.py +16 -7
  12. elasticsearch/_async/client/ml.py +12 -6
  13. elasticsearch/_async/client/monitoring.py +2 -1
  14. elasticsearch/_async/client/nodes.py +3 -3
  15. elasticsearch/_async/client/query_rules.py +33 -12
  16. elasticsearch/_async/client/rollup.py +88 -13
  17. elasticsearch/_async/client/search_application.py +130 -1
  18. elasticsearch/_async/client/searchable_snapshots.py +32 -23
  19. elasticsearch/_async/client/security.py +676 -55
  20. elasticsearch/_async/client/shutdown.py +38 -15
  21. elasticsearch/_async/client/simulate.py +151 -0
  22. elasticsearch/_async/client/slm.py +138 -19
  23. elasticsearch/_async/client/snapshot.py +307 -23
  24. elasticsearch/_async/client/sql.py +66 -46
  25. elasticsearch/_async/client/synonyms.py +39 -19
  26. elasticsearch/_async/client/tasks.py +68 -28
  27. elasticsearch/_async/client/text_structure.py +466 -46
  28. elasticsearch/_async/client/transform.py +9 -2
  29. elasticsearch/_async/client/watcher.py +207 -41
  30. elasticsearch/_async/client/xpack.py +11 -6
  31. elasticsearch/_sync/client/__init__.py +153 -51
  32. elasticsearch/_sync/client/cat.py +64 -195
  33. elasticsearch/_sync/client/cluster.py +19 -19
  34. elasticsearch/_sync/client/connector.py +337 -0
  35. elasticsearch/_sync/client/dangling_indices.py +3 -3
  36. elasticsearch/_sync/client/ilm.py +6 -6
  37. elasticsearch/_sync/client/indices.py +360 -81
  38. elasticsearch/_sync/client/inference.py +94 -1
  39. elasticsearch/_sync/client/ingest.py +175 -2
  40. elasticsearch/_sync/client/logstash.py +9 -6
  41. elasticsearch/_sync/client/migration.py +16 -7
  42. elasticsearch/_sync/client/ml.py +12 -6
  43. elasticsearch/_sync/client/monitoring.py +2 -1
  44. elasticsearch/_sync/client/nodes.py +3 -3
  45. elasticsearch/_sync/client/query_rules.py +33 -12
  46. elasticsearch/_sync/client/rollup.py +88 -13
  47. elasticsearch/_sync/client/search_application.py +130 -1
  48. elasticsearch/_sync/client/searchable_snapshots.py +32 -23
  49. elasticsearch/_sync/client/security.py +676 -55
  50. elasticsearch/_sync/client/shutdown.py +38 -15
  51. elasticsearch/_sync/client/simulate.py +151 -0
  52. elasticsearch/_sync/client/slm.py +138 -19
  53. elasticsearch/_sync/client/snapshot.py +307 -23
  54. elasticsearch/_sync/client/sql.py +66 -46
  55. elasticsearch/_sync/client/synonyms.py +39 -19
  56. elasticsearch/_sync/client/tasks.py +68 -28
  57. elasticsearch/_sync/client/text_structure.py +466 -46
  58. elasticsearch/_sync/client/transform.py +9 -2
  59. elasticsearch/_sync/client/watcher.py +207 -41
  60. elasticsearch/_sync/client/xpack.py +11 -6
  61. elasticsearch/_version.py +1 -1
  62. elasticsearch/client.py +2 -0
  63. {elasticsearch-8.17.0.dist-info → elasticsearch-8.17.1.dist-info}/METADATA +1 -1
  64. elasticsearch-8.17.1.dist-info/RECORD +119 -0
  65. elasticsearch-8.17.0.dist-info/RECORD +0 -117
  66. {elasticsearch-8.17.0.dist-info → elasticsearch-8.17.1.dist-info}/WHEEL +0 -0
  67. {elasticsearch-8.17.0.dist-info → elasticsearch-8.17.1.dist-info}/licenses/LICENSE +0 -0
  68. {elasticsearch-8.17.0.dist-info → elasticsearch-8.17.1.dist-info}/licenses/NOTICE +0 -0
@@ -119,9 +119,8 @@ class ClusterClient(NamespacedClient):
119
119
  timeout: t.Optional[t.Union[str, t.Literal[-1], t.Literal[0]]] = None,
120
120
  ) -> ObjectApiResponse[t.Any]:
121
121
  """
122
- Delete component templates. Deletes component templates. Component templates
123
- are building blocks for constructing index templates that specify index mappings,
124
- settings, and aliases.
122
+ Delete component templates. Component templates are building blocks for constructing
123
+ index templates that specify index mappings, settings, and aliases.
125
124
 
126
125
  `<https://www.elastic.co/guide/en/elasticsearch/reference/8.17/indices-component-template.html>`_
127
126
 
@@ -275,7 +274,7 @@ class ClusterClient(NamespacedClient):
275
274
  pretty: t.Optional[bool] = None,
276
275
  ) -> ObjectApiResponse[t.Any]:
277
276
  """
278
- Get component templates. Retrieves information about component templates.
277
+ Get component templates. Get information about component templates.
279
278
 
280
279
  `<https://www.elastic.co/guide/en/elasticsearch/reference/8.17/indices-component-template.html>`_
281
280
 
@@ -719,20 +718,21 @@ class ClusterClient(NamespacedClient):
719
718
  body: t.Optional[t.Dict[str, t.Any]] = None,
720
719
  ) -> ObjectApiResponse[t.Any]:
721
720
  """
722
- Create or update a component template. Creates or updates a component template.
723
- Component templates are building blocks for constructing index templates that
724
- specify index mappings, settings, and aliases. An index template can be composed
725
- of multiple component templates. To use a component template, specify it in an
726
- index template’s `composed_of` list. Component templates are only applied to
727
- new data streams and indices as part of a matching index template. Settings and
728
- mappings specified directly in the index template or the create index request
729
- override any settings or mappings specified in a component template. Component
730
- templates are only used during index creation. For data streams, this includes
731
- data stream creation and the creation of a stream’s backing indices. Changes
732
- to component templates do not affect existing indices, including a stream’s backing
733
- indices. You can use C-style `/* *\\/` block comments in component templates.
721
+ Create or update a component template. Component templates are building blocks
722
+ for constructing index templates that specify index mappings, settings, and aliases.
723
+ An index template can be composed of multiple component templates. To use a component
724
+ template, specify it in an index template’s `composed_of` list. Component templates
725
+ are only applied to new data streams and indices as part of a matching index
726
+ template. Settings and mappings specified directly in the index template or the
727
+ create index request override any settings or mappings specified in a component
728
+ template. Component templates are only used during index creation. For data streams,
729
+ this includes data stream creation and the creation of a stream’s backing indices.
730
+ Changes to component templates do not affect existing indices, including a stream’s
731
+ backing indices. You can use C-style `/* *\\/` block comments in component templates.
734
732
  You can include comments anywhere in the request body except before the opening
735
- curly bracket.
733
+ curly bracket. **Applying component templates** You cannot directly apply a component
734
+ template to a data stream or index. To be applied, a component template must
735
+ be included in an index template's `composed_of` list.
736
736
 
737
737
  `<https://www.elastic.co/guide/en/elasticsearch/reference/8.17/indices-component-template.html>`_
738
738
 
@@ -755,8 +755,8 @@ class ClusterClient(NamespacedClient):
755
755
  :param master_timeout: Period to wait for a connection to the master node. If
756
756
  no response is received before the timeout expires, the request fails and
757
757
  returns an error.
758
- :param meta: Optional user metadata about the component template. May have any
759
- contents. This map is not automatically generated by Elasticsearch. This
758
+ :param meta: Optional user metadata about the component template. It may have
759
+ any contents. This map is not automatically generated by Elasticsearch. This
760
760
  information is stored in the cluster state, so keeping it short is preferable.
761
761
  To unset `_meta`, replace the template without specifying this information.
762
762
  :param version: Version number used to manage component templates externally.
@@ -589,6 +589,125 @@ class ConnectorClient(NamespacedClient):
589
589
  path_parts=__path_parts,
590
590
  )
591
591
 
592
+ @_rewrite_parameters()
593
+ @_stability_warning(Stability.EXPERIMENTAL)
594
+ 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 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
+ 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 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
+
592
711
  @_rewrite_parameters()
593
712
  @_stability_warning(Stability.BETA)
594
713
  def sync_job_delete(
@@ -634,6 +753,64 @@ class ConnectorClient(NamespacedClient):
634
753
  path_parts=__path_parts,
635
754
  )
636
755
 
756
+ @_rewrite_parameters(
757
+ body_fields=("error",),
758
+ )
759
+ @_stability_warning(Stability.EXPERIMENTAL)
760
+ 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 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
+
637
814
  @_rewrite_parameters()
638
815
  @_stability_warning(Stability.BETA)
639
816
  def sync_job_get(
@@ -819,6 +996,106 @@ class ConnectorClient(NamespacedClient):
819
996
  path_parts=__path_parts,
820
997
  )
821
998
 
999
+ @_rewrite_parameters(
1000
+ body_fields=(
1001
+ "deleted_document_count",
1002
+ "indexed_document_count",
1003
+ "indexed_document_volume",
1004
+ "last_seen",
1005
+ "metadata",
1006
+ "total_document_count",
1007
+ ),
1008
+ )
1009
+ @_stability_warning(Stability.EXPERIMENTAL)
1010
+ def sync_job_update_stats(
1011
+ self,
1012
+ *,
1013
+ connector_sync_job_id: str,
1014
+ deleted_document_count: t.Optional[int] = None,
1015
+ indexed_document_count: t.Optional[int] = None,
1016
+ indexed_document_volume: t.Optional[int] = None,
1017
+ error_trace: t.Optional[bool] = None,
1018
+ filter_path: t.Optional[t.Union[str, t.Sequence[str]]] = None,
1019
+ human: t.Optional[bool] = None,
1020
+ last_seen: t.Optional[t.Union[str, t.Literal[-1], t.Literal[0]]] = None,
1021
+ metadata: t.Optional[t.Mapping[str, t.Any]] = None,
1022
+ pretty: t.Optional[bool] = None,
1023
+ total_document_count: t.Optional[int] = None,
1024
+ body: t.Optional[t.Dict[str, t.Any]] = None,
1025
+ ) -> ObjectApiResponse[t.Any]:
1026
+ """
1027
+ Set the connector sync job stats. Stats include: `deleted_document_count`, `indexed_document_count`,
1028
+ `indexed_document_volume`, and `total_document_count`. You can also update `last_seen`.
1029
+ This API is mainly used by the connector service for updating sync job information.
1030
+ To sync data using self-managed connectors, you need to deploy the Elastic connector
1031
+ service on your own infrastructure. This service runs automatically on Elastic
1032
+ Cloud for Elastic managed connectors.
1033
+
1034
+ `<https://www.elastic.co/guide/en/elasticsearch/reference/8.17/set-connector-sync-job-stats-api.html>`_
1035
+
1036
+ :param connector_sync_job_id: The unique identifier of the connector sync job.
1037
+ :param deleted_document_count: The number of documents the sync job deleted.
1038
+ :param indexed_document_count: The number of documents the sync job indexed.
1039
+ :param indexed_document_volume: The total size of the data (in MiB) the sync
1040
+ job indexed.
1041
+ :param last_seen: The timestamp to use in the `last_seen` property for the connector
1042
+ sync job.
1043
+ :param metadata: The connector-specific metadata.
1044
+ :param total_document_count: The total number of documents in the target index
1045
+ after the sync job finished.
1046
+ """
1047
+ if connector_sync_job_id in SKIP_IN_PATH:
1048
+ raise ValueError("Empty value passed for parameter 'connector_sync_job_id'")
1049
+ if deleted_document_count is None and body is None:
1050
+ raise ValueError(
1051
+ "Empty value passed for parameter 'deleted_document_count'"
1052
+ )
1053
+ if indexed_document_count is None and body is None:
1054
+ raise ValueError(
1055
+ "Empty value passed for parameter 'indexed_document_count'"
1056
+ )
1057
+ if indexed_document_volume is None and body is None:
1058
+ raise ValueError(
1059
+ "Empty value passed for parameter 'indexed_document_volume'"
1060
+ )
1061
+ __path_parts: t.Dict[str, str] = {
1062
+ "connector_sync_job_id": _quote(connector_sync_job_id)
1063
+ }
1064
+ __path = f'/_connector/_sync_job/{__path_parts["connector_sync_job_id"]}/_stats'
1065
+ __query: t.Dict[str, t.Any] = {}
1066
+ __body: t.Dict[str, t.Any] = body if body is not None else {}
1067
+ if error_trace is not None:
1068
+ __query["error_trace"] = error_trace
1069
+ if filter_path is not None:
1070
+ __query["filter_path"] = filter_path
1071
+ if human is not None:
1072
+ __query["human"] = human
1073
+ if pretty is not None:
1074
+ __query["pretty"] = pretty
1075
+ if not __body:
1076
+ if deleted_document_count is not None:
1077
+ __body["deleted_document_count"] = deleted_document_count
1078
+ if indexed_document_count is not None:
1079
+ __body["indexed_document_count"] = indexed_document_count
1080
+ if indexed_document_volume is not None:
1081
+ __body["indexed_document_volume"] = indexed_document_volume
1082
+ if last_seen is not None:
1083
+ __body["last_seen"] = last_seen
1084
+ if metadata is not None:
1085
+ __body["metadata"] = metadata
1086
+ if total_document_count is not None:
1087
+ __body["total_document_count"] = total_document_count
1088
+ __headers = {"accept": "application/json", "content-type": "application/json"}
1089
+ return self.perform_request( # type: ignore[return-value]
1090
+ "PUT",
1091
+ __path,
1092
+ params=__query,
1093
+ headers=__headers,
1094
+ body=__body,
1095
+ endpoint_id="connector.sync_job_update_stats",
1096
+ path_parts=__path_parts,
1097
+ )
1098
+
822
1099
  @_rewrite_parameters()
823
1100
  @_stability_warning(Stability.EXPERIMENTAL)
824
1101
  def update_active_filtering(
@@ -1032,6 +1309,66 @@ class ConnectorClient(NamespacedClient):
1032
1309
  path_parts=__path_parts,
1033
1310
  )
1034
1311
 
1312
+ @_rewrite_parameters(
1313
+ body_fields=("features",),
1314
+ )
1315
+ @_stability_warning(Stability.EXPERIMENTAL)
1316
+ def update_features(
1317
+ self,
1318
+ *,
1319
+ connector_id: str,
1320
+ features: t.Optional[t.Mapping[str, t.Any]] = None,
1321
+ error_trace: t.Optional[bool] = None,
1322
+ filter_path: t.Optional[t.Union[str, t.Sequence[str]]] = None,
1323
+ human: t.Optional[bool] = None,
1324
+ pretty: t.Optional[bool] = None,
1325
+ body: t.Optional[t.Dict[str, t.Any]] = None,
1326
+ ) -> ObjectApiResponse[t.Any]:
1327
+ """
1328
+ Update the connector features. Update the connector features in the connector
1329
+ document. This API can be used to control the following aspects of a connector:
1330
+ * document-level security * incremental syncs * advanced sync rules * basic sync
1331
+ rules Normally, the running connector service automatically manages these features.
1332
+ However, you can use this API to override the default behavior. To sync data
1333
+ using self-managed connectors, you need to deploy the Elastic connector service
1334
+ on your own infrastructure. This service runs automatically on Elastic Cloud
1335
+ for Elastic managed connectors.
1336
+
1337
+ `<https://www.elastic.co/guide/en/elasticsearch/reference/8.17/update-connector-features-api.html>`_
1338
+
1339
+ :param connector_id: The unique identifier of the connector to be updated.
1340
+ :param features:
1341
+ """
1342
+ if connector_id in SKIP_IN_PATH:
1343
+ raise ValueError("Empty value passed for parameter 'connector_id'")
1344
+ if features is None and body is None:
1345
+ raise ValueError("Empty value passed for parameter 'features'")
1346
+ __path_parts: t.Dict[str, str] = {"connector_id": _quote(connector_id)}
1347
+ __path = f'/_connector/{__path_parts["connector_id"]}/_features'
1348
+ __query: t.Dict[str, t.Any] = {}
1349
+ __body: t.Dict[str, t.Any] = body if body is not None else {}
1350
+ if error_trace is not None:
1351
+ __query["error_trace"] = error_trace
1352
+ if filter_path is not None:
1353
+ __query["filter_path"] = filter_path
1354
+ if human is not None:
1355
+ __query["human"] = human
1356
+ if pretty is not None:
1357
+ __query["pretty"] = pretty
1358
+ if not __body:
1359
+ if features is not None:
1360
+ __body["features"] = features
1361
+ __headers = {"accept": "application/json", "content-type": "application/json"}
1362
+ return self.perform_request( # type: ignore[return-value]
1363
+ "PUT",
1364
+ __path,
1365
+ params=__query,
1366
+ headers=__headers,
1367
+ body=__body,
1368
+ endpoint_id="connector.update_features",
1369
+ path_parts=__path_parts,
1370
+ )
1371
+
1035
1372
  @_rewrite_parameters(
1036
1373
  body_fields=("advanced_snippet", "filtering", "rules"),
1037
1374
  )
@@ -44,7 +44,7 @@ class DanglingIndicesClient(NamespacedClient):
44
44
  For example, this can happen if you delete more than `cluster.indices.tombstones.size`
45
45
  indices while an Elasticsearch node is offline.
46
46
 
47
- `<https://www.elastic.co/guide/en/elasticsearch/reference/8.17/modules-gateway-dangling-indices.html>`_
47
+ `<https://www.elastic.co/guide/en/elasticsearch/reference/8.17/dangling-index-delete.html>`_
48
48
 
49
49
  :param index_uuid: The UUID of the index to delete. Use the get dangling indices
50
50
  API to find the UUID.
@@ -103,7 +103,7 @@ class DanglingIndicesClient(NamespacedClient):
103
103
  For example, this can happen if you delete more than `cluster.indices.tombstones.size`
104
104
  indices while an Elasticsearch node is offline.
105
105
 
106
- `<https://www.elastic.co/guide/en/elasticsearch/reference/8.17/modules-gateway-dangling-indices.html>`_
106
+ `<https://www.elastic.co/guide/en/elasticsearch/reference/8.17/dangling-index-import.html>`_
107
107
 
108
108
  :param index_uuid: The UUID of the index to import. Use the get dangling indices
109
109
  API to locate the UUID.
@@ -162,7 +162,7 @@ class DanglingIndicesClient(NamespacedClient):
162
162
  indices while an Elasticsearch node is offline. Use this API to list dangling
163
163
  indices, which you can then import or delete.
164
164
 
165
- `<https://www.elastic.co/guide/en/elasticsearch/reference/8.17/modules-gateway-dangling-indices.html>`_
165
+ `<https://www.elastic.co/guide/en/elasticsearch/reference/8.17/dangling-indices-list.html>`_
166
166
  """
167
167
  __path_parts: t.Dict[str, str] = {}
168
168
  __path = "/_dangling"
@@ -341,8 +341,8 @@ class IlmClient(NamespacedClient):
341
341
  `<https://www.elastic.co/guide/en/elasticsearch/reference/8.17/ilm-move-to-step.html>`_
342
342
 
343
343
  :param index: The name of the index whose lifecycle step is to change
344
- :param current_step:
345
- :param next_step:
344
+ :param current_step: The step that the index is expected to be in.
345
+ :param next_step: The step that you want to run.
346
346
  """
347
347
  if index in SKIP_IN_PATH:
348
348
  raise ValueError("Empty value passed for parameter 'index'")
@@ -552,8 +552,8 @@ class IlmClient(NamespacedClient):
552
552
 
553
553
  `<https://www.elastic.co/guide/en/elasticsearch/reference/8.17/ilm-start.html>`_
554
554
 
555
- :param master_timeout:
556
- :param timeout:
555
+ :param master_timeout: Explicit operation timeout for connection to master node
556
+ :param timeout: Explicit operation timeout
557
557
  """
558
558
  __path_parts: t.Dict[str, str] = {}
559
559
  __path = "/_ilm/start"
@@ -601,8 +601,8 @@ class IlmClient(NamespacedClient):
601
601
 
602
602
  `<https://www.elastic.co/guide/en/elasticsearch/reference/8.17/ilm-stop.html>`_
603
603
 
604
- :param master_timeout:
605
- :param timeout:
604
+ :param master_timeout: Explicit operation timeout for connection to master node
605
+ :param timeout: Explicit operation timeout
606
606
  """
607
607
  __path_parts: t.Dict[str, str] = {}
608
608
  __path = "/_ilm/stop"