Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated opensearch-py to reflect the latest OpenSearch API spec #7

Closed
wants to merge 1 commit into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading