InfoGrab Docs

Terraform Module Registry API

요약

이 API를 사용하여 Terraform CLI와 상호작용합니다. 이 API는 Terraform CLI에서 사용하며 일반적으로 수동으로 사용하기 위한 것이 아닙니다. 지정된 모듈에 대한 모든 사용 가능한 버전을 나열합니다.

이 API를 사용하여 Terraform CLI와 상호작용합니다.

Warning

이 API는 Terraform CLI에서 사용하며 일반적으로 수동으로 사용하기 위한 것이 아닙니다. 문서화되지 않은 인증 방법은 향후 제거될 수 있습니다.

특정 모듈의 사용 가능한 버전 목록#

지정된 모듈에 대한 모든 사용 가능한 버전을 나열합니다.

GET packages/terraform/modules/v1/:module_namespace/:module_name/:module_system/versions
속성 유형 필수 설명
module_namespace string Terraform 모듈의 프로젝트 또는 하위 그룹이 속한 최상위 그룹(네임스페이스).
module_name string 모듈 이름.
module_system string 모듈 시스템 또는 공급자 이름.
curl --header "Authorization: Bearer <personal_access_token>" \
  --url "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 string Terraform 모듈의 프로젝트가 속한 그룹.
module_name string 모듈 이름.
module_system string 모듈 시스템 또는 공급자 이름.
curl --header "Authorization: Bearer <personal_access_token>" \
  --url "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 string Terraform 모듈의 프로젝트가 속한 그룹.
module_name string 모듈 이름.
module_system string 모듈 시스템 또는 공급자 이름.
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"

응답 예시:

{
  "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 string Terraform 모듈의 프로젝트가 속한 그룹.
module_name string 모듈 이름.
module_system string 모듈 시스템 또는 공급자 이름.
curl --header "Authorization: Bearer <personal_access_token>" \
  --url "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 string Terraform 모듈의 프로젝트가 속한 그룹.
module_name string 모듈 이름.
module_system string 모듈 시스템 또는 공급자 이름.
module_version string 다운로드할 특정 모듈 버전.
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"

응답 예시:

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 string Terraform 모듈의 프로젝트가 속한 그룹.
module_name string 모듈 이름.
module_system string 모듈 시스템 또는 공급자 이름.
module_version string 다운로드할 특정 모듈 버전.
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"

파일로 출력 저장:

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

프로젝트에서#

GET /projects/:id/packages/terraform/modules/:module_name/:module_system/:module_version
속성 유형 필수 설명
id integer or string 프로젝트의 ID 또는 URL 인코딩된 경로.
module_name string 모듈 이름.
module_system string 모듈 시스템 또는 공급자 이름.
module_version string 아니요 다운로드할 특정 모듈 버전. 생략하면 최신 버전이 다운로드됩니다.
curl --user "<username>:<personal_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/1/packages/terraform/modules/hello-world/local/1.0.0"

파일로 출력 저장:

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

모듈 업로드#

지정된 프로젝트의 모듈을 업로드합니다.

PUT /projects/:id/packages/terraform/modules/:module-name/:module-system/:module-version/file
속성 유형 필수 설명
id integer or string 프로젝트의 ID 또는 URL 인코딩된 경로.
module-name string 모듈 이름.
module-system string 모듈 시스템 또는 공급자 이름.
module-version string 업로드할 특정 모듈 버전.
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"

인증에 사용할 수 있는 토큰:

헤더
PRIVATE-TOKEN api 범위가 있는 개인 액세스 토큰.
DEPLOY-TOKEN write_package_registry 범위가 있는 배포 토큰.
JOB-TOKEN 잡 토큰.

응답 예시:

{
  "message": "201 Created"
}

Terraform Module Registry API

Tier: Free, Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기
요약

이 API를 사용하여 Terraform CLI와 상호작용합니다. 이 API는 Terraform CLI에서 사용하며 일반적으로 수동으로 사용하기 위한 것이 아닙니다. 지정된 모듈에 대한 모든 사용 가능한 버전을 나열합니다.

이 API를 사용하여 Terraform CLI와 상호작용합니다.

Warning

이 API는 Terraform CLI에서 사용하며 일반적으로 수동으로 사용하기 위한 것이 아닙니다. 문서화되지 않은 인증 방법은 향후 제거될 수 있습니다.

특정 모듈의 사용 가능한 버전 목록#

지정된 모듈에 대한 모든 사용 가능한 버전을 나열합니다.

GET packages/terraform/modules/v1/:module_namespace/:module_name/:module_system/versions
속성 유형 필수 설명
module_namespace string Terraform 모듈의 프로젝트 또는 하위 그룹이 속한 최상위 그룹(네임스페이스).
module_name string 모듈 이름.
module_system string 모듈 시스템 또는 공급자 이름.
curl --header "Authorization: Bearer <personal_access_token>" \
  --url "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 string Terraform 모듈의 프로젝트가 속한 그룹.
module_name string 모듈 이름.
module_system string 모듈 시스템 또는 공급자 이름.
curl --header "Authorization: Bearer <personal_access_token>" \
  --url "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 string Terraform 모듈의 프로젝트가 속한 그룹.
module_name string 모듈 이름.
module_system string 모듈 시스템 또는 공급자 이름.
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"

응답 예시:

{
  "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 string Terraform 모듈의 프로젝트가 속한 그룹.
module_name string 모듈 이름.
module_system string 모듈 시스템 또는 공급자 이름.
curl --header "Authorization: Bearer <personal_access_token>" \
  --url "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 string Terraform 모듈의 프로젝트가 속한 그룹.
module_name string 모듈 이름.
module_system string 모듈 시스템 또는 공급자 이름.
module_version string 다운로드할 특정 모듈 버전.
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"

응답 예시:

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 string Terraform 모듈의 프로젝트가 속한 그룹.
module_name string 모듈 이름.
module_system string 모듈 시스템 또는 공급자 이름.
module_version string 다운로드할 특정 모듈 버전.
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"

파일로 출력 저장:

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

프로젝트에서#

GET /projects/:id/packages/terraform/modules/:module_name/:module_system/:module_version
속성 유형 필수 설명
id integer or string 프로젝트의 ID 또는 URL 인코딩된 경로.
module_name string 모듈 이름.
module_system string 모듈 시스템 또는 공급자 이름.
module_version string 아니요 다운로드할 특정 모듈 버전. 생략하면 최신 버전이 다운로드됩니다.
curl --user "<username>:<personal_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/1/packages/terraform/modules/hello-world/local/1.0.0"

파일로 출력 저장:

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

모듈 업로드#

지정된 프로젝트의 모듈을 업로드합니다.

PUT /projects/:id/packages/terraform/modules/:module-name/:module-system/:module-version/file
속성 유형 필수 설명
id integer or string 프로젝트의 ID 또는 URL 인코딩된 경로.
module-name string 모듈 이름.
module-system string 모듈 시스템 또는 공급자 이름.
module-version string 업로드할 특정 모듈 버전.
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"

인증에 사용할 수 있는 토큰:

헤더
PRIVATE-TOKEN api 범위가 있는 개인 액세스 토큰.
DEPLOY-TOKEN write_package_registry 범위가 있는 배포 토큰.
JOB-TOKEN 잡 토큰.

응답 예시:

{
  "message": "201 Created"
}