Files
opensearch-pyd/elasticsearch/client/transform.py
T
2021-01-13 14:21:04 -06:00

232 lines
8.7 KiB
Python

# Licensed to Elasticsearch B.V. under one or more contributor
# license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright
# ownership. Elasticsearch B.V. licenses this file to you under
# the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
from .utils import SKIP_IN_PATH, NamespacedClient, _make_path, query_params
class TransformClient(NamespacedClient):
@query_params("force")
def delete_transform(self, transform_id, params=None, headers=None):
"""
Deletes an existing transform.
`<https://www.elastic.co/guide/en/elasticsearch/reference/7.x/delete-transform.html>`_
:arg transform_id: The id of the transform to delete
:arg force: When `true`, the transform is deleted regardless of
its current state. The default value is `false`, meaning that the
transform must be `stopped` before it can be deleted.
"""
if transform_id in SKIP_IN_PATH:
raise ValueError(
"Empty value passed for a required argument 'transform_id'."
)
return self.transport.perform_request(
"DELETE",
_make_path("_transform", transform_id),
params=params,
headers=headers,
)
@query_params("allow_no_match", "exclude_generated", "from_", "size")
def get_transform(self, transform_id=None, params=None, headers=None):
"""
Retrieves configuration information for transforms.
`<https://www.elastic.co/guide/en/elasticsearch/reference/7.x/get-transform.html>`_
:arg transform_id: The id or comma delimited list of id
expressions of the transforms to get, '_all' or '*' implies get all
transforms
:arg allow_no_match: Whether to ignore if a wildcard expression
matches no transforms. (This includes `_all` string or when no
transforms have been specified)
:arg exclude_generated: Omits fields that are illegal to set on
transform PUT
:arg from_: skips a number of transform configs, defaults to 0
:arg size: specifies a max number of transforms to get, defaults
to 100
"""
# from is a reserved word so it cannot be used, use from_ instead
if "from_" in params:
params["from"] = params.pop("from_")
return self.transport.perform_request(
"GET",
_make_path("_transform", transform_id),
params=params,
headers=headers,
)
@query_params("allow_no_match", "from_", "size")
def get_transform_stats(self, transform_id, params=None, headers=None):
"""
Retrieves usage information for transforms.
`<https://www.elastic.co/guide/en/elasticsearch/reference/7.x/get-transform-stats.html>`_
:arg transform_id: The id of the transform for which to get
stats. '_all' or '*' implies all transforms
:arg allow_no_match: Whether to ignore if a wildcard expression
matches no transforms. (This includes `_all` string or when no
transforms have been specified)
:arg from_: skips a number of transform stats, defaults to 0
:arg size: specifies a max number of transform stats to get,
defaults to 100
"""
# from is a reserved word so it cannot be used, use from_ instead
if "from_" in params:
params["from"] = params.pop("from_")
if transform_id in SKIP_IN_PATH:
raise ValueError(
"Empty value passed for a required argument 'transform_id'."
)
return self.transport.perform_request(
"GET",
_make_path("_transform", transform_id, "_stats"),
params=params,
headers=headers,
)
@query_params()
def preview_transform(self, body, params=None, headers=None):
"""
Previews a transform.
`<https://www.elastic.co/guide/en/elasticsearch/reference/7.x/preview-transform.html>`_
:arg body: The definition for the transform to preview
"""
if body in SKIP_IN_PATH:
raise ValueError("Empty value passed for a required argument 'body'.")
return self.transport.perform_request(
"POST", "/_transform/_preview", params=params, headers=headers, body=body
)
@query_params("defer_validation")
def put_transform(self, transform_id, body, params=None, headers=None):
"""
Instantiates a transform.
`<https://www.elastic.co/guide/en/elasticsearch/reference/7.x/put-transform.html>`_
:arg transform_id: The id of the new transform.
:arg body: The transform definition
:arg defer_validation: If validations should be deferred until
transform starts, defaults to false.
"""
for param in (transform_id, body):
if param in SKIP_IN_PATH:
raise ValueError("Empty value passed for a required argument.")
return self.transport.perform_request(
"PUT",
_make_path("_transform", transform_id),
params=params,
headers=headers,
body=body,
)
@query_params("timeout")
def start_transform(self, transform_id, params=None, headers=None):
"""
Starts one or more transforms.
`<https://www.elastic.co/guide/en/elasticsearch/reference/7.x/start-transform.html>`_
:arg transform_id: The id of the transform to start
:arg timeout: Controls the time to wait for the transform to
start
"""
if transform_id in SKIP_IN_PATH:
raise ValueError(
"Empty value passed for a required argument 'transform_id'."
)
return self.transport.perform_request(
"POST",
_make_path("_transform", transform_id, "_start"),
params=params,
headers=headers,
)
@query_params(
"allow_no_match",
"force",
"timeout",
"wait_for_checkpoint",
"wait_for_completion",
)
def stop_transform(self, transform_id, params=None, headers=None):
"""
Stops one or more transforms.
`<https://www.elastic.co/guide/en/elasticsearch/reference/7.x/stop-transform.html>`_
:arg transform_id: The id of the transform to stop
:arg allow_no_match: Whether to ignore if a wildcard expression
matches no transforms. (This includes `_all` string or when no
transforms have been specified)
:arg force: Whether to force stop a failed transform or not.
Default to false
:arg timeout: Controls the time to wait until the transform has
stopped. Default to 30 seconds
:arg wait_for_checkpoint: Whether to wait for the transform to
reach a checkpoint before stopping. Default to false
:arg wait_for_completion: Whether to wait for the transform to
fully stop before returning or not. Default to false
"""
if transform_id in SKIP_IN_PATH:
raise ValueError(
"Empty value passed for a required argument 'transform_id'."
)
return self.transport.perform_request(
"POST",
_make_path("_transform", transform_id, "_stop"),
params=params,
headers=headers,
)
@query_params("defer_validation")
def update_transform(self, transform_id, body, params=None, headers=None):
"""
Updates certain properties of a transform.
`<https://www.elastic.co/guide/en/elasticsearch/reference/7.x/update-transform.html>`_
:arg transform_id: The id of the transform.
:arg body: The update transform definition
:arg defer_validation: If validations should be deferred until
transform starts, defaults to false.
"""
for param in (transform_id, body):
if param in SKIP_IN_PATH:
raise ValueError("Empty value passed for a required argument.")
return self.transport.perform_request(
"POST",
_make_path("_transform", transform_id, "_update"),
params=params,
headers=headers,
body=body,
)