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

Updating a Pipeline Template

Function

This API is used to update a pipeline template.

Calling Method

For details, see Calling APIs.

URI

PUT /v5/{tenant_id}/api/pipeline-templates/{template_id}

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

tenant_id

Yes

String

Definition:

Tenant ID.

Constraints:

N/A

Value range:

The value consists of 32 characters, including digits and letters.

Default value:

N/A

template_id

Yes

String

Definition:

Template ID, which is the unique identifier of a template. Obtain the template ID by calling the API for querying templates. templates.id indicates the template ID.

Constraints:

N/A

Value range:

The value consists of 32 characters, including digits and letters.

Default value:

N/A

Request Parameters

Table 2 Request header parameters

Parameter

Mandatory

Type

Description

X-Auth-Token

Yes

String

Definition:

User token. Obtain a token (the value of the X-Subject-Token response header) by calling the IAM API forobtaining a user token.

Constraints:

N/A

Value range:

N/A

Default value:

N/A

Table 3 Request body parameters

Parameter

Mandatory

Type

Description

name

Yes

String

Definition:

Template name.

Constraints:

N/A

Value range:

N/A

Default value:

N/A

description

No

String

Definition:

Template description.

Constraints:

N/A

Value range:

N/A

Default value:

N/A

language

Yes

String

Definition:

Template language.

Constraints:

N/A

Value range:

N/A

Default value:

N/A

variables

No

Array of CustomVariable objects

Definition:

Custom parameter.

Constraints:

N/A

Value range:

N/A

Default value:

N/A

definition

Yes

String

Definition:

Template orchestration JSON file, including stages.

Constraints:

N/A

Value range:

N/A

Default value:

N/A

is_system

Yes

Boolean

Definition:

Whether the template is a system template.

Constraints:

N/A

Value range:

  • true: The template is a system template.

  • false: The template is not a system template.

Default value:

N/A

domain_id

Yes

String

Definition:

Tenant ID.

Constraints:

N/A

Value range:

The value consists of 32 characters, including digits and letters.

Default value:

N/A

is_show_source

Yes

Boolean

Definition:

Whether to display the pipeline source.

Constraints:

N/A

Value range:

  • true: Display the pipeline source.

  • false: Do not display the pipeline source.

Default value:

N/A

Table 4 CustomVariable

Parameter

Mandatory

Type

Description

pipeline_id

No

String

Definition:

Pipeline ID. Obtain the ID by calling the API for querying pipelines. pipelines.pipelineId indicates the pipeline ID.

Constraints:

N/A

Value range:

The value consists of 32 characters, including digits and letters.

Default value:

N/A

name

No

String

Definition:

Custom parameter name.

Constraints:

N/A

Value range:

Enter a maximum of 128 characters. Only letters, digits, and underscores (_) are supported.

Default value:

N/A

sequence

No

Integer

Parameter description:

Parameter sequence number, which starts from 1.

Constraints:

None.

Value range:

None.

Default value:

None.

type

No

String

Definition:

Custom parameter type.

Constraints:

N/A

Value range:

  • autoIncrement: auto-increment parameter.

  • enum: enumerated parameter.

  • string: string parameter.

Default value:

N/A

value

No

String

Parameter description:

Default value of a custom parameter.

Constraints:

None.

Value range:

Up to 8192 characters.

Default value:

None.

is_secret

No

Boolean

Definition:

Private parameter or not.

Constraints:

N/A

Value range:

  • true: The parameter is private.

  • false: The parameter is not private.

Default value:

false.

description

No

String

Parameter description:

Parameter description.

Constraints:

None.

Value range:

Up to 1024 characters.

Default value:

None.

is_runtime

No

Boolean

Definition:

Whether a parameter can be set at runtime.

Constraints:

N/A

Value range:

  • true: The parameter can be set at runtime.

  • false: The parameter cannot be set at runtime.

Default value:

false.

limits

No

Array of objects

Parameter description:

List of enumerated values.

Constraints:

None.

Value range:

Up to 1,024 characters.

Default value:

None.

is_reset

No

Boolean

Definition:

Whether to reset. If the auto-increment parameter is edited, the edited value is used. Otherwise, the last digit increases.

Constraints:

N/A

Value range:

  • true: Use the edited parameter value.

  • false: Use the auto-increment parameter.

Default value:

false.

latest_value

No

String

Definition:

Value of the parameter in the last run.

Constraints:

N/A

Value range:

Max. 8,192 characters.

Default value:

N/A

runtime_value

No

String

Definition:

Input value of a parameter when the pipeline is executed.

Constraints:

N/A

Value range:

N/A

Default value:

N/A

Response Parameters

Status code: 200

Table 5 Response body parameters

Parameter

Type

Description

templateId

String

Definition:

Template ID.

Constraints:

N/A

Value range:

N/A

Default value:

N/A

Status code: 400

Table 6 Response body parameters

Parameter

Type

Description

error_msg

String

Parameter description:

Error message.

Value range:

N/A

error_code

String

Parameter description:

Error code.

Value range:

N/A

Example Requests

PUT https://{endpoint}/v5/ce8df55870164338a72d7e828a966a2a/api/pipeline-templates/ad8a26f8b19a4b83a8d92eb733b65476

{
  "name" : "Creating a Pipeline Template-20231023212159",
  "language" : "none",
  "description" : "",
  "is_system" : false,
  "domain_id" : "ce8df55870164338a72d7e828a966a2a",
  "variables" : [ ],
  "is_show_source" : true,
  "definition" : "{\"stages\":[{\"name\":\"Stage_1\",\"sequence\":\"0\",\"jobs\":[{\"stage_id\":1698067319814,\"identifier\":\"16980673371452673e2a4-b3e1-4389-a145-fc57a4473137\",\"name\":\"CloudBuild template\",\"depends_on\":[],\"timeout\":\"\",\"timeout_unit\":\"\",\"steps\":[{\"name\":\"CloudBuild template\",\"task\":\"official_devcloud_cloudBuild_template\",\"sequence\":0,\"inputs\":[{\"key\":\"pipelineNumber\",\"value\":\"v1.0.0\"},{\"key\":\"artifactName\",\"value\":\"name\"},{\"key\":\"is_build_in\",\"value\":\"system\"},{\"key\":\"module_or_template_id\",\"value\":\"00057\"}],\"business_type\":\"Build\",\"runtime_attribution\":\"agent\",\"identifier\":\"1698067328741629de896-a67b-4c2a-be40-7f6531af2f19\",\"multi_step_editable\":0,\"official_task_version\":\"0.0.1\"}],\"resource\":\"{\\\"type\\\":\\\"system\\\",\\\"arch\\\":\\\"x86\\\"}\",\"condition\":\"${{ completed() }}\",\"exec_type\":\"OCTOPUS_JOB\",\"sequence\":0},{\"identifier\":\"1698067635354dba15971-5277-48fe-a219-8cd578aa8773\",\"name\":\"CodeCheck\",\"task\":\"official_devcloud_codeCheck_template\",\"sequence\":0,\"inputs\":[{\"key\":\"language\",\"value\":\"C/C++\"},{\"key\":\"module_or_template_id\",\"value\":\"d7dffaefb6d94c63a09cf141668356c7\"}],\"business_type\":\"Gate\",\"runtime_attribution\":\"agent\",\"identifier\":\"1698067631617e1847e52-06ff-429e-9bfa-492ae877f192\",\"multi_step_editable\":0,\"official_task_version\":\"0.0.1\"}],\"resource\":\"{\\\"type\\\":\\\"system\\\",\\\"arch\\\":\\\"x86\\\"}\",\"condition\":\"completed()\",\"exec_type\":\"OCTOPUS_JOB\",\"sequence\":1}],\"identifier\":\"1698067319814bd28be5a-eb0c-4bdf-9ac5-4b441ef46ef9\",\"pre\":[{\"task\":\"official_devcloud_autoTrigger\",\"sequence\":0}],\"post\":null,\"depends_on\":[],\"run_always\":false}]}"
}

Example Responses

Status code: 200

OK

{
  "templateId" : "ad8a26f8b19a4b83a8d92eb733b65476"
}

SDK Sample Code

The SDK sample code is as follows.

 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
56
57
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.codeartspipeline.v2.region.CodeArtsPipelineRegion;
import com.huaweicloud.sdk.codeartspipeline.v2.*;
import com.huaweicloud.sdk.codeartspipeline.v2.model.*;


public class UpdatePipelineTemplateSolution {

    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");

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

        CodeArtsPipelineClient client = CodeArtsPipelineClient.newBuilder()
                .withCredential(auth)
                .withRegion(CodeArtsPipelineRegion.valueOf("<YOUR REGION>"))
                .build();
        UpdatePipelineTemplateRequest request = new UpdatePipelineTemplateRequest();
        request.withTenantId("{tenant_id}");
        request.withTemplateId("{template_id}");
        PipelineTemplateDTO body = new PipelineTemplateDTO();
        body.withIsShowSource(true);
        body.withDomainId("ce8df55870164338a72d7e828a966a2a");
        body.withIsSystem(false);
        body.withDefinition("{"stages":[{"name":"Stage_1","sequence":"0","jobs":[{"stage_id":1698067319814,"identifier":"16980673371452673e2a4-b3e1-4389-a145-fc57a4473137","name":"CloudBuild template","depends_on":[],"timeout":"","timeout_unit":"","steps":[{"name":"CloudBuild template","task":"official_devcloud_cloudBuild_template","sequence":0,"inputs":[{"key":"pipelineNumber","value":"v1.0.0"},{"key":"artifactName","value":"name"},{"key":"is_build_in","value":"system"},{"key":"module_or_template_id","value":"00057"}],"business_type":"Build","runtime_attribution":"agent","identifier":"1698067328741629de896-a67b-4c2a-be40-7f6531af2f19","multi_step_editable":0,"official_task_version":"0.0.1"}],"resource":"{\"type\":\"system\",\"arch\":\"x86\"}","condition":"${{ completed() }}","exec_type":"OCTOPUS_JOB","sequence":0},{"identifier":"1698067635354dba15971-5277-48fe-a219-8cd578aa8773","name":"CodeCheck","task":"official_devcloud_codeCheck_template","sequence":0,"inputs":[{"key":"language","value":"C/C++"},{"key":"module_or_template_id","value":"d7dffaefb6d94c63a09cf141668356c7"}],"business_type":"Gate","runtime_attribution":"agent","identifier":"1698067631617e1847e52-06ff-429e-9bfa-492ae877f192","multi_step_editable":0,"official_task_version":"0.0.1"}],"resource":"{\"type\":\"system\",\"arch\":\"x86\"}","condition":"completed()","exec_type":"OCTOPUS_JOB","sequence":1}],"identifier":"1698067319814bd28be5a-eb0c-4bdf-9ac5-4b441ef46ef9","pre":[{"task":"official_devcloud_autoTrigger","sequence":0}],"post":null,"depends_on":[],"run_always":false}]}");
        body.withVariables("[]");
        body.withLanguage("none");
        body.withDescription("");
        body.withName("Creating a Pipeline Template-20231023212159");
        request.withBody(body);
        try {
            UpdatePipelineTemplateResponse response = client.updatePipelineTemplate(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());
        }
    }
}
 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
# coding: utf-8

import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkcodeartspipeline.v2.region.codeartspipeline_region import CodeArtsPipelineRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkcodeartspipeline.v2 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"]

    credentials = BasicCredentials(ak, sk)

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

    try:
        request = UpdatePipelineTemplateRequest()
        request.tenant_id = "{tenant_id}"
        request.template_id = "{template_id}"
        request.body = PipelineTemplateDTO(
            is_show_source=True,
            domain_id="ce8df55870164338a72d7e828a966a2a",
            is_system=False,
            definition="{"stages":[{"name":"Stage_1","sequence":"0","jobs":[{"stage_id":1698067319814,"identifier":"16980673371452673e2a4-b3e1-4389-a145-fc57a4473137","name":"CloudBuild template","depends_on":[],"timeout":"","timeout_unit":"","steps":[{"name":"CloudBuild template","task":"official_devcloud_cloudBuild_template","sequence":0,"inputs":[{"key":"pipelineNumber","value":"v1.0.0"},{"key":"artifactName","value":"name"},{"key":"is_build_in","value":"system"},{"key":"module_or_template_id","value":"00057"}],"business_type":"Build","runtime_attribution":"agent","identifier":"1698067328741629de896-a67b-4c2a-be40-7f6531af2f19","multi_step_editable":0,"official_task_version":"0.0.1"}],"resource":"{\"type\":\"system\",\"arch\":\"x86\"}","condition":"${{ completed() }}","exec_type":"OCTOPUS_JOB","sequence":0},{"identifier":"1698067635354dba15971-5277-48fe-a219-8cd578aa8773","name":"CodeCheck","task":"official_devcloud_codeCheck_template","sequence":0,"inputs":[{"key":"language","value":"C/C++"},{"key":"module_or_template_id","value":"d7dffaefb6d94c63a09cf141668356c7"}],"business_type":"Gate","runtime_attribution":"agent","identifier":"1698067631617e1847e52-06ff-429e-9bfa-492ae877f192","multi_step_editable":0,"official_task_version":"0.0.1"}],"resource":"{\"type\":\"system\",\"arch\":\"x86\"}","condition":"completed()","exec_type":"OCTOPUS_JOB","sequence":1}],"identifier":"1698067319814bd28be5a-eb0c-4bdf-9ac5-4b441ef46ef9","pre":[{"task":"official_devcloud_autoTrigger","sequence":0}],"post":null,"depends_on":[],"run_always":false}]}",
            variables="[]",
            language="none",
            description="",
            name="Creating a Pipeline Template-20231023212159"
        )
        response = client.update_pipeline_template(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)
 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
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    codeartspipeline "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/codeartspipeline/v2"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/codeartspipeline/v2/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/codeartspipeline/v2/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")

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

    client := codeartspipeline.NewCodeArtsPipelineClient(
        codeartspipeline.CodeArtsPipelineClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            WithCredential(auth).
            Build())

    request := &model.UpdatePipelineTemplateRequest{}
	request.TenantId = "{tenant_id}"
	request.TemplateId = "{template_id}"
	var variablesVariables interface{} = "[]"
	descriptionPipelineTemplateDto:= ""
	request.Body = &model.PipelineTemplateDto{
		IsShowSource: true,
		DomainId: "ce8df55870164338a72d7e828a966a2a",
		IsSystem: false,
		Definition: "{"stages":[{"name":"Stage_1","sequence":"0","jobs":[{"stage_id":1698067319814,"identifier":"16980673371452673e2a4-b3e1-4389-a145-fc57a4473137","name":"CloudBuild template","depends_on":[],"timeout":"","timeout_unit":"","steps":[{"name":"CloudBuild template","task":"official_devcloud_cloudBuild_template","sequence":0,"inputs":[{"key":"pipelineNumber","value":"v1.0.0"},{"key":"artifactName","value":"name"},{"key":"is_build_in","value":"system"},{"key":"module_or_template_id","value":"00057"}],"business_type":"Build","runtime_attribution":"agent","identifier":"1698067328741629de896-a67b-4c2a-be40-7f6531af2f19","multi_step_editable":0,"official_task_version":"0.0.1"}],"resource":"{\"type\":\"system\",\"arch\":\"x86\"}","condition":"${{ completed() }}","exec_type":"OCTOPUS_JOB","sequence":0},{"identifier":"1698067635354dba15971-5277-48fe-a219-8cd578aa8773","name":"CodeCheck","task":"official_devcloud_codeCheck_template","sequence":0,"inputs":[{"key":"language","value":"C/C++"},{"key":"module_or_template_id","value":"d7dffaefb6d94c63a09cf141668356c7"}],"business_type":"Gate","runtime_attribution":"agent","identifier":"1698067631617e1847e52-06ff-429e-9bfa-492ae877f192","multi_step_editable":0,"official_task_version":"0.0.1"}],"resource":"{\"type\":\"system\",\"arch\":\"x86\"}","condition":"completed()","exec_type":"OCTOPUS_JOB","sequence":1}],"identifier":"1698067319814bd28be5a-eb0c-4bdf-9ac5-4b441ef46ef9","pre":[{"task":"official_devcloud_autoTrigger","sequence":0}],"post":null,"depends_on":[],"run_always":false}]}",
		Variables: &variablesVariables,
		Language: "none",
		Description: &descriptionPipelineTemplateDto,
		Name: "Creating a Pipeline Template-20231023212159",
	}
	response, err := client.UpdatePipelineTemplate(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

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

OK

400

Bad request

401

Unauthorized

403

Forbidden

404

Not Found

Error Codes

See Error Codes.