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

Add the documentation of create or update alias API #7641

Merged
merged 14 commits into from
Jul 23, 2024
83 changes: 83 additions & 0 deletions _api-reference/index-apis/update-alias.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
---
layout: default
title: Create or update alias
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this be in title case if it's the name of the API?

Naarcha-AWS marked this conversation as resolved.
Show resolved Hide resolved
parent: Index APIs
nav_order: 5
---

# Create or update alias
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same

Naarcha-AWS marked this conversation as resolved.
Show resolved Hide resolved
**Introduced 1.0**
{: .label .label-purple }

The Create or update alias API adds a data stream or index to an alias or updates the settings for an existing alias. For more Alias API operations, see [Index aliases]({{site.url}}{{site.baseurl}}/opensearch/index-alias/).
Naarcha-AWS marked this conversation as resolved.
Show resolved Hide resolved

The Create of update alias API is distinct from the [Alias API]({{site.url}}{{site.baseurl}}/opensearch/rest-api/alias/), which supports the adding and removal of aliases and the removal of alias indexes. In contrast, the following API only supports adding or updating an alias without updating the index itself. Each API also uses different request body parameters.
Naarcha-AWS marked this conversation as resolved.
Show resolved Hide resolved
{: .note}

## Path and HTTP methods

```
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

json?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not for these. They are meant to be copy and pasted individually depending on what endpoint the user selects.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Naarcha-AWS Based on the API template, shouldn't this have highlighting, though? @kolchfa-aws Can you verify?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, even though the path and HTTP method are not part of JSON, we still have the json formatting tag on these for consistency.

POST /<target>/_alias/<alias-name>
PUT /<target>/_alias/<alias-name>
POST /_alias/<alias-name>
PUT /_alias/<alias-name>
POST /<target>/_aliases/<alias-name>
PUT /<target>/_aliases/<alias-name>
POST /_aliases/<alias-name>
PUT /_aliases/<alias-name>
PUT /<target>/_alias
PUT /<target>/_aliases
PUT /_alias
```

## Path parameters

| Parameter | Type | Description |
:--- | :--- | :---
| `target` | String | A comma-delimited list of data streams, indexes. Wildcard expressions (`*`) are supported. To target all data streams and indexes in a cluster, use `_all` or `*`. Optional. |
natebower marked this conversation as resolved.
Show resolved Hide resolved
| `alias-name` | String | The alias name to be created or updated. Optional. |

## Query parameters

All query parameters are optional.

Parameter | Type | Description
:--- | :--- | :---
`cluster_manager_timeout` | Time | The amount of time to wait for a response from the cluster manager node. Default is `30s`.
`timeout` | Time | The amount of time to wait for a response from the cluster. Default is `30s`.

## Request body

In the request body, you can specify the index name, the alias name, and the settings for the alias. All fields are optional.

Field | Type | Description
:--- | :--- | :--- | :---
`index` | String | Comma-delimited list of data streams or indexes you want to associate with the alias. If this field is set, it will override the index name specified in the URL path.
Naarcha-AWS marked this conversation as resolved.
Show resolved Hide resolved
`alias` | String | The name of the alias. If this field is set, it will override the alias name specified in the URL path.
`is_write_index` | Boolean | Specifies whether the index should be a write index. An alias can only have one write index at a time. If a write request is submitted to a alias that links to multiple indexes, OpenSearch runs the request only on the write index.
Naarcha-AWS marked this conversation as resolved.
Show resolved Hide resolved
`routing` | String | Assigns a custom value to a shard for specific operations.
`index_routing` | String | Assigns a custom value to a shard only for index operations.
`search_routing` | String | Assigns a custom value to a shard only for search operations.
`filter` | Object | A filter to use with the alias, so the alias points to a filtered part of the index.
Naarcha-AWS marked this conversation as resolved.
Show resolved Hide resolved

## Example request

The following example request adds a sample alias with a custom routing value:

```json
POST sample-index/_alias/sample-alias
{
"routing":"test"
}
```
{% include copy-curl.html %}

## Example response

```json
{
"acknowledged": true
}
```

For more alias API operations, see [Index aliases]({{site.url}}{{site.baseurl}}/opensearch/index-alias/).
Loading