Vagrant · Schema
Vagrant Box
A Vagrant box is a package format for Vagrant environments that includes the base image and metadata for one or more virtualization providers. Boxes are the fundamental unit of distribution in the Vagrant ecosystem.
DevOpsVirtualizationDevelopment EnvironmentsBoxesCloudHashiCorpInfrastructure
Properties
| Name | Type | Description |
|---|---|---|
| tag | string | The full tag of the box in username/name format. |
| username | string | The username or organization that owns the box. |
| name | string | The name of the box, unique within the owner namespace. |
| private | boolean | Whether the box is private and requires authentication to access. |
| downloads | integer | The total number of downloads for this box across all versions. |
| short_description | string | A brief description of the box for display in search results and listings. |
| description | string | The full description of the box in Markdown format. |
| created_at | string | The timestamp when the box was created. |
| updated_at | string | The timestamp when the box was last updated. |
| versions | array | List of versions available for this box. |
| current_version | object | The current released version of this box. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://api-evangelist.com/schemas/vagrant/box.json",
"title": "Vagrant Box",
"description": "A Vagrant box is a package format for Vagrant environments that includes the base image and metadata for one or more virtualization providers. Boxes are the fundamental unit of distribution in the Vagrant ecosystem.",
"type": "object",
"required": ["name", "username"],
"properties": {
"tag": {
"type": "string",
"description": "The full tag of the box in username/name format.",
"pattern": "^[a-zA-Z0-9_-]+/[a-zA-Z0-9_-]+$"
},
"username": {
"type": "string",
"description": "The username or organization that owns the box.",
"minLength": 1
},
"name": {
"type": "string",
"description": "The name of the box, unique within the owner namespace.",
"minLength": 1
},
"private": {
"type": "boolean",
"description": "Whether the box is private and requires authentication to access.",
"default": false
},
"downloads": {
"type": "integer",
"description": "The total number of downloads for this box across all versions.",
"minimum": 0
},
"short_description": {
"type": "string",
"description": "A brief description of the box for display in search results and listings.",
"maxLength": 100
},
"description": {
"type": "string",
"description": "The full description of the box in Markdown format."
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "The timestamp when the box was created."
},
"updated_at": {
"type": "string",
"format": "date-time",
"description": "The timestamp when the box was last updated."
},
"versions": {
"type": "array",
"description": "List of versions available for this box.",
"items": {
"$ref": "#/$defs/Version"
}
},
"current_version": {
"description": "The current released version of this box.",
"$ref": "#/$defs/Version"
}
},
"$defs": {
"Version": {
"type": "object",
"description": "A version of a Vagrant box following semantic versioning. Versions must be released before they are available for download by users.",
"required": ["version"],
"properties": {
"version": {
"type": "string",
"description": "The version number following semantic versioning.",
"pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+.*$"
},
"status": {
"type": "string",
"description": "The release status of the version.",
"enum": ["unreleased", "active", "revoked"]
},
"description": {
"type": "string",
"description": "The description of this version in Markdown format."
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "The timestamp when the version was created."
},
"updated_at": {
"type": "string",
"format": "date-time",
"description": "The timestamp when the version was last updated."
},
"downloads": {
"type": "integer",
"description": "The total number of downloads for this version.",
"minimum": 0
},
"providers": {
"type": "array",
"description": "List of providers available for this version.",
"items": {
"$ref": "#/$defs/Provider"
}
}
}
},
"Provider": {
"type": "object",
"description": "A provider represents a specific virtualization platform for which a box file is available, such as VirtualBox, VMware, or Docker.",
"required": ["name"],
"properties": {
"name": {
"type": "string",
"description": "The name of the provider such as virtualbox, vmware_desktop, docker, or hyperv.",
"enum": [
"virtualbox",
"vmware_desktop",
"vmware_workstation",
"vmware_fusion",
"docker",
"hyperv",
"libvirt",
"parallels"
]
},
"hosted": {
"type": "boolean",
"description": "Whether the box file is hosted on Vagrant Cloud."
},
"url": {
"type": "string",
"format": "uri",
"description": "The URL of the box file if externally hosted."
},
"download_url": {
"type": "string",
"format": "uri",
"description": "The URL to download the box file."
},
"checksum_type": {
"type": "string",
"description": "The type of checksum used for the box file.",
"enum": ["md5", "sha1", "sha256", "sha384", "sha512"]
},
"checksum": {
"type": "string",
"description": "The checksum value for verifying the integrity of the box file."
},
"architecture": {
"type": "string",
"description": "The CPU architecture the box supports.",
"enum": ["amd64", "arm64", "i386", "unknown"]
},
"default_architecture": {
"type": "boolean",
"description": "Whether this is the default architecture for the provider."
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "The timestamp when the provider was created."
},
"updated_at": {
"type": "string",
"format": "date-time",
"description": "The timestamp when the provider was last updated."
}
}
}
}
}