Creating a Component
Function
This API is used to create a component.
URI
POST /v1/{project_id}/cae/applications/{application_id}/components
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
project_id |
Yes |
String |
Project ID. See Obtaining a Project ID. |
application_id |
Yes |
String |
Application ID. |
Request Parameters
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
X-Auth-Token |
Yes |
String |
User token.
|
X-Enterprise-Project-ID |
No |
String |
Enterprise project ID.
NOTE:
For details about how to obtain enterprise project IDs and enterprise project features, see Enterprise Management User Guide.
|
X-Environment-ID |
Yes |
String |
Environment ID.
|
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
api_version |
Yes |
String |
API version. Fixed value: v1. |
kind |
Yes |
String |
API type. Fixed value: Component. |
metadata |
Yes |
metadata object |
Request data. |
spec |
Yes |
spec object |
Component specifications. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
name |
Yes |
String |
Component name. |
annotations |
Yes |
Map<String,String> |
Additional parameter for creating a component. Only version is supported. This parameter is mandatory. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
runtime |
Yes |
String |
Language or runtime. |
replica |
Yes |
Integer |
Number of instances. |
build |
No |
Build object |
Build information. |
source |
Yes |
Source object |
Source information. |
resource_limit |
Yes |
ResourceLimit object |
Instance specifications |
image_url |
No |
String |
Image address. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
archive |
Yes |
Archive object |
Place where build products are archived for management. |
parameters |
Yes |
Parameters object |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
artifact_namespace |
No |
String |
SWR organization for product management. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
{User defined key} |
No |
Map<String,String> |
Additional parameters. Options:
|
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
code |
No |
Repo object |
Source code repository information. |
type |
Yes |
String |
Source type. |
sub_type |
No |
String |
Source subtype.
|
url |
Yes |
String |
URL.
|
Response Parameters
Status code: 200
Parameter |
Type |
Description |
---|---|---|
api_version |
String |
API version. Fixed value: v1. |
kind |
String |
API type. Fixed value: Component. |
metadata |
MetadataResponse object |
Response data. |
spec |
CreateComponentSpec object |
Component specifications. |
Parameter |
Type |
Description |
---|---|---|
id |
String |
Component ID. |
name |
String |
Component name. |
annotations |
Map<String,String> |
Additional attributes of the component. Options:
|
created_at |
String |
Creation time. |
updated_at |
String |
Update time. |
Parameter |
Type |
Description |
---|---|---|
runtime |
String |
Language or runtime. |
env_id |
String |
Environment ID. |
replica |
Integer |
Number of instances. |
source |
Source object |
Source information. |
build |
Build object |
Build information. |
resource_limit |
ResourceLimit object |
Instance specifications |
available_replica |
Integer |
Number of available instances. |
status |
String |
Component status.
|
Parameter |
Type |
Description |
---|---|---|
code |
Repo object |
Source code repository information. |
type |
String |
Source type. |
sub_type |
String |
Source subtype.
|
url |
String |
URL.
|
Parameter |
Type |
Description |
---|---|---|
auth_name |
String |
Authorization name. |
branch |
String |
Branch. |
namespace |
String |
Namespace, which must be Base64-encoded. |
Parameter |
Type |
Description |
---|---|---|
archive |
Archive object |
Place where build products are archived for management. |
parameters |
Parameters object |
Parameter |
Type |
Description |
---|---|---|
artifact_namespace |
String |
SWR organization for product management. |
Parameter |
Type |
Description |
---|---|---|
{User defined key} |
Map<String,String> |
Additional parameters. Options:
|
Example Requests
-
Create a component based on a source code repository: Set the component name to test-code, version to 1.0.0, and runtime to Java8, and select source code repository GitLab.
POST https://{endpoint}/v1/{project_id}/cae/applications/{application_id}/components { "api_version" : "v1", "kind" : "Component", "metadata" : { "name" : "test-code", "annotations" : { "version" : "1.0.0" } }, "spec" : { "runtime" : "Java8", "build" : { "archive" : { "artifact_namespace" : "xxx" }, "parameters" : { "base_image" : "openjdk:8u181-jdk-alpine", "dockerfile_path" : "./Dockerfile" } }, "source" : { "type" : "code", "sub_type" : "GitLab", "url" : "https://xxx:8090/xxx/cae-frontend.git", "code" : { "branch" : "master", "auth_name" : "gitlab-xxx", "namespace" : "em1n" } }, "resource_limit" : { "cpu_limit" : "500m", "memory_limit" : "1Gi" }, "replica" : 1 } }
-
Create a component based on an image: Set the component name to test-image, version to 1.0.0, and runtime to Docker, and select image nginx.
POST https://{endpoint}/v1/{project_id}/cae/applications/{application_id}/components { "api_version" : "v1", "kind" : "Component", "metadata" : { "name" : "test-image", "annotations" : { "version" : "1.0.0" } }, "spec" : { "runtime" : "Docker", "source" : { "type" : "image", "url" : "nginx:stable-alpine-perl" }, "resource_limit" : { "cpu_limit" : "500m", "memory_limit" : "1Gi" }, "replica" : 1 } }
-
Create a component based on a software package: Set the component name to test-jar, version to 1.0.0, and runtime to Java8, and select software package forecast-1.0.0.jar.
POST https://{endpoint}/v1/{project_id}/cae/applications/{application_id}/components { "api_version" : "v1", "kind" : "Component", "metadata" : { "name" : "test-jar", "annotations" : { "version" : "1.0.0" } }, "spec" : { "runtime" : "Java8", "build" : { "archive" : { "artifact_namespace" : "xxx" }, "parameters" : { "base_image" : "openjdk:8u181-jdk-alpine", "dockerfile_content" : "FROM java:8 \\nADD forecast-1.0.0.jar \\nEXPOSE 8080 \\nENTRYPOINT [\"java\",\"-jar\",\"forecast-1.0.0.jar\"]" } }, "source" : { "type" : "softwarePackage", "sub_type" : "BinObs", "url" : "https://xxx.obs.region.xxx.huawei.com/xxx/forecast-1.0.0.jar" }, "resource_limit" : { "cpu_limit" : "500m", "memory_limit" : "1Gi" }, "replica" : 1 } }
Example Responses
Status code: 200
OK
{ "api_version": "v1", "kind": "Component", "metadata": { "id": "cac09548-047f-46c4-abbd-a6a652305565", "name": "test-code", "annotations": { "log_group_id": "5b13213a-84f8-4b72-8ca5-530e15cc1402", "log_stream_id": "6ddf6c71-4767-46db-98a2-fe5fb301b366", "version": "1.0.0" }, "created_at": "2023-02-13T02:38:22.689607114Z", "updated_at": "2023-02-13T02:38:22.689607114Z" }, "spec": { "runtime": "Java8", "env_id": "9819b3f5-dd08-44ff-ba88-eb38e435594c", "replica": 1, "source": { "type": "code", "sub_type": "GitLab", "url": "http://xxx@cpe.gitlab.com:8090/xxx/cae-backend.git", "code": { "branch": "master", "auth_name": "gitlab-xxx", "namespace": "em1n" } }, "build": { "archive": { "artifact_namespace": "xxx" }, "parameters": { "base_image": "openjdk:8u181-jdk-alpine" "dockerfile_path": "./Dockerfile" } }, "resource_limit": { "cpu_limit": "500m", "memory_limit": "1Gi" }, "available_replica": 0, "status": "created" } }
Status Codes
Status Code |
Description |
---|---|
200 |
OK |
Error Codes
See Error Codes.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot