- 特定のモジュールで利用可能なバージョンの一覧
- 特定のモジュールの最新バージョン
- 特定のモジュールの特定のバージョンを取得
- モジュールの最新バージョンをダウンロードするための URL を取得します。
- 特定のモジュールバージョンをダウンロードするためのURLの取得
- モジュールのダウンロード
Terraform モジュールレジストリ API
Terraform Module RegistryのAPIドキュメントです。
GitLab Terraform Module RegistryからTerraformモジュールをアップロードしてインストールする方法については、Terraform Module Registryのドキュメントを参照してください。
特定のモジュールで利用可能なバージョンの一覧
特定のモジュールで利用可能なバージョンの一覧を取得します。
GET packages/terraform/modules/v1/:module_namespace/:module_name/:module_system/versions
属性 | 種類 | 必須 | 説明 |
---|---|---|---|
module_namespace | 文字列です。 | yes | Terraformモジュールのプロジェクトまたはサブグループが属するトップレベルのグループ(名前空間)。 |
module_name | 文字列です。 | yes | モジュール名。 |
module_system | 文字列です。 | yes | モジュールシステムまたはプロバイダの名前。 |
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"
}
]
}
特定のモジュールの最新バージョン
指定したモジュールの最新バージョンに関する情報を取得します。
GET packages/terraform/modules/v1/:module_namespace/:module_name/:module_system
属性 | 種類 | 必須 | 説明 |
---|---|---|---|
module_namespace | 文字列です。 | yes | Terraformモジュールのプロジェクトが属するグループ。 |
module_name | 文字列です。 | yes | モジュール名。 |
module_system | 文字列です。 | yes | モジュールシステムまたはプロバイダの名前。 |
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"
]
}
特定のモジュールの特定のバージョンを取得
指定したモジュールの特定のバージョンに関する情報を取得します。
GET packages/terraform/modules/v1/:module_namespace/:module_name/:module_system/1.0.0
属性 | 種類 | 必須 | 説明 |
---|---|---|---|
module_namespace | 文字列です。 | yes | Terraformモジュールのプロジェクトが属するグループ。 |
module_name | 文字列です。 | yes | モジュール名。 |
module_system | 文字列です。 | yes | モジュールシステムまたはプロバイダの名前。 |
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"
]
}
モジュールの最新バージョンをダウンロードするための URL を取得します。
X-Terraform-Get
ヘッダで最新モジュールバージョンのダウンロードURLを取得します。
GET packages/terraform/modules/v1/:module_namespace/:module_name/:module_system/download
属性 | 種類 | 必須 | 説明 |
---|---|---|---|
module_namespace | 文字列です。 | yes | Terraformモジュールのプロジェクトが属するグループ。 |
module_name | 文字列です。 | yes | モジュール名。 |
module_system | 文字列です。 | yes | モジュールシステムまたはプロバイダの名前。 |
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
特定のモジュールバージョンをダウンロードするためのURLの取得
X-Terraform-Get
ヘッダで特定のモジュールバージョンのダウンロード URL を取得します。
GET packages/terraform/modules/v1/:module_namespace/:module_name/:module_system/:module_version/download
属性 | 種類 | 必須 | 説明 |
---|---|---|---|
module_namespace | 文字列です。 | yes | Terraformモジュールのプロジェクトが属するグループ。 |
module_name | 文字列です。 | yes | モジュール名。 |
module_system | 文字列です。 | yes | モジュールシステムまたはプロバイダの名前。 |
module_version | 文字列です。 | yes | ダウンロードするモジュールのバージョン |
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
モジュールのダウンロード
GET packages/terraform/modules/v1/:module_namespace/:module_name/:module_system/:module_version/file
属性 | 種類 | 必須 | 説明 |
---|---|---|---|
module_namespace | 文字列です。 | yes | Terraformモジュールのプロジェクトが属するグループ。 |
module_name | 文字列です。 | yes | モジュール名。 |
module_system | 文字列です。 | yes | モジュールシステムまたはプロバイダの名前。 |
module_version | 文字列です。 | yes | ダウンロードするモジュールのバージョン |
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