openapi: 3.1.0 info: title: Docker Volume Plugin API version: "1.0.0" description: | Specification of the Docker Volume Driver API. This API is used by the Docker Engine to communicate with external volume plugins. servers: - url: http://localhost:8080 paths: /Plugin.Activate: post: summary: Activate plugin description: Returns the list of implemented interfaces. requestBody: required: false responses: "200": description: Plugin activated successfully content: application/json: schema: type: object properties: Implements: type: array items: type: string required: [Implements] /VolumeDriver.Create: post: summary: Create a new volume description: Called when Docker creates a new volume via `docker volume create`. requestBody: required: true content: application/json: schema: type: object properties: Name: type: string Opts: type: object additionalProperties: true required: [Name] responses: "200": description: Volume created successfully content: application/json: schema: $ref: "#/components/schemas/GenericResponse" /VolumeDriver.Remove: post: summary: Remove a volume requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/VolumeRequest" responses: "200": description: Volume removed content: application/json: schema: $ref: "#/components/schemas/GenericResponse" /VolumeDriver.Mount: post: summary: Mount a volume requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/MountRequest" responses: "200": description: Volume mounted content: application/json: schema: $ref: "#/components/schemas/MountResponse" /VolumeDriver.Unmount: post: summary: Unmount a volume requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/MountRequest" responses: "200": description: Volume unmounted content: application/json: schema: $ref: "#/components/schemas/GenericResponse" /VolumeDriver.Path: post: summary: Return mount path for a volume requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/VolumeRequest" responses: "200": description: Volume path content: application/json: schema: $ref: "#/components/schemas/PathResponse" /VolumeDriver.Get: post: summary: Get volume metadata requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/VolumeRequest" responses: "200": description: Volume metadata content: application/json: schema: $ref: "#/components/schemas/GetResponse" /VolumeDriver.List: post: summary: List all volumes requestBody: required: false responses: "200": description: List of managed volumes content: application/json: schema: $ref: "#/components/schemas/ListResponse" /VolumeDriver.Capabilities: post: summary: Return plugin capabilities requestBody: required: false responses: "200": description: Capabilities information content: application/json: schema: $ref: "#/components/schemas/CapabilitiesResponse" components: schemas: GenericResponse: type: object properties: Err: type: string description: Empty string indicates success. required: [Err] VolumeRequest: type: object properties: Name: type: string description: Volume name. required: [Name] MountRequest: type: object properties: Name: type: string ID: type: string required: [Name, ID] MountResponse: type: object properties: Mountpoint: type: string Err: type: string required: [Mountpoint, Err] PathResponse: type: object properties: Mountpoint: type: string Err: type: string required: [Mountpoint, Err] GetResponse: type: object properties: Volume: $ref: "#/components/schemas/Volume" Err: type: string required: [Volume, Err] ListResponse: type: object properties: Volumes: type: array items: $ref: "#/components/schemas/Volume" Err: type: string required: [Volumes, Err] CapabilitiesResponse: type: object properties: Capabilities: type: object properties: Scope: type: string enum: [local, global] Err: type: string required: [Capabilities, Err] Volume: type: object properties: Name: type: string Mountpoint: type: string Status: type: object additionalProperties: true