# 修改脚本 - UpdateScript
#### 功能介绍
修改作业脚本：自定义脚本。
#### 接口约束
约束条件：
- 脚本名称：同一租户下，脚本名称不能重复，最大字符64个字符，支持中文+字母+数字+下划线。
- 脚本内容最大4096个字符。
- 脚本参数个数最多20个。
- 脚本描述：最大256个字符。
- 单个参数的参数名称 64个字符，只支持字母+数字+下划线。
- 单个参数的值最大1024个字符，正则表达式如下：\^((?!.{2,})\[a-zA-Z0-9_-/.*\\x20?:",=+@\[{\]}\])*$。
- 修改的脚本如果有审批人，在修改之后，需要再次选择审批人，查询审批
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/COC/doc?api=UpdateScript)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-coc/coc_api_06.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                 | 访问级别  | 资源类型（\*为必须） | 条件键 | 别名 | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | coc:document:update | Write | document \* | -   | -  | -      |
     
#### URI
PUT /v1/job/scripts/{script_uuid}
表1路径参数 
| 参数          | 是否必选 | 参数类型   | 描述                                                             |
|:---|:---|:---|:---|
| script_uuid | 是    | String | **参数解释：** 脚本uuid。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。 |
#### 请求参数
表2请求Header参数 
| 参数             | 是否必选 | 参数类型   | 描述                                                                                                              |
|:---|:---|:---|:---|
| X-Auth-Token   | 是    | String | **参数解释：** 租户token。 **约束限制：** 从IAM获取的租户token。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                      |
| X-Language     | 否    | String | **参数解释：** 国际化标记，zh-cn表示中文，en-us或不传表示英文。 **约束限制：** zh-cn表示中文，en-us或不传表示英文。 **取值范围：** zh-cn/en-us。 **默认取值：** 不涉及。 |
| x-project-id   | 否    | String | **参数解释：** 项目ID。 **约束限制：** region对应的项目ID。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                          |
| x-user-profile | 否    | String | **参数解释：** IAM5.0用户信息。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                              |
   
表3请求Body参数 
| 参数            | 是否必选 | 参数类型                                                                                                        | 描述                                                           |
|:---|:---|:---|:---|
| description   | 是    | String                                                                                                      | **参数解释：** 脚本描述。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。 |
| content       | 是    | String                                                                                                      | **参数解释：** 脚本内容。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。 |
| properties    | 否    | [ScriptPropertiesModel] object   | **参数解释：** 脚本属性。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。 |
| script_params | 否    | Array of [ScriptParamDefine] objects | **参数解释：** 脚本入参。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。 |
   
 表4ScriptPropertiesModel 
| 参数         | 是否必选 | 参数类型                                                                                              | 描述                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|:---|
| risk_level | 是    | String                                                                                            | **参数解释：** 风险等级。 **约束限制：** - LOW：低风险。 - MEDIUM：中风险。 - HIGH：高风险。 **取值范围：** LOW/MEDIUM/HIGH。 **默认取值：** 不涉及。                                                                                                                                                                                                         |
| version    | 是    | String                                                                                            | **参数解释：** 脚本版本号。 **约束限制：** 格式：1.0.0 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                |
| reviewers  | 否    | Array of [ReviewerInfo] objects | **参数解释：** 审批人，不填写不需要审批。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                                                                                                             |
| protocol   | 否    | String                                                                                            | **参数解释：** 审批消息通知协议，用于通知审批人。 **约束限制：** - DEFAULT：默认。 - SMS：短信。 - EMAIL：邮件。 - DING_TALK：钉钉。 - WE_LINK：welink。 - WECHAT：微信。 - CALLNOTIFY：语言。 - NOT_TO_NOTIFY：不通知。 **取值范围：** - DEFAULT：默认。 - SMS：短信。 - EMAIL：邮件。 - DING_TALK：钉钉。 - WE_LINK：welink。 - WECHAT：微信。 - CALLNOTIFY：语言。 - NOT_TO_NOTIFY：不通知。 **默认取值：** 不涉及。 |
   
 表5ReviewerInfo 
| 参数            | 是否必选 | 参数类型   | 描述                                                                         |
|:---|:---|:---|:---|
| reviewer_name | 是    | String | **参数解释：** 审批人名称（IAM用户名）。 **约束限制：** IAM用户名。 **取值范围：** 不涉及。 **默认取值：** 不涉及。   |
| reviewer_id   | 是    | String | **参数解释：** 审批人ID（IAM用户Id）。 **约束限制：** IAM用户Id。 **取值范围：** 不涉及。 **默认取值：** 不涉及。 |
   
 表6ScriptParamDefine 
| 参数                | 是否必选 | 参数类型    | 描述                                                                                                                                  |
|:---|:---|:---|:---|
| param_name        | 是    | String  | **参数解释：** 参数名。 **约束限制：** 参数名仅支持字母、数字以及下划线。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                            |
| param_value       | 是    | String  | **参数解释：** 参数值。 **约束限制：** - 参数长度为1-4096位。 - 可以包含大写字母、小写字母、数字及特殊字符(_-/.\* ?:",=+@#\[{\]})。 - 禁止出现连续'.'。 **取值范围：** 不涉及。 **默认取值：** 不涉及。 |
| param_description | 是    | String  | **参数解释：** 参数描述。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                        |
| param_order       | 是    | Integer | **参数解释：** 参数顺序。【已废弃】该参数已废弃，传入该参数不会生效。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                  |
| sensitive         | 是    | Boolean | **参数解释：** 是否是敏感参数。 **约束限制：** true/false。 **取值范围：** true/false。 **默认取值：** 不涉及。                                                       |
   
#### 响应参数
**状态码：200**
表7响应Body参数 
| 参数   | 参数类型   | 描述                                          |
|:---|:---|:---|
| data | String | **参数解释：** 被修改脚本的script_uuid。 **取值范围：** 不涉及。 |
   
**状态码：400**
表8响应Body参数 
| 参数         | 参数类型   | 描述                                 |
|:---|:---|:---|
| error_code | String | **参数解释：** 错误码。 **取值范围：** 参见错误码章节。  |
| error_msg  | String | **参数解释：** 错误描述。 **取值范围：** 参见错误码章节。 |
   
#### 请求示例
修改SHELL脚本请求体示例。
```
PUT https://{Endpoint}/v1/job/scripts/SC2023110211155901a700000
{
  "content" : "echo ${a}",
  "description" : "修改",
  "properties" : {
    "risk_level" : "HIGH",
    "version" : "1.1.1",
    "reviewers" : [ {
      "reviewer_id" : "1994a3ed905a47ad82c6d7xxxx",
      "reviewer_name" : "COC-xxx"
    }, {
      "reviewer_id" : "16c67eae48f04cdb9ed19xxxx",
      "reviewer_name" : "COC-Platxxx"
    } ]
  },
  "script_params" : [ {
    "param_name" : "a",
    "param_value" : "string",
    "param_description" : "string",
    "param_order" : 1,
    "sensitive" : true
  } ]
}
```
#### 响应示例
**状态码：200**
脚本uuid。
更多状态码请参考[状态码](https://support.huaweicloud.com/api-coc/coc_api_05_03.html)。
```
{
  "data" : "SC2023110211155901axxxxxx"
}
```
**状态码：400**
服务器未能处理请求。
更多状态码请参考[状态码](https://support.huaweicloud.com/api-coc/coc_api_05_03.html)。
```
{
  "error_code" : "COC.00040701",
  "error_msg" : "error_msg"
}
```
#### 状态码
| 状态码 | 描述                                                                                    |
|:---|:---|
| 200 | 脚本uuid。 更多状态码请参考[状态码](https://support.huaweicloud.com/api-coc/coc_api_05_03.html)。    |
| 400 | 服务器未能处理请求。 更多状态码请参考[状态码](https://support.huaweicloud.com/api-coc/coc_api_05_03.html)。 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-coc/ErrorCode.html)。
