Help Center/ CodeArts Build/ API Reference/ Task APIs/ Creating a Build Template
Updated on 2024-04-18 GMT+08:00

Creating a Build Template

Function

This API is used to create a build template.

Calling Method

For details, see Calling APIs.

URI

POST /v3/templates/create

Request Parameters

Table 1 Request header parameters

Parameter

Mandatory

Type

Description

X-Auth-Token

Yes

String

User token. It can be obtained by calling the IAM API. (Value of X-Subject-Token in the response header.) Global tenant tokens are not supported. Use a region-level token whose scope is project.

Table 2 Request body parameters

Parameter

Mandatory

Type

Description

template

Yes

CreateTemplate object

Build action template, which is encapsulated in camel case.

name

Yes

String

Template name.

description

No

String

Template description.

tool_type

No

String

Tool type.

parameters

No

Array of CreateBuildJobParameter objects

Parameters for build execution.

Table 3 CreateTemplate

Parameter

Mandatory

Type

Description

steps

Yes

Array of CreateTemplateSteps objects

Build actions.

Table 4 CreateTemplateSteps

Parameter

Mandatory

Type

Description

properties

No

Map<String,Object>

Build action.

module_id

Yes

String

Build module ID.

name

No

String

Build module name.

version

No

String

Build version.

enable

No

Boolean

Enable or not.

Table 5 CreateBuildJobParameter

Parameter

Mandatory

Type

Description

name

No

String

Parameter definition name. The default value is hudson.model.StringParameterDefinition.

params

No

Array of CreateBuildJobParameterParam objects

Subparameters of build execution parameters.

Table 6 CreateBuildJobParameterParam

Parameter

Mandatory

Type

Description

name

No

String

Parameter field name.

value

No

String

Parameter field value.

limits

No

Array of LimitsParam objects

Restrictions on enumeration parameters.

Table 7 LimitsParam

Parameter

Mandatory

Type

Description

disable

No

String

Whether the configuration takes effect. The default value is 0, indicating that the configuration takes effect.

display_name

No

String

Parameter display name.

name

No

String

Parameter name.

Response Parameters

Status code: 200

Table 8 Response body parameters

Parameter

Type

Description

result

CreateTemplatesItems object

Template query result.

error

String

Returned error message.

status

String

Returned status information.

Table 9 CreateTemplatesItems

Parameter

Type

Description

favourite

Boolean

Whether to favorite a template.

id

String

ID in the database.

uuid

String

uuid

template

QueryTemplate object

Build action template, which is encapsulated in camel case.

type

String

Template type.

public

Boolean

Whether the template is public.

name

String

Template name.

create_time

String

Creation time.

domain_id

String

domainId

weight

Double

Weight.

user_id

String

User ID.

user_name

String

Username.

domain_name

String

Domain name.

scope

String

Template scope. For a user-defined template, the default value is custom.

description

String

Template description.

tool_type

String

Build tool type, which can be YAML build or action build.

intl_description

Object

intl description.

parameters

Array of CreateBuildJobParameter objects

Parameters for build execution.

i18n

Object

i18n

Table 10 QueryTemplate

Parameter

Type

Description

steps

Array of CreateBuildJobSteps objects

Build actions.

Table 11 CreateBuildJobSteps

Parameter

Type

Description

properties

Map<String,Object>

Build action.

module_id

String

Build module ID.

name

String

Build module name.

version

String

Build version.

enable

Boolean

Enable or not.

Table 12 CreateBuildJobParameter

Parameter

Type

Description

name

String

Parameter definition name. The default value is hudson.model.StringParameterDefinition.

params

Array of CreateBuildJobParameterParam objects

Subparameters of build execution parameters.

Table 13 CreateBuildJobParameterParam

Parameter

Type

Description

name

String

Parameter field name.

value

String

Parameter field value.

limits

Array of LimitsParam objects

Restrictions on enumeration parameters.

Table 14 LimitsParam

Parameter

Type

Description

disable

String

Whether the configuration takes effect. The default value is 0, indicating that the configuration takes effect.

display_name

String

Parameter display name.

name

String

Parameter name.

Status code: 400

Table 15 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error description.

Status code: 401

Table 16 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error description.

Status code: 403

Table 17 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error description.

Status code: 404

Table 18 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error description.

Status code: 500

Table 19 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error description.

Example Requests

POST https://{endpoint}/v3/templates/create

{
  "name" : "example",
  "description" : "123",
  "tool_type" : "123123",
  "template" : {
    "steps" : [ {
      "module_id" : "devcloud2018.codeci_action_20043.action",
      "name" : "Build with Maven",
      "enable" : true,
      "properties" : null
    } ]
  },
  "parameters" : [ {
    "name" : "hudson.model.StringParameterDefinition",
    "params" : [ {
      "name" : "name",
      "value" : "codeBranch"
    }, {
      "name" : "type",
      "value" : "normalparam"
    }, {
      "name" : "defaultValue",
      "value" : "master"
    }, {
      "name" : "description",
      "value" : "description"
    }, {
      "name" : "deletion",
      "value" : "false"
    }, {
      "name" : "defaults",
      "value" : "true"
    }, {
      "name" : "staticVar",
      "value" : "false"
    }, {
      "name" : "sensitiveVar",
      "value" : "false"
    } ]
  } ]
}

Example Responses

Status code: 200

OK

{
  "result" : {
    "public" : true,
    "favourite" : false,
    "id" : "6561b2ced7a6751941fdc8cd",
    "uuid" : "2d9031c079624376824fe1e2731615dc",
    "template" : {
      "steps" : null
    },
    "type" : "codeci",
    "name" : "oych_test_temp_ladadad12122313",
    "create_time" : "2023-11-25T08:39:42.098+00:00",
    "domain_id" : "60021bab32fd450aa2cb89226f425e06",
    "weight" : 0,
    "user_id" : "ae22fd035f354cfa8d82a3f1c8940446",
    "user_name" : "devcloud_codeci_z00485259_02",
    "domain_name" : "devcloud_codeci_z00485259_02",
    "scope" : "custom",
    "description" : "123",
    "intl_description" : { },
    "parameters" : [ {
      "name" : "hudson.model.StringParameterDefinition",
      "params" : [ {
        "name" : "name",
        "value" : "codeBranch",
        "limits" : null
      }, {
        "name" : "type",
        "value" : "normalparam",
        "limits" : null
      }, {
        "name" : "defaultValue",
        "value" : "master",
        "limits" : null
      }, {
        "name" : "description",
        "value" : "Code branch, which is a predefined parameter",
        "limits" : null
      }, {
        "name" : "deletion",
        "value" : "false",
        "limits" : null
      }, {
        "name" : "defaults",
        "value" : "true",
        "limits" : null
      }, {
        "name" : "staticVar",
        "value" : "false",
        "limits" : null
      }, {
        "name" : "sensitiveVar",
        "value" : "false",
        "limits" : null
      } ]
    } ],
    "i18n" : { }
  },
  "error" : null,
  "status" : "success"
}

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
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
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.codeartsbuild.v3.region.CodeArtsBuildRegion;
import com.huaweicloud.sdk.codeartsbuild.v3.*;
import com.huaweicloud.sdk.codeartsbuild.v3.model.*;

import java.util.List;
import java.util.ArrayList;

public class CreateTemplatesSolution {

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

        CodeArtsBuildClient client = CodeArtsBuildClient.newBuilder()
                .withCredential(auth)
                .withRegion(CodeArtsBuildRegion.valueOf("<YOUR REGION>"))
                .build();
        CreateTemplatesRequest request = new CreateTemplatesRequest();
        CreateTemplatesRequestBody body = new CreateTemplatesRequestBody();
        List<CreateBuildJobParameterParam> listParametersParams = new ArrayList<>();
        listParametersParams.add(
            new CreateBuildJobParameterParam()
                .withName("name")
                .withValue("codeBranch")
        );
        listParametersParams.add(
            new CreateBuildJobParameterParam()
                .withName("type")
                .withValue("normalparam")
        );
        listParametersParams.add(
            new CreateBuildJobParameterParam()
                .withName("defaultValue")
                .withValue("master")
        );
        listParametersParams.add(
            new CreateBuildJobParameterParam()
                .withName("description")
                .withValue("description")
        );
        listParametersParams.add(
            new CreateBuildJobParameterParam()
                .withName("deletion")
                .withValue("false")
        );
        listParametersParams.add(
            new CreateBuildJobParameterParam()
                .withName("defaults")
                .withValue("true")
        );
        listParametersParams.add(
            new CreateBuildJobParameterParam()
                .withName("staticVar")
                .withValue("false")
        );
        listParametersParams.add(
            new CreateBuildJobParameterParam()
                .withName("sensitiveVar")
                .withValue("false")
        );
        List<CreateBuildJobParameter> listbodyParameters = new ArrayList<>();
        listbodyParameters.add(
            new CreateBuildJobParameter()
                .withName("hudson.model.StringParameterDefinition")
                .withParams(listParametersParams)
        );
        List<CreateTemplateSteps> listTemplateSteps = new ArrayList<>();
        listTemplateSteps.add(
            new CreateTemplateSteps()
                .withModuleId("devcloud2018.codeci_action_20043.action")
                .withName("Build with Maven")
                .withEnable(true)
        );
        CreateTemplate templatebody = new CreateTemplate();
        templatebody.withSteps(listTemplateSteps);
        body.withParameters(listbodyParameters);
        body.withToolType("123123");
        body.withDescription("123");
        body.withName("example");
        body.withTemplate(templatebody);
        request.withBody(body);
        try {
            CreateTemplatesResponse response = client.createTemplates(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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# coding: utf-8

from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkcodeartsbuild.v3.region.codeartsbuild_region import CodeArtsBuildRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkcodeartsbuild.v3 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 = __import__('os').getenv("CLOUD_SDK_AK")
    sk = __import__('os').getenv("CLOUD_SDK_SK")

    credentials = BasicCredentials(ak, sk) \

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

    try:
        request = CreateTemplatesRequest()
        listParamsParameters = [
            CreateBuildJobParameterParam(
                name="name",
                value="codeBranch"
            ),
            CreateBuildJobParameterParam(
                name="type",
                value="normalparam"
            ),
            CreateBuildJobParameterParam(
                name="defaultValue",
                value="master"
            ),
            CreateBuildJobParameterParam(
                name="description",
                value="description"
            ),
            CreateBuildJobParameterParam(
                name="deletion",
                value="false"
            ),
            CreateBuildJobParameterParam(
                name="defaults",
                value="true"
            ),
            CreateBuildJobParameterParam(
                name="staticVar",
                value="false"
            ),
            CreateBuildJobParameterParam(
                name="sensitiveVar",
                value="false"
            )
        ]
        listParametersbody = [
            CreateBuildJobParameter(
                name="hudson.model.StringParameterDefinition",
                params=listParamsParameters
            )
        ]
        listStepsTemplate = [
            CreateTemplateSteps(
                module_id="devcloud2018.codeci_action_20043.action",
                name="Build with Maven",
                enable=True
            )
        ]
        templatebody = CreateTemplate(
            steps=listStepsTemplate
        )
        request.body = CreateTemplatesRequestBody(
            parameters=listParametersbody,
            tool_type="123123",
            description="123",
            name="example",
            template=templatebody
        )
        response = client.create_templates(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
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    codeartsbuild "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/codeartsbuild/v3"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/codeartsbuild/v3/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/codeartsbuild/v3/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 := codeartsbuild.NewCodeArtsBuildClient(
        codeartsbuild.CodeArtsBuildClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            WithCredential(auth).
            Build())

    request := &model.CreateTemplatesRequest{}
	nameParams:= "name"
	valueParams:= "codeBranch"
	nameParams1:= "type"
	valueParams1:= "normalparam"
	nameParams2:= "defaultValue"
	valueParams2:= "master"
	nameParams3:= "description"
	valueParams3:= "description"
	nameParams4:= "deletion"
	valueParams4:= "false"
	nameParams5:= "defaults"
	valueParams5:= "true"
	nameParams6:= "staticVar"
	valueParams6:= "false"
	nameParams7:= "sensitiveVar"
	valueParams7:= "false"
	var listParamsParameters = []model.CreateBuildJobParameterParam{
        {
            Name: &nameParams,
            Value: &valueParams,
        },
        {
            Name: &nameParams1,
            Value: &valueParams1,
        },
        {
            Name: &nameParams2,
            Value: &valueParams2,
        },
        {
            Name: &nameParams3,
            Value: &valueParams3,
        },
        {
            Name: &nameParams4,
            Value: &valueParams4,
        },
        {
            Name: &nameParams5,
            Value: &valueParams5,
        },
        {
            Name: &nameParams6,
            Value: &valueParams6,
        },
        {
            Name: &nameParams7,
            Value: &valueParams7,
        },
    }
	nameParameters:= "hudson.model.StringParameterDefinition"
	var listParametersbody = []model.CreateBuildJobParameter{
        {
            Name: &nameParameters,
            Params: &listParamsParameters,
        },
    }
	nameSteps:= "Build with Maven"
	enableSteps:= true
	var listStepsTemplate = []model.CreateTemplateSteps{
        {
            ModuleId: "devcloud2018.codeci_action_20043.action",
            Name: &nameSteps,
            Enable: &enableSteps,
        },
    }
	templatebody := &model.CreateTemplate{
		Steps: listStepsTemplate,
	}
	toolTypeCreateTemplatesRequestBody:= "123123"
	descriptionCreateTemplatesRequestBody:= "123"
	request.Body = &model.CreateTemplatesRequestBody{
		Parameters: &listParametersbody,
		ToolType: &toolTypeCreateTemplatesRequestBody,
		Description: &descriptionCreateTemplatesRequestBody,
		Name: "example",
		Template: templatebody,
	}
	response, err := client.CreateTemplates(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

500

Internal Server Error

Error Codes

See Error Codes.