Updated on 2025-08-15 GMT+08:00

Modifying Cluster Parameters

Function

This API is used to modify the parameter settings of a cluster.

Set the values of any custom parameters to those that are supported by Elasticsearch. Otherwise, the cluster will fail to be restarted. Exercise caution when performing this operation.

Calling Method

For details, see Calling APIs.

URI

POST /v1.0/{project_id}/clusters/{cluster_id}/ymls/update

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Definition:

Project ID. For details about how to obtain the project ID and name, see Obtaining the Project ID and Name.

Constraints:

N/A

Value range:

Project ID of the account.

Default value:

N/A

cluster_id

Yes

String

Definition:

ID of the cluster whose parameter settings you want to be modify. For details about how to obtain the cluster ID, see Obtaining the Cluster ID.

Constraints:

N/A

Value range:

Cluster ID.

Default value:

N/A

Request Parameters

Table 2 Request body parameters

Parameter

Mandatory

Type

Description

edit

Yes

UpdateYmlsReqEdit object

Definition:

Configuration file information.

Constraints:

N/A

Value range:

  • modify: Modify parameter settings.

  • delete: Delete parameter settings.

  • reset: Reset parameter settings.

Default value:

N/A

Table 3 UpdateYmlsReqEdit

Parameter

Mandatory

Type

Description

modify

Yes

UpdateYmlsReqEditModify object

Definition:

Modify parameter settings.

Constraints:

N/A

Value range:

N/A

Default value:

N/A

delete

No

UpdateYmlsReqEditModify object

Definition:

Delete custom parameter settings. This operation does not affect parameter values transferred in.

Value range:

N/A

reset

No

UpdateYmlsReqEditModify object

Definition:

Reset parameter settings. This operation does not affect parameter values transferred in.

Value range:

N/A

Table 4 UpdateYmlsReqEditModify

Parameter

Mandatory

Type

Description

elasticsearch.yml

Yes

Object

Definition:

Parameter configuration list. The value is the JSON data you want to modify.

Constraints:

N/A

Value range:

N/A

Default value:

N/A

Response Parameters

Status code: 200

Table 5 Response body parameters

Parameter

Type

Description

acknowledged

Boolean

Definition:

Whether the modification is successful.

Value range:

  • true: The modification is successful.

  • false: The modification fails.

externalMessage

String

Definition:

Error description. If acknowledged was set to true, null is returned for this field.

Value range:

N/A

httpErrorResponse

String

Definition:

HTTP error information. The default value is null.

Value range:

N/A

Example Requests

Modify parameter settings.

POST https://{Endpoint}/v1.0/{project_id}/clusters/4f3deec3-efa8-4598-bf91-560aad1377a3/ymls/update

{
  "edit" : {
    "modify" : {
      "elasticsearch.yml" : {
        "thread_pool.force_merge.size" : 1
      }
    }
  }
}

Example Responses

Status code: 200

Request succeeded.

{
  "acknowledged" : true
}

SDK Sample Code

The SDK sample code is as follows.

Java

Modify parameter settings.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package com.huaweicloud.sdk.test;

import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.css.v1.region.CssRegion;
import com.huaweicloud.sdk.css.v1.*;
import com.huaweicloud.sdk.css.v1.model.*;


public class UpdateYmlsSolution {

    public static void main(String[] args) {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        String ak = System.getenv("CLOUD_SDK_AK");
        String sk = System.getenv("CLOUD_SDK_SK");
        String projectId = "{project_id}";

        ICredential auth = new BasicCredentials()
                .withProjectId(projectId)
                .withAk(ak)
                .withSk(sk);

        CssClient client = CssClient.newBuilder()
                .withCredential(auth)
                .withRegion(CssRegion.valueOf("<YOUR REGION>"))
                .build();
        UpdateYmlsRequest request = new UpdateYmlsRequest();
        request.withClusterId("{cluster_id}");
        UpdateYmlsReq body = new UpdateYmlsReq();
        UpdateYmlsReqEditModify modifyEdit = new UpdateYmlsReqEditModify();
        modifyEdit.withElasticsearchYml("{\"thread_pool.force_merge.size\":1}");
        UpdateYmlsReqEdit editbody = new UpdateYmlsReqEdit();
        editbody.withModify(modifyEdit);
        body.withEdit(editbody);
        request.withBody(body);
        try {
            UpdateYmlsResponse response = client.updateYmls(request);
            System.out.println(response.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getRequestId());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}

Python

Modify parameter settings.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# coding: utf-8

import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkcss.v1.region.css_region import CssRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkcss.v1 import *

if __name__ == "__main__":
    # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak = os.environ["CLOUD_SDK_AK"]
    sk = os.environ["CLOUD_SDK_SK"]
    projectId = "{project_id}"

    credentials = BasicCredentials(ak, sk, projectId)

    client = CssClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(CssRegion.value_of("<YOUR REGION>")) \
        .build()

    try:
        request = UpdateYmlsRequest()
        request.cluster_id = "{cluster_id}"
        modifyEdit = UpdateYmlsReqEditModify(
            elasticsearch_yml="{\"thread_pool.force_merge.size\":1}"
        )
        editbody = UpdateYmlsReqEdit(
            modify=modifyEdit
        )
        request.body = UpdateYmlsReq(
            edit=editbody
        )
        response = client.update_ymls(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)

Go

Modify parameter settings.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    css "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/css/v1"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/css/v1/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/css/v1/region"
)

func main() {
    // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak := os.Getenv("CLOUD_SDK_AK")
    sk := os.Getenv("CLOUD_SDK_SK")
    projectId := "{project_id}"

    auth := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        WithProjectId(projectId).
        Build()

    client := css.NewCssClient(
        css.CssClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            WithCredential(auth).
            Build())

    request := &model.UpdateYmlsRequest{}
	request.ClusterId = "{cluster_id}"
	var elasticsearchYmlModify interface{} = "{\"thread_pool.force_merge.size\":1}"
	modifyEdit := &model.UpdateYmlsReqEditModify{
		ElasticsearchYml: &elasticsearchYmlModify,
	}
	editbody := &model.UpdateYmlsReqEdit{
		Modify: modifyEdit,
	}
	request.Body = &model.UpdateYmlsReq{
		Edit: editbody,
	}
	response, err := client.UpdateYmls(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

More

For SDK sample code of more programming languages, see the Sample Code tab in API Explorer. SDK sample code can be automatically generated.

Status Codes

Status Code

Description

200

Request succeeded.

400

Invalid request.

Modify the request before retry.

409

The request could not be completed due to a conflict with the current state of the resource.

The resource that the client attempts to create already exists, or the update request fails to be processed because of a conflict.

412

The server did not meet one of the preconditions contained in the request.

Error Codes

See Error Codes.