创建模板
功能介绍
通过将本地模板文件上传至服务器的方式来创建模板。
URI
POST /v2/templates
请求消息
- 请求参数
表1 请求参数 参数
是否必选
参数类型
描述
resource
是
String
模板内容,详情请参见UploadResource。
archive_content
否
String or Binary
必须为zip/tar.gz/tgz/yaml/json格式的文件。
content_type值为yaml和json时,参数类型为String,值为yaml或json的字符串。
content_type值为空或file时,参数类型为Binary,值为文件的二进制内容。
表2 UploadResource参数 参数
是否必选
参数类型
描述
name
是
String
模板名称。长度为[1,64],由小写英文字母、数字和短横线(-)组成,且必须以英文字母开头,同时不能以短横线结尾。
description
否
String
模板描述。长度为[0,255],中文算多个字符,不能包含<>()#%&/字符。
origin_template_url
否
String
源模板的URL。通过URL上传模板场景需要。包类型必须为“zip/tar.gz/tgz”,包名需要满足正则表达式^[A-Za-z0-9][A-Za-z0-9_-]{0,254}$。
scope
否
String
模板使用范围。默认值为“domain",且只支持domain。
vendor
否
String
模板提供者。长度为[0,64],中文算单个字符,不能包含<>()#%&/字符。
version
是
String
模板版本。长度为[0,24],满足正则表达式^[a-zA-Z0-9_]+([-.][a-zA-Z0-9]+)*$。
main_file_name
否
String
模板主文件名称,为空的时候默认为blueprint.yaml。长度[0,255],如果非空,文件扩展名必须为.yaml,文件名满足正则表达式^[a-zA-Z0-9_]+([-.][a-zA-Z0-9]+)*$。
project_id
否
String
模板上传时带有的项目ID
filename
否
String
模板压缩包文件名称,在使用IE浏览器时需要指定。长度为[0,64]。
dsl_version
否
String
当非空时,上传的模板DSL版本必须与指定的一致,否则模板上传将不成功。模板DSL版本,只支持cloud_tosca_version_1_0,默认为空。
content_type
否
String
模板文件类型。可设置为yaml、json、file。
两种模板上传场景不可混用,会导致报错。
表3 请求消息头 参数
是否必选
参数类型
描述
Content-Type
是
String
该字段内容填为“multipart/form-data”。
X-Auth-Token
是
String
有效的token(具有op_cred权限的用户token,短期有效)。在租户侧必选。
后续的AOS API所含Http头在只传参数(使用json格式)的情况下,Content-Type应为Application/json。其余字段若无特殊说明,则与此表格一致。
- 请求示例
curl -k -X POST -H "X-Auth-Token: $token" -H "Content-Type:multipart/form-data" -F 'resource={"name": "test-agent-11","description":"aos","version": "1.0.1"}' -F "archive_content=@test-agent-1-1.0.tar.gz" https://aos.ae-ad-1.myhuaweicloud.com/v2/templates
响应消息
- 请求成功的响应消息
- 响应参数
表4 成功响应参数 参数
参数类型
描述
id
String
模板ID
- 响应示例
{ "id": "d078e49c-124c-7706-bcbb-81885661f431" }
- 响应参数
- 请求失败的响应消息
- 响应参数
若无特殊说明,后续AOS API的错误返回均为此形式。
- 响应示例
{ "message": "Parameters validate err, The name should not be empty.", "code": "02000005", "extend": "" }
- 响应参数
状态码
- 正常
表6 状态码 状态码
描述
201
模板创建成功。
- 异常
表7 状态码 状态码
描述
400
请求参数有误,当前请求无法被服务器解析。除非进行修改,否则客户端不应重复提交这个请求。
409
因与被请求的资源当前状态之间存在冲突,请求无法完成。
500
服务器遇到了一个未曾预料的状况,导致无法完成对请求的处理。