更新时间:2024-07-04 GMT+08:00

创建插件版本

功能介绍

创建插件版本

调用方法

请参见如何调用API

URI

POST /v1/{domain_id}/agent-plugin/create

表1 路径参数

参数

是否必选

参数类型

描述

domain_id

String

租户ID

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。

通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。

表3 请求Body参数

参数

是否必选

参数类型

描述

unique_id

String

唯一ID

icon_url

String

图标URL

runtime_attribution

String

运行属性

plugin_name

String

插件名

display_name

String

展示名

business_type

String

业务类型

business_type_display_name

String

业务类型展示名

description

String

描述

is_private

Integer

是否私有

region

String

局点

maintainers

String

维护者

version

String

版本号

version_description

String

版本号说明

execution_info

execution_info object

执行信息

input_info

Array of input_info objects

输入信息

表4 execution_info

参数

是否必选

参数类型

描述

inner_execution_info

Object

执行信息

表5 input_info

参数

是否必选

参数类型

描述

name

String

名称

default_value

String

默认值

type

String

输入类型

validation

String

验证

layout_content

String

样式信息

响应参数

状态码: 400

表6 响应Body参数

参数

参数类型

描述

error_msg

String

错误信息

error_code

String

错误码

请求示例

POST https://{endpoint}/v1/ce8df55870164338a72d7e828a966a2a/agent-plugin/create

{
  "plugin_name" : "apie_test",
  "display_name" : "apie_test",
  "version" : "0.0.2",
  "version_description" : "",
  "description" : "",
  "unique_id" : "ab43c83c2ae04000afd039ad894e953b",
  "business_type" : "Normal",
  "business_type_display_name" : "通用",
  "icon_url" : "",
  "runtime_attribution" : "agent",
  "input_info" : [ ],
  "execution_info" : {
    "inner_execution_info" : {
      "execution_type" : "COMPOSITE",
      "steps" : [ {
        "task" : "official_shell_plugin",
        "name" : "执行Shell",
        "identifier" : "16993543666638cda5035-4854-4bc8-a88a-e1465b1bcc7a",
        "variables" : {
          "OFFICIAL_SHELL_SCRIPT_INPUT" : "env"
        }
      } ]
    }
  }
}

响应示例

状态码: 200

是否调用成功

true

SDK代码示例

SDK代码示例如下。

 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
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.*;

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

public class CreatePluginVersionSolution {

    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();
        CreatePluginVersionRequest request = new CreatePluginVersionRequest();
        PluginDTO body = new PluginDTO();
        PluginDTOExecutionInfo executionInfobody = new PluginDTOExecutionInfo();
        executionInfobody.withInnerExecutionInfo("{\"execution_type\":\"COMPOSITE\",\"steps\":[{\"identifier\":\"16993543666638cda5035-4854-4bc8-a88a-e1465b1bcc7a\",\"variables\":{\"OFFICIAL_SHELL_SCRIPT_INPUT\":\"env\"},\"task\":\"official_shell_plugin\",\"name\":\"执行Shell\"}]}");
        body.withExecutionInfo(executionInfobody);
        body.withVersionDescription("");
        body.withVersion("0.0.2");
        body.withDescription("");
        body.withBusinessTypeDisplayName("通用");
        body.withBusinessType("Normal");
        body.withDisplayName("apie_test");
        body.withPluginName("apie_test");
        body.withRuntimeAttribution("agent");
        body.withIconUrl("");
        body.withUniqueId("ab43c83c2ae04000afd039ad894e953b");
        request.withBody(body);
        try {
            CreatePluginVersionResponse response = client.createPluginVersion(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
# 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 = CreatePluginVersionRequest()
        executionInfobody = PluginDTOExecutionInfo(
            inner_execution_info="{\"execution_type\":\"COMPOSITE\",\"steps\":[{\"identifier\":\"16993543666638cda5035-4854-4bc8-a88a-e1465b1bcc7a\",\"variables\":{\"OFFICIAL_SHELL_SCRIPT_INPUT\":\"env\"},\"task\":\"official_shell_plugin\",\"name\":\"执行Shell\"}]}"
        )
        request.body = PluginDTO(
            execution_info=executionInfobody,
            version_description="",
            version="0.0.2",
            description="",
            business_type_display_name="通用",
            business_type="Normal",
            display_name="apie_test",
            plugin_name="apie_test",
            runtime_attribution="agent",
            icon_url="",
            unique_id="ab43c83c2ae04000afd039ad894e953b"
        )
        response = client.create_plugin_version(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
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.CreatePluginVersionRequest{}
	var innerExecutionInfoExecutionInfo interface{} = "{\"execution_type\":\"COMPOSITE\",\"steps\":[{\"identifier\":\"16993543666638cda5035-4854-4bc8-a88a-e1465b1bcc7a\",\"variables\":{\"OFFICIAL_SHELL_SCRIPT_INPUT\":\"env\"},\"task\":\"official_shell_plugin\",\"name\":\"执行Shell\"}]}"
	executionInfobody := &model.PluginDtoExecutionInfo{
		InnerExecutionInfo: &innerExecutionInfoExecutionInfo,
	}
	versionDescriptionPluginDto:= ""
	versionPluginDto:= "0.0.2"
	descriptionPluginDto:= ""
	businessTypeDisplayNamePluginDto:= "通用"
	businessTypePluginDto:= "Normal"
	displayNamePluginDto:= "apie_test"
	pluginNamePluginDto:= "apie_test"
	runtimeAttributionPluginDto:= "agent"
	iconUrlPluginDto:= ""
	uniqueIdPluginDto:= "ab43c83c2ae04000afd039ad894e953b"
	request.Body = &model.PluginDto{
		ExecutionInfo: executionInfobody,
		VersionDescription: &versionDescriptionPluginDto,
		Version: &versionPluginDto,
		Description: &descriptionPluginDto,
		BusinessTypeDisplayName: &businessTypeDisplayNamePluginDto,
		BusinessType: &businessTypePluginDto,
		DisplayName: &displayNamePluginDto,
		PluginName: &pluginNamePluginDto,
		RuntimeAttribution: &runtimeAttributionPluginDto,
		IconUrl: &iconUrlPluginDto,
		UniqueId: &uniqueIdPluginDto,
	}
	response, err := client.CreatePluginVersion(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

更多编程语言的SDK代码示例,请参见API Explorer的代码示例页签,可生成自动对应的SDK代码示例。

状态码

状态码

描述

200

是否调用成功

400

Bad request

401

Unauthorized

403

Forbidden

404

Not Found

错误码

请参见错误码