Vagrant Registries API

Endpoints for managing Vagrant box registries. A registry is a namespace that holds boxes and forms the first segment of a box tag such as hashicorp in hashicorp/vagrant.

OpenAPI Specification

vagrant-registries-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Vagrant Cloud Boxes Registries API
  description: The Vagrant Cloud API v2 enables developers to programmatically interact with the Vagrant Cloud platform for managing Vagrant boxes, versions, and providers. It supports creating and updating boxes, publishing new versions, uploading provider binaries, and searching the public box catalog. The API uses token-based authentication and is designed for automating box lifecycle management and integrating Vagrant Cloud into CI/CD pipelines.
  version: '2'
  contact:
    name: HashiCorp Support
    url: https://support.hashicorp.com
  termsOfService: https://www.hashicorp.com/terms-of-service
servers:
- url: https://app.vagrantup.com/api/v2
  description: Vagrant Cloud Production Server
security:
- bearerAuth: []
tags:
- name: Registries
  description: Endpoints for managing Vagrant box registries. A registry is a namespace that holds boxes and forms the first segment of a box tag such as hashicorp in hashicorp/vagrant.
paths:
  /vagrant/2023-01-01/registry:
    post:
      operationId: createRegistry
      summary: Create a registry
      description: Creates a new Vagrant box registry on the HashiCorp Cloud Platform. The registry name must be globally unique and will form the first segment of all box tags within the registry.
      tags:
      - Registries
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateRegistryRequest'
      responses:
        '200':
          description: Registry created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegistryResponse'
        '401':
          description: Authentication required
        '409':
          description: Registry name already exists
        '422':
          description: Validation error
  /vagrant/2023-01-01/registry/{registry}:
    get:
      operationId: readRegistry
      summary: Read a registry
      description: Retrieves detailed information about a specific Vagrant box registry on the HashiCorp Cloud Platform.
      tags:
      - Registries
      parameters:
      - $ref: '#/components/parameters/registryName'
      responses:
        '200':
          description: Registry details returned successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegistryResponse'
        '404':
          description: Registry not found
    delete:
      operationId: deleteRegistry
      summary: Delete a registry
      description: Permanently deletes a Vagrant box registry and all of its boxes, versions, and providers. This action cannot be undone.
      tags:
      - Registries
      parameters:
      - $ref: '#/components/parameters/registryName'
      responses:
        '200':
          description: Registry deleted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OperationResponse'
        '401':
          description: Authentication required
        '404':
          description: Registry not found
components:
  parameters:
    registryName:
      name: registry
      in: path
      required: true
      description: The globally unique name of the Vagrant box registry such as hashicorp in hashicorp/vagrant.
      schema:
        type: string
  schemas:
    OperationResponse:
      type: object
      description: Response containing an operation object for asynchronous actions.
      properties:
        operation:
          $ref: '#/components/schemas/Operation'
    Registry:
      type: object
      description: A Vagrant box registry is a namespace on the HashiCorp Cloud Platform that holds boxes. The registry name forms the first segment of a box tag.
      properties:
        id:
          type: string
          description: The unique identifier of the registry.
        name:
          type: string
          description: The globally unique name of the registry.
        description:
          type: string
          description: The description of the registry.
        created_at:
          type: string
          format: date-time
          description: The timestamp when the registry was created.
        updated_at:
          type: string
          format: date-time
          description: The timestamp when the registry was last updated.
    RegistryResponse:
      type: object
      description: Response containing a registry object.
      properties:
        registry:
          $ref: '#/components/schemas/Registry'
    CreateRegistryRequest:
      type: object
      description: Request body for creating a new Vagrant box registry.
      required:
      - name
      properties:
        name:
          type: string
          description: The globally unique name for the registry.
        description:
          type: string
          description: A description of the registry.
    Operation:
      type: object
      description: An operation returned by asynchronous API calls. The operation ID is unique within the region the operation is running in.
      properties:
        id:
          type: string
          description: The unique identifier of the operation within the region.
        state:
          type: string
          description: The current state of the operation.
          enum:
          - PENDING
          - RUNNING
          - DONE
        error:
          type: object
          description: Error details if the operation failed.
          properties:
            code:
              type: integer
              description: The error code.
            message:
              type: string
              description: The error message.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Vagrant Cloud API token passed as a Bearer token in the Authorization header.
externalDocs:
  description: Vagrant Cloud API v2 Documentation
  url: https://developer.hashicorp.com/vagrant/vagrant-cloud/api/v2