Back to Gitlabhq

API du registre de modules Terraform

doc-locale/fr-fr/api/packages/terraform-modules.md

19.1.010.4 KB
Original Source

{{< details >}}

  • Édition : Gratuite, GitLab Premium, GitLab Ultimate
  • Offre : GitLab.com, GitLab Self-Managed, GitLab Dedicated

{{< /details >}}

Utilisez cette API pour interagir avec le CLI Terraform.

[!warning] Cette API est utilisée par le CLI Terraform et n'est généralement pas destinée à une utilisation manuelle. Les méthodes d'authentification non documentées pourraient être supprimées à l'avenir.

Répertorier les versions disponibles pour un module spécifique {#list-available-versions-for-a-specific-module}

Répertoriez toutes les versions disponibles pour un module spécifié.

plaintext
GET packages/terraform/modules/v1/:module_namespace/:module_name/:module_system/versions
AttributTypeObligatoireDescription
module_namespacestringouiLe groupe principal (espace de nommage) auquel appartient le projet ou le sous-groupe du module Terraform.
module_namestringouiLe nom du module.
module_systemstringouiLe nom du système de module ou du fournisseur.
shell
curl --header "Authorization: Bearer <personal_access_token>" \
  --url "https://gitlab.example.com/api/v4/packages/terraform/modules/v1/group/hello-world/local/versions"

Exemple de réponse :

json
{
  "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"
    }
  ]
}

Récupérer la dernière version d'un module {#retrieve-latest-version-for-a-module}

Récupérez des informations sur la dernière version d'un module spécifié.

plaintext
GET packages/terraform/modules/v1/:module_namespace/:module_name/:module_system
AttributTypeObligatoireDescription
module_namespacestringouiLe groupe auquel appartient le projet du module Terraform.
module_namestringouiLe nom du module.
module_systemstringouiLe nom du système de module ou du fournisseur.
shell
curl --header "Authorization: Bearer <personal_access_token>" \
  --url "https://gitlab.example.com/api/v4/packages/terraform/modules/v1/group/hello-world/local"

Exemple de réponse :

json
{
  "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"
  ]
}

Récupérer une version spécifique d'un module {#retrieve-a-specific-version-for-a-module}

Récupérez des informations sur une version spécifique d'un module spécifié.

plaintext
GET packages/terraform/modules/v1/:module_namespace/:module_name/:module_system/1.0.0
AttributTypeObligatoireDescription
module_namespacestringouiLe groupe auquel appartient le projet du module Terraform.
module_namestringouiLe nom du module.
module_systemstringouiLe nom du système de module ou du fournisseur.
shell
curl --header "Authorization: Bearer <personal_access_token>" \
  --url "https://gitlab.example.com/api/v4/packages/terraform/modules/v1/group/hello-world/local/1.0.0"

Exemple de réponse :

json
{
  "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"
  ]
}

Récupérer l'URL de téléchargement pour la dernière version du module {#retrieve-download-url-for-latest-module-version}

Récupérez l'URL de téléchargement pour la dernière version du module dans l'en-tête X-Terraform-Get.

plaintext
GET packages/terraform/modules/v1/:module_namespace/:module_name/:module_system/download
AttributTypeObligatoireDescription
module_namespacestringouiLe groupe auquel appartient le projet du module Terraform.
module_namestringouiLe nom du module.
module_systemstringouiLe nom du système de module ou du fournisseur.
shell
curl --header "Authorization: Bearer <personal_access_token>" \
  --url "https://gitlab.example.com/api/v4/packages/terraform/modules/v1/group/hello-world/local/download"

Exemple de réponse :

plaintext
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

En coulisses, ce point de terminaison d'API redirige vers packages/terraform/modules/v1/:module_namespace/:module_name/:module_system/:module_version/download

Récupérer l'URL de téléchargement pour une version spécifique du module {#retrieve-download-url-for-a-specific-module-version}

Récupérez l'URL de téléchargement pour une version de module spécifiée dans l'en-tête X-Terraform-Get.

plaintext
GET packages/terraform/modules/v1/:module_namespace/:module_name/:module_system/:module_version/download
AttributTypeObligatoireDescription
module_namespacestringouiLe groupe auquel appartient le projet du module Terraform.
module_namestringouiLe nom du module.
module_systemstringouiLe nom du système de module ou du fournisseur.
module_versionstringouiVersion spécifique du module à télécharger.
shell
curl --header "Authorization: Bearer <personal_access_token>" \
  --url "https://gitlab.example.com/api/v4/packages/terraform/modules/v1/group/hello-world/local/1.0.0/download"

Exemple de réponse :

plaintext
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

Télécharger un module {#download-module}

Depuis un espace de nommage {#from-a-namespace}

plaintext
GET packages/terraform/modules/v1/:module_namespace/:module_name/:module_system/:module_version/file
AttributTypeObligatoireDescription
module_namespacestringouiLe groupe auquel appartient le projet du module Terraform.
module_namestringouiLe nom du module.
module_systemstringouiLe nom du système de module ou du fournisseur.
module_versionstringouiVersion spécifique du module à télécharger.
shell
curl --header "Authorization: Bearer <personal_access_token>" \
  --url "https://gitlab.example.com/api/v4/packages/terraform/modules/v1/group/hello-world/local/1.0.0/file"

Pour écrire la sortie dans un fichier :

shell
curl --header "Authorization: Bearer <personal_access_token>" \
  --url "https://gitlab.example.com/api/v4/packages/terraform/modules/v1/group/hello-world/local/1.0.0/file" \
  --output hello-world-local.tgz

Depuis un projet {#from-a-project}

plaintext
GET /projects/:id/packages/terraform/modules/:module_name/:module_system/:module_version
AttributTypeObligatoireDescription
identier ou chaîneouiL'ID ou le chemin encodé en URL du projet.
module_namestringouiLe nom du module.
module_systemstringouiLe nom du système de module ou du fournisseur.
module_versionstringnonVersion spécifique du module à télécharger. Si omis, la dernière version est téléchargée.
shell
curl --user "<username>:<personal_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/1/packages/terraform/modules/hello-world/local/1.0.0"

Pour écrire la sortie dans un fichier :

shell
curl --user "<username>:<personal_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/1/packages/terraform/modules/hello-world/local/1.0.0" \
  --output hello-world-local.tgz

Charger un module {#upload-module}

Chargez un module pour un projet spécifié.

plaintext
PUT /projects/:id/packages/terraform/modules/:module-name/:module-system/:module-version/file
AttributTypeObligatoireDescription
identier ou chaîneouiL'ID ou le chemin encodé en URL du projet.
module-namestringouiLe nom du module.
module-systemstringouiLe nom du système de module ou du fournisseur.
module-versionstringouiVersion spécifique du module à charger.
shell
curl --fail-with-body \
   --header "PRIVATE-TOKEN: <your_access_token>" \
   --upload-file path/to/file.tgz \
   --url  "https://gitlab.example.com/api/v4/projects/<your_project_id>/packages/terraform/modules/my-module/my-system/0.0.1/file"

Jetons pouvant être utilisés pour s'authentifier :

En-têteValeur
PRIVATE-TOKENUn jeton d'accès personnel avec la portée api.
DEPLOY-TOKENUn jeton de déploiement avec la portée write_package_registry.
JOB-TOKENUn job token.

Exemple de réponse :

json
{
  "message": "201 Created"
}