Skip to content

Commit

Permalink
Updated opensearch-py to reflect the latest OpenSearch API spec (2024…
Browse files Browse the repository at this point in the history
…-01-25)
  • Loading branch information
web-flow committed Jan 25, 2024
1 parent 0a307a2 commit 919a093
Showing 1 changed file with 66 additions and 1 deletion.
67 changes: 66 additions & 1 deletion opensearchpy/client/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -339,7 +339,72 @@ def create(
"PUT", path, params=params, headers=headers, body=body
)


@query_params(
"if_primary_term",
"if_seq_no",
"op_type",
"pipeline",
"refresh",
"require_alias",
"routing",
"timeout",
"version",
"version_type",
"wait_for_active_shards",
)
def index(
self,
index: Any,
body: Any,
id: Any = None,
params: Any = None,
headers: Any = None,
) -> Any:
"""
Creates or updates a document in an index.
:arg index: Index name.
:arg body: The document
:arg id: Document ID.
:arg if_primary_term: only perform the operation if the last
operation that has changed the document has the specified primary term.
:arg if_seq_no: only perform the operation if the last operation
that has changed the document has the specified sequence number.
:arg op_type: Explicit operation type. Defaults to `index` for
requests with an explicit document ID, and to `create` for requests
without an explicit document ID. Valid choices are index, create.
:arg pipeline: The pipeline id to preprocess incoming documents
with.
:arg refresh: If `true` then refresh the affected shards to make
this operation visible to search, if `wait_for` then wait for a refresh
to make this operation visible to search, if `false` (the default) then
do nothing with refreshes. Valid choices are true, false, wait_for.
:arg require_alias: When true, requires destination to be an
alias. Default is false.
:arg routing: Routing value.
:arg timeout: Operation timeout.
:arg version: Explicit version number for concurrency control.
:arg version_type: Specific version type. Valid choices are
internal, external, external_gte, force.
:arg wait_for_active_shards: Sets the number of shard copies
that must be active before proceeding with the operation. Defaults to 1,
meaning the primary shard only. Set to `all` for all shard copies,
otherwise set to any non-negative value less than or equal to the total
number of copies for the shard (number of replicas + 1). Default is 1.
"""
for param in (index, body):
if param in SKIP_IN_PATH:
raise ValueError("Empty value passed for a required argument.")

return self.transport.perform_request(
"POST" if id in SKIP_IN_PATH else "PUT",
_make_path(index, "_doc", id),
params=params,
headers=headers,
body=body,
)

@query_params(
"_source",
"_source_excludes",
Expand Down

0 comments on commit 919a093

Please sign in to comment.