
# 单击保存按钮 - UpdateComponentConfiguration
#### 功能介绍
单击保存按钮
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-secmaster/secmaster_03_0008.html)。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-secmaster/secmaster_03_0023.html)。
#### URI
POST /v1/{project_id}/workspaces/{workspace_id}/components/{component_id}/configurations
表1路径参数 
| 参数           | 是否必选 | 参数类型   | 描述     |
|:---|:---|:---|:---|
| project_id   | 是    | String | 项目id   |
| component_id | 是    | String | 组件id   |
| workspace_id | 是    | String | 工作空间id |
   
#### 请求参数
表2请求Body参数 
| 参数            | 是否必选 | 参数类型                                                                                               | 描述     |
|:---|:---|:---|:---|
| configuration | 否    | Array of [ConfigurationDetail] objects | 节点配置信息 |
   
 表3ConfigurationDetail 
| 参数            | 是否必选 | 参数类型                                                                                           | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
|:---|:---|:---|:---|
| config_status | 否    | String                                                                                         | **参数解释**: 节点部署状态 - UN_SAVED 待保存   - SAVE_AND_UN_APPLY 待应用   - MOVE_AND_UN_APPLY 待移除   - APPLYING 应用中   - FAIL_APPLY 应用失败   - APPLIED 应用完成    **约束限制** 不涉及 **取值范围**: - UN_SAVED   - SAVE_AND_UN_APPLY   - MOVE_AND_UN_APPLY   - APPLYING   - FAIL_APPLY   - APPLIED    **默认值** 不涉及 |
| list          | 是    | Array of [FileConfiguration] objects | 文件配置列表                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| node_id       | 否    | String                                                                                         | 节点ID                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| node_name     | 否    | String                                                                                         | 节点名称                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| specification | 否    | String                                                                                         | 规范                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   
 表4FileConfiguration 
| 参数        | 是否必选 | 参数类型                 | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|:---|
| file_name | 否    | String               | 文件名称                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| file_type | 是    | String               | **参数解释**: 文件类型 - JVM JVM配置文件类型   - LOG4J2 Log4j2日志配置文件类型   - YML YAML配置文件类型    **约束限制** 不涉及 **取值范围**: - JVM   - LOG4J2   - YML    **默认值** 不涉及                    |
| node_id   | 否    | String               | 节点ID                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| param     | 是    | Map\<String,String\> | 参数                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| type      | 否    | String               | **参数解释**: 配置类型 - HISTORY 历史版本   - CURRENT_SAVE 当前保存   - CURRENT_APPLY 当前使用    **约束限制** 不涉及 **取值范围**: - HISTORY   - CURRENT_SAVE   - CURRENT_APPLY    **默认值** 不涉及 |
   
#### 响应参数
**状态码：200**
表5响应Body参数 
| 参数      | 参数类型   | 描述   |
|:---|:---|:---|
| message | String | 结果详情 |
| result  | String | 结果   |
   
#### 请求示例
```
https://{endpoint}/v1/{project_id}/workspaces/{workspace_id}/components/{component_id}/configurations
{
  "configuration" : [ {
    "config_status" : "SAVE_AND_UN_APPLY",
    "list" : [ {
      "file_name" : "log4j2.properties",
      "file_type" : "LOG4J2",
      "node_id" : "a3478ad5xxxbf7a",
      "param" : {
        "a.eventEol" : "true"
      },
      "type" : "CURRENT_APPLY"
    }, {
      "file_name" : "jvm.options",
      "file_type" : "JVM",
      "node_id" : "a3478ad5xxxbf7a",
      "param" : {
        "-Xmx" : "2048M"
      },
      "type" : "CURRENT_APPLY"
    } ],
    "node_id" : "a3478ad5xxxbf7a",
    "node_name" : "ecs-6xx9",
    "specification" : "2U|4G|100G"
  } ]
}
```
#### 响应示例
**状态码：200**
成功
```
{
  "result" : "success"
}
```
#### SDK代码示例
SDK代码示例如下。
- [Java]
  ```
  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.secmaster.v1.region.SecMasterRegion;
  import com.huaweicloud.sdk.secmaster.v1.*;
  import com.huaweicloud.sdk.secmaster.v1.model.*;
  import java.util.List;
  import java.util.ArrayList;
  import java.util.Map;
  import java.util.HashMap;
  public class UpdateComponentConfigurationSolution {
      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);
          SecMasterClient client = SecMasterClient.newBuilder()
                  .withCredential(auth)
                  .withRegion(SecMasterRegion.valueOf("<YOUR REGION>"))
                  .build();
          UpdateComponentConfigurationRequest request = new UpdateComponentConfigurationRequest();
          request.withComponentId("{component_id}");
          request.withWorkspaceId("{workspace_id}");
          ConfigurationInfoDto body = new ConfigurationInfoDto();
          Map<String, String> listListParam = new HashMap<>();
          listListParam.put("-Xmx", "2048M");
          Map<String, String> listListParam1 = new HashMap<>();
          listListParam1.put("a.eventEol", "true");
          List<FileConfiguration> listConfigurationList = new ArrayList<>();
          listConfigurationList.add(
              new FileConfiguration()
                  .withFileName("log4j2.properties")
                  .withFileType(FileConfiguration.FileTypeEnum.fromValue("LOG4J2"))
                  .withNodeId("a3478ad5xxxbf7a")
                  .withParam(listListParam1)
                  .withType(FileConfiguration.TypeEnum.fromValue("CURRENT_APPLY"))
          );
          listConfigurationList.add(
              new FileConfiguration()
                  .withFileName("jvm.options")
                  .withFileType(FileConfiguration.FileTypeEnum.fromValue("JVM"))
                  .withNodeId("a3478ad5xxxbf7a")
                  .withParam(listListParam)
                  .withType(FileConfiguration.TypeEnum.fromValue("CURRENT_APPLY"))
          );
          List<ConfigurationDetail> listbodyConfiguration = new ArrayList<>();
          listbodyConfiguration.add(
              new ConfigurationDetail()
                  .withConfigStatus(ConfigurationDetail.ConfigStatusEnum.fromValue("SAVE_AND_UN_APPLY"))
                  .withList(listConfigurationList)
                  .withNodeId("a3478ad5xxxbf7a")
                  .withNodeName("ecs-6xx9")
                  .withSpecification("2U|4G|100G")
          );
          body.withConfiguration(listbodyConfiguration);
          request.withBody(body);
          try {
              UpdateComponentConfigurationResponse response = client.updateComponentConfiguration(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]
  ```
  # coding: utf-8
  import os
  from huaweicloudsdkcore.auth.credentials import BasicCredentials
  from huaweicloudsdksecmaster.v1.region.secmaster_region import SecMasterRegion
  from huaweicloudsdkcore.exceptions import exceptions
  from huaweicloudsdksecmaster.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 = SecMasterClient.new_builder() \
          .with_credentials(credentials) \
          .with_region(SecMasterRegion.value_of("<YOUR REGION>")) \
          .build()
      try:
          request = UpdateComponentConfigurationRequest()
          request.component_id = "{component_id}"
          request.workspace_id = "{workspace_id}"
          listParamList = {
              "-Xmx": "2048M"
          }
          listParamList1 = {
              "a.eventEol": "true"
          }
          listListConfiguration = [
              FileConfiguration(
                  file_name="log4j2.properties",
                  file_type="LOG4J2",
                  node_id="a3478ad5xxxbf7a",
                  param=listParamList1,
                  type="CURRENT_APPLY"
              ),
              FileConfiguration(
                  file_name="jvm.options",
                  file_type="JVM",
                  node_id="a3478ad5xxxbf7a",
                  param=listParamList,
                  type="CURRENT_APPLY"
              )
          ]
          listConfigurationbody = [
              ConfigurationDetail(
                  config_status="SAVE_AND_UN_APPLY",
                  list=listListConfiguration,
                  node_id="a3478ad5xxxbf7a",
                  node_name="ecs-6xx9",
                  specification="2U|4G|100G"
              )
          ]
          request.body = ConfigurationInfoDto(
              configuration=listConfigurationbody
          )
          response = client.update_component_configuration(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]
  ```
  package main
  import (
  "fmt"
  "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
      secmaster "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/secmaster/v1"
  "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/secmaster/v1/model"
      region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/secmaster/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, err := basic.NewCredentialsBuilder().
          WithAk(ak).
          WithSk(sk).
          WithProjectId(projectId).
          SafeBuild()
      if err != nil {
          fmt.Println(err)
          return
      }
      hcClient, err := secmaster.SecMasterClientBuilder().
           WithRegion(region.ValueOf("<YOUR REGION>")).
           WithCredential(auth).
           SafeBuild()
      if err != nil {
          fmt.Println(err)
          return
      }
      client := secmaster.NewSecMasterClient(hcClient)
      request := &model.UpdateComponentConfigurationRequest{}
  request.ComponentId = "{component_id}"
  request.WorkspaceId = "{workspace_id}"
  var listParamList = map[string]string{
          "-Xmx": "2048M",
      }
  var listParamList1 = map[string]string{
          "a.eventEol": "true",
      }
  fileNameList:= "log4j2.properties"
  fileTypeList:= model.GetFileConfigurationFileTypeEnum().LOG4_J2
  nodeIdList:= "a3478ad5xxxbf7a"
  typeList:= model.GetFileConfigurationTypeEnum().CURRENT_APPLY
  fileNameList1:= "jvm.options"
  fileTypeList1:= model.GetFileConfigurationFileTypeEnum().JVM
  nodeIdList1:= "a3478ad5xxxbf7a"
  typeList1:= model.GetFileConfigurationTypeEnum().CURRENT_APPLY
  var listListConfiguration = []model.FileConfiguration{
          {
              FileName: &fileNameList,
              FileType: &fileTypeList,
              NodeId: &nodeIdList,
              Param: listParamList1,
              Type: &typeList,
          },
          {
              FileName: &fileNameList1,
              FileType: &fileTypeList1,
              NodeId: &nodeIdList1,
              Param: listParamList,
              Type: &typeList1,
          },
      }
  configStatusConfiguration:= model.GetConfigurationDetailConfigStatusEnum().SAVE_AND_UN_APPLY
  nodeIdConfiguration:= "a3478ad5xxxbf7a"
  nodeNameConfiguration:= "ecs-6xx9"
  specificationConfiguration:= "2U|4G|100G"
  var listConfigurationbody = []model.ConfigurationDetail{
          {
              ConfigStatus: &configStatusConfiguration,
              List: listListConfiguration,
              NodeId: &nodeIdConfiguration,
              NodeName: &nodeNameConfiguration,
              Specification: &specificationConfiguration,
          },
      }
  request.Body = &model.ConfigurationInfoDto{
  Configuration: &listConfigurationbody,
  }
  response, err := client.UpdateComponentConfiguration(request)
  if err == nil {
          fmt.Printf("%+v\n", response)
      } else {
          fmt.Println(err)
      }
  }
  ```
- [更多]
  更多编程语言的SDK代码示例，请参见[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/SecMaster/sdk?api=UpdateComponentConfiguration&version=v1)的代码示例页签，可生成自动对应的SDK代码示例。
#### 状态码
| 状态码 | 描述 |
|:---|:---|
| 200 | 成功 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-secmaster/ErrorCode.html)。
