- 列出特定 Module 的可用版本
- 特定 Module 的最新版本
- 获取特定 Module 的特定版本
- 获取下载最新 Module 版本的 URL
- 获取下载特定 Module 版本的 URL
- 下载 Module
Terraform Registry API
本文是 Terraform Module的 API 文档。
有关如何从极狐GitLab 基础设施库上传和安装 Terraform Module 的说明,请参阅 Terraform Module 镜像库文档。
列出特定 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": "hellow-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": "hellow-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