Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion PURL-TYPES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,6 @@ Other candidate types to define
- ``puppet`` for Puppet Forge packages:
- ``sourceforge`` for Sourceforge-based packages:
- ``sublime`` for Sublime packages:
- ``terraform`` for Terraform modules
- ``vagrant`` for Vagrant boxes
- ``vim`` for Vim scripts packages:
- ``wordpress`` for Wordpress packages:
Expand Down
3 changes: 2 additions & 1 deletion purl-types-index.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,6 @@
"qpkg",
"rpm",
"swid",
"swift"
"swift",
"terraform"
]
42 changes: 42 additions & 0 deletions types-doc/terraform-definition.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
<!-- NOTE: Auto-generated from the JSON PURL type definition.
Do not manually edit this file. Edit the JSON type definition instead. -->

# PURL Type Definition: terraform

- **Type Name:** Terraform providers and modules
- **Description:** Terraform providers and modules
- **Schema ID:** `https://packageurl.org/types/terraform-definition.json`

## PURL Syntax

The structure of a PURL for this package type is:

pkg:terraform/<namespace>/<name>@<version>?<qualifiers>#<subpath>

## Repository Information

- **Use Repository:** Yes
- **Default Repository URL:** https://registry.terraform.io
- **Note:** The HashiCorp registry is the default. Use the standard repository_url qualifier to point to another registry.

## Namespace definition

- **Requirement:** Required
- **Case Sensitive:** Yes
- **Note:** `The namespace is the provider or module namespace, which is usually the organization or vendor name.`

## Name definition

- **Case Sensitive:** Yes
- **Native Label:** Name is the name of the terraform provider or module.

## Version definition

- **Case Sensitive:** Yes
- **Native Label:** Version is the package version and is required.

## Examples

- `pkg:terraform/hashicorp/[email protected]`
- `pkg:terraform/terraform-aws-modules/[email protected]`
- `pkg:terraform/terraform-aws-modules/[email protected]?registry_url=https://registry.example.com`
30 changes: 30 additions & 0 deletions types/terraform-definition.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"$schema": "https://packageurl.org/schemas/purl-type-definition.schema-1.0.json",
"$id": "https://packageurl.org/types/terraform-definition.json",
"type": "terraform",
"type_name": "Terraform providers and modules",
"description": "Terraform providers and modules",
"repository": {
"use_repository": true,
"default_repository_url": "https://registry.terraform.io",
"note": "The HashiCorp registry is the default. Use the standard repository_url qualifier to point to another registry."
},
"namespace_definition": {
"requirement": "required",
"note": "The namespace is the provider or module namespace, which is usually the organization or vendor name.",
"case_sensitive": true
},
"name_definition": {
"case_sensitive": true,
"native_name": "Name is the name of the terraform provider or module."
},
"version_definition": {
"case_sensitive": true,
"native_name": "Version is the package version and is required."
},
"examples": [
"pkg:terraform/hashicorp/[email protected]",
"pkg:terraform/terraform-aws-modules/[email protected]",
"pkg:terraform/terraform-aws-modules/[email protected]?registry_url=https://registry.example.com"
]
}