-
Notifications
You must be signed in to change notification settings - Fork 115
Add index block removal API #4684
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
Changes from 1 commit
686c483
47f4e21
e4941f1
7c4551a
ebbc226
fff9642
5758ef9
15ac1d0
388072a
20c04f1
c59b08b
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,90 @@ | ||
| /* | ||
| * 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. | ||
| */ | ||
|
|
||
| import { RequestBase } from '@_types/Base' | ||
| import { ExpandWildcards, IndexName } from '@_types/common' | ||
| import { Duration } from '@_types/Time' | ||
| import {IndexSettingBlocks, IndexSettings} from "../_types/IndexSettings"; | ||
|
|
||
| /** | ||
| * Remove an index block. | ||
| * | ||
| * Remove an index block from an index. | ||
| * Index blocks limit the operations allowed on an index by blocking specific operation types. | ||
| * @rest_spec_name indices.remove_block | ||
| * @availability stack since=9.1.0 stability=stable | ||
| * @availability serverless stability=stable visibility=public | ||
| * @doc_id index-block-remove | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Are there any index_privileges or cluster_privileges we need to specify? these will show up in the docs.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Good question, I'm not familiar with privileges myself, so I'll ask around.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I added the |
||
| */ | ||
| export interface Request extends RequestBase { | ||
| urls: [ | ||
| { | ||
| path: '/{index}/_block/{block}' | ||
| methods: ['DELETE'] | ||
| } | ||
| ] | ||
| path_parts: { | ||
| /** | ||
| * A comma-separated list or wildcard expression of index names used to limit the request. | ||
| * By default, you must explicitly name the indices you are removing blocks from. | ||
| * To allow the removal of blocks from indices with `_all`, `*`, or other wildcard expressions, change the `action.destructive_requires_name` setting to `false`. | ||
| * You can update this setting in the `elasticsearch.yml` file or by using the cluster update settings API. | ||
| */ | ||
| index: IndexName | ||
| /** | ||
| * The block type to remove from the index. | ||
| */ | ||
| block: keyof IndexSettingBlocks | ||
| } | ||
| query_parameters: { | ||
| /** | ||
| * If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indices. | ||
| * This behavior applies even if the request targets other open indices. | ||
| * For example, a request targeting `foo*,bar*` returns an error if an index starts with `foo` but no index starts with `bar`. | ||
| * @server_default true | ||
| */ | ||
| allow_no_indices?: boolean // default: true | ||
| /** | ||
| * The type of index that wildcard patterns can match. | ||
| * If the request can target data streams, this argument determines whether wildcard expressions match hidden data streams. | ||
| * It supports comma-separated values, such as `open,hidden`. | ||
| * @server_default open | ||
| */ | ||
| expand_wildcards?: ExpandWildcards // default: open | ||
| /** | ||
| * If `false`, the request returns an error if it targets a missing or closed index. | ||
| * @server_default false | ||
| */ | ||
| ignore_unavailable?: boolean // default: false | ||
| /** | ||
| * The period to wait for the master node. | ||
| * If the master node is not available before the timeout expires, the request fails and returns an error. | ||
| * It can also be set to `-1` to indicate that the request should never timeout. | ||
| * @server_default 30s | ||
| */ | ||
| master_timeout?: Duration // default: 30s | ||
| /** | ||
| * The period to wait for a response from all relevant nodes in the cluster after updating the cluster metadata. | ||
| * If no response is received before the timeout expires, the cluster metadata update still applies but the response will indicate that it was not completely acknowledged. | ||
| * It can also be set to `-1` to indicate that the request should never timeout. | ||
| * @server_default 30s | ||
| */ | ||
| timeout?: Duration // default: 30s | ||
| } | ||
| } | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,32 @@ | ||
| /* | ||
| * 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. | ||
| */ | ||
|
|
||
| import { IndexName } from '@_types/common' | ||
|
|
||
| export class Response { | ||
| body: { | ||
| acknowledged: boolean | ||
| indices: IndicesBlockStatus[] | ||
| } | ||
| } | ||
|
|
||
| export class IndicesBlockStatus { | ||
| name: IndexName | ||
nielsbauman marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| unblocked: boolean | ||
| } | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,34 @@ | ||
| method_request: DELETE /my-index-000001/_block/write | ||
| alternatives: | ||
| - language: Python | ||
| code: |- | ||
| resp = client.indices.remove_block( | ||
| index="my-index-000001", | ||
| block="write", | ||
| ) | ||
| - language: JavaScript | ||
| code: |- | ||
| const response = await client.indices.removeBlock({ | ||
| index: "my-index-000001", | ||
| block: "write", | ||
| }); | ||
| - language: Ruby | ||
| code: |- | ||
| response = client.indices.remove_block( | ||
| index: "my-index-000001", | ||
| block: "write" | ||
| ) | ||
| - language: PHP | ||
| code: |- | ||
| $resp = $client->indices()->removeBlock([ | ||
| "index" => "my-index-000001", | ||
| "block" => "write", | ||
| ]); | ||
| - language: curl | ||
| code: 'curl -X DELETE -H "Authorization: ApiKey $ELASTIC_API_KEY" "$ELASTICSEARCH_URL/my-index-000001/_block/write"' | ||
| - language: Java | ||
| code: | | ||
| client.indices().removeBlock(a -> a | ||
| .block(IndicesBlockOptions.Write) | ||
| .index("my-index-000001") | ||
| ); |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,12 @@ | ||
| # summary: '' | ||
nielsbauman marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| description: A successful response from `DELETE /my-index-000001/_block/write`, which removes an index block from an index.' | ||
| # type: response | ||
| # response_code: 200 | ||
| value: |- | ||
| { | ||
| "acknowledged" : true, | ||
| "indices" : [ { | ||
| "name" : "my-index-000001", | ||
| "unblocked" : true | ||
| } ] | ||
| } | ||
Uh oh!
There was an error while loading. Please reload this page.