- 列出特定 Module 的可用版本
- 特定 Module 的最新版本
- 获取特定 Module 的特定版本
- 获取下载最新 Module 版本的 URL
- 获取下载特定 Module 版本的 URL
- 下载 Module
Terraform Module Registry API
本文是 Terraform Module Registry的 API 文档。
有关如何从极狐GitLab Terraform Module Registry 上传和安装 Terraform Module 的说明,请参阅 Terraform Module Registry 文档。
列出特定 Module 的可用版本
获取特定 Module 的可用版本。
GET packages/terraform/modules/v1/:module_namespace/:module_name/:module_system/versions
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
module_namespace |
string | yes | Terraform Module 项目或子群组所属的顶级群组(命名空间) |
module_name |
string | yes | Module 名称 |
module_system |
string | yes | Module 系统或提供者的名称 |
curl --header "Authorization: Bearer <personal_access_token>" "https://gitlab.example.com/api/v4/packages/terraform/modules/v1/group/hello-world/local/versions"
响应示例:
{
"modules": [
{
"versions": [
{
"version": "1.0.0",
"submodules": [],
"root": {
"dependencies": [],
"providers": [
{
"name": "local",
"version":""
}
]
}
},
{
"version": "0.9.3",
"submodules": [],
"root": {
"dependencies": [],
"providers": [
{
"name": "local",
"version":""
}
]
}
}
],
"source": "https://gitlab.example.com/group/hello-world"
}
]
}
特定 Module 的最新版本
获取特定 Module 的最新版本信息。
GET packages/terraform/modules/v1/:module_namespace/:module_name/:module_system
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
module_namespace |
string | yes | Terraform Module 项目所属的群组 |
module_name |
string | yes | Module 名称 |
module_system |
string | yes | Module 系统或提供者的名称 |
curl --header "Authorization: Bearer <personal_access_token>" "https://gitlab.example.com/api/v4/packages/terraform/modules/v1/group/hello-world/local"
响应示例:
{
"name": "hello-world/local",
"provider": "local",
"providers": [
"local"
],
"root": {
"dependencies": []
},
"source": "https://gitlab.example.com/group/hello-world",
"submodules": [],
"version": "1.0.0",
"versions": [
"1.0.0"
]
}
获取特定 Module 的特定版本
获取特定 Module 的特定版本信息。
GET packages/terraform/modules/v1/:module_namespace/:module_name/:module_system/1.0.0
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
module_namespace |
string | yes | Terraform Module 项目所属的群组 |
module_name |
string | yes | Module 名称 |
module_system |
string | yes | Module 系统或提供者的名称 |
curl --header "Authorization: Bearer <personal_access_token>" "https://gitlab.example.com/api/v4/packages/terraform/modules/v1/group/hello-world/local/1.0.0"
响应示例:
{
"name": "hello-world/local",
"provider": "local",
"providers": [
"local"
],
"root": {
"dependencies": []
},
"source": "https://gitlab.example.com/group/hello-world",
"submodules": [],
"version": "1.0.0",
"versions": [
"1.0.0"
]
}
获取下载最新 Module 版本的 URL
在 X-Terraform-Get
Header 中获取最新 Module 版本的下载 URL。
GET packages/terraform/modules/v1/:module_namespace/:module_name/:module_system/download
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
module_namespace |
string | yes | Terraform Module 项目所属的群组 |
module_name |
string | yes | Module 名称 |
module_system |
string | yes | Module 系统或提供者的名称 |
curl --header "Authorization: Bearer <personal_access_token>" "https://gitlab.example.com/api/v4/packages/terraform/modules/v1/group/hello-world/local/download"
响应示例:
HTTP/1.1 204 No Content
Content-Length: 0
X-Terraform-Get: /api/v4/packages/terraform/modules/v1/group/hello-world/local/1.0.0/file?token=&archive=tgz
在底层,此 API 端点跳转到 packages/terraform/modules/v1/:module_namespace/:module_name/:module_system/:module_version/download
。
获取下载特定 Module 版本的 URL
在 X-Terraform-Get
Header 中获取下载特定 Module 版本的 URL。
GET packages/terraform/modules/v1/:module_namespace/:module_name/:module_system/:module_version/download
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
module_namespace |
string | yes | Terraform Module 项目所属的群组 |
module_name |
string | yes | Module 名称 |
module_system |
string | yes | Module 系统或提供者的名称 |
module_version |
string | yes | 要下载的特定 Module 版本 |
curl --header "Authorization: Bearer <personal_access_token>" "https://gitlab.example.com/api/v4/packages/terraform/modules/v1/group/hello-world/local/1.0.0/download"
响应示例:
HTTP/1.1 204 No Content
Content-Length: 0
X-Terraform-Get: /api/v4/packages/terraform/modules/v1/group/hello-world/local/1.0.0/file?token=&archive=tgz
下载 Module
GET packages/terraform/modules/v1/:module_namespace/:module_name/:module_system/:module_version/file
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
module_namespace |
string | yes | Terraform Module 项目所属的群组 |
module_name |
string | yes | Module 名称 |
module_system |
string | yes | Module 系统或提供者的名称 |
module_version |
string | yes | 要下载的特定 Module 版本 |
curl --header "Authorization: Bearer <personal_access_token>" "https://gitlab.example.com/api/v4/packages/terraform/modules/v1/group/hello-world/local/1.0.0/file"
将输出写入文件:
curl --header "Authorization: Bearer <personal_access_token>" "https://gitlab.example.com/api/v4/packages/terraform/modules/v1/group/hello-world/local/1.0.0/file" --output hello-world-local.tgz