{ "swagger": 2, "info": { "title": "Panamax API", "description": "API Specifications to access Panamax features.", "version": "1.0.0", "license": { "name": "Apache License", "url": "https://github.com/CenturyLinkLabs/panamax-api/blob/master/LICENSE" } }, "host": "api.panamax.io", "schemes": [ "http" ], "basePath": "/", "consumes": [ "application/json" ], "produces": [ "application/json" ], "paths": { "/search": { "get": { "summary": "Search", "description": "The Search endpoint searches the Docker registeries and the Panamax Template Sources enabled in Panamax and returns information about the Panamax Templates and Docker images matching the query terms.", "tags": [ "Misc" ], "parameters": [ { "name": "q", "in": "query", "description": "Query term for the search.", "required": true, "type": "string" } ], "responses": { "200": { "description": "An array of templates", "schema": { "type": "array", "items": { "$ref": "Template" } } }, "default": { "description": "Unexpected error", "schema": { "$ref": "Error" } } } } }, "/panamax": { "get": { "summary": "Info. about Panamax metadata, versions etc.", "description": "Info. about Panamax metadata, versions etc.", "tags": [ "Misc" ], "responses": { "200": { "description": "Metadata about Panamax components", "schema": { "$ref": "Metadata" } }, "default": { "description": "Unexpected error", "schema": { "$ref": "Error" } } } } }, "/user": { "get": { "summary": "Info. about User.", "description": "Info. about User.", "tags": [ "Misc" ], "responses": { "200": { "description": "Info. about user.", "schema": { "properties": { "email": { "type": "string" }, "repos": { "type": "array", "items": { "type": "string" } }, "username": { "type": "string" }, "template_repo_providers": { "type": "array", "items": { "properties": { "id": { "type": "integer" }, "name": { "type": "string" } } } } } } }, "default": { "description": "Unexpected error", "schema": { "$ref": "Error" } } } } }, "/keywords": { "get": { "summary": "List all keywords.", "description": "List all keywords.", "tags": [ "Misc" ], "responses": { "200": { "description": "An array of Keywords.", "schema": { "type": "array", "items": { "properties": { "keyword": { "type": "string" }, "count": { "type": "integer" } } } } }, "default": { "description": "Unexpected error", "schema": { "$ref": "Error" } } } } }, "/types": { "get": { "summary": "List all types.", "description": "List all types.", "tags": [ "Misc" ], "responses": { "200": { "description": "An array of types.", "schema": { "type": "array", "items": { "properties": { "name": { "type": "string" }, "default": { "type": "boolean" } } } } }, "default": { "description": "Unexpected error", "schema": { "$ref": "Error" } } } } }, "/apps": { "get": { "summary": "List all apps.", "description": "List all apps.", "tags": [ "Apps" ], "responses": { "200": { "description": "An array of Apps.", "schema": { "$ref": "App" } }, "default": { "description": "Unexpected error", "schema": { "$ref": "Error" } } } }, "post": { "summary": "Create an App from a Template", "description": "Create an App from a Template", "tags": [ "Apps" ], "parameters": [ { "name": "template_id", "in": "query", "description": "Template Id", "required": true, "type": "string" } ], "responses": { "200": { "description": "Returns an App", "schema": { "$ref": "App" } }, "default": { "description": "Unexpected error", "schema": { "$ref": "Error" } } } } }, "/apps/{id}": { "get": { "summary": "Gets an App by id", "description": "Returns an App", "tags": [ "Apps" ], "parameters": [ { "name": "id", "in": "path", "description": "ID of App", "required": true, "type": "integer" } ], "responses": { "200": { "description": "App data", "schema": { "$ref": "App" } }, "default": { "description": "unexpected error", "schema": { "$ref": "Error" } } } }, "put": { "summary": "Rebuilds an App", "description": "Rebuilds an App", "tags": [ "Apps" ], "parameters": [ { "name": "id", "in": "path", "description": "ID of App", "required": true, "type": "integer" } ], "responses": { "204": { "description": "No content" }, "default": { "description": "unexpected error", "schema": { "$ref": "Error" } } } }, "delete": { "summary": "Deletes an App", "description": "Deletes an App", "tags": [ "Apps" ], "parameters": [ { "name": "id", "in": "path", "description": "ID of App", "required": true, "type": "integer" } ], "responses": { "204": { "description": "No content" }, "default": { "description": "unexpected error", "schema": { "$ref": "Error" } } } } }, "/apps/{id}/journal": { "get": { "summary": "Gets the Journal for an App", "description": "Returns the journal data", "tags": [ "Apps" ], "parameters": [ { "name": "id", "in": "path", "description": "ID of App", "required": true, "type": "integer" } ], "responses": { "200": { "description": "Returns the journal data", "schema": { "type": "array", "items": { "type": "object" } } }, "default": { "description": "unexpected error", "schema": { "$ref": "Error" } } } } }, "/apps/{id}/services": { "get": { "summary": "List all Services for an App", "description": "Returns an array of Services", "tags": [ "Apps" ], "parameters": [ { "name": "id", "in": "path", "description": "ID of App to get services for", "required": true, "type": "integer" } ], "responses": { "200": { "description": "Array of Services", "schema": { "type": "array", "$ref": "Service" } }, "default": { "description": "unexpected error", "schema": { "$ref": "Error" } } } }, "post": { "summary": "Creates a new Service, and adds it to an App", "description": "Returns the new Service", "tags": [ "Apps" ], "parameters": [ { "name": "service", "in": "body", "description": "Service to add to the App", "required": true, "schema": { "$ref": "NewService" } } ], "responses": { "200": { "description": "New Service response", "schema": { "$ref": "Service" } }, "default": { "description": "unexpected error", "schema": { "$ref": "Error" } } } } }, "/apps/{id}/template": { "post": { "summary": "Generates a preview of the Template from App", "description": "Returns the template data", "tags": [ "Apps" ], "parameters": [ { "name": "id", "in": "path", "description": "ID of App", "required": true, "type": "integer" }, { "name": "template_attributes", "in": "body", "description": "Template specific attributes", "schema": { "properties": { "description": { "type": "string" }, "keywords": { "type": "string" }, "authors": { "type": "string" }, "type": { "type": "string" }, "documentation": { "type": "string" } } } } ], "responses": { "200": { "description": "Returns the template data", "schema": { "template": { "type": "string" } } }, "default": { "description": "unexpected error", "schema": { "$ref": "Error" } } } } }, "/apps/{app_id}/services/{id}": { "get": { "summary": "Gets a Service for an App", "description": "Returns a Service", "tags": [ "Apps" ], "parameters": [ { "name": "app_id", "in": "path", "description": "ID of App", "required": true, "type": "integer" }, { "name": "id", "in": "path", "description": "ID of Service", "required": true, "type": "integer" } ], "responses": { "200": { "description": "Returns a Service", "schema": { "$ref": "Service" } }, "default": { "description": "unexpected error", "schema": { "$ref": "Error" } } } }, "put": { "summary": "Updates a Service", "description": "Updates a Service", "tags": [ "Apps" ], "responses": { "204": { "description": "No content" }, "default": { "description": "unexpected error", "schema": { "$ref": "Error" } } } } }, "/apps/{app_id}/services/{id}/journal": { "get": { "summary": "Gets the Journal for a Service", "description": "Returns the journal data", "tags": [ "Apps" ], "parameters": [ { "name": "app_id", "in": "path", "description": "ID of App", "required": true, "type": "integer" }, { "name": "id", "in": "path", "description": "ID of Service", "required": true, "type": "integer" } ], "responses": { "200": { "description": "Returns the journal data", "schema": { "type": "array", "items": { "type": "object" } } }, "default": { "description": "unexpected error", "schema": { "$ref": "Error" } } } } }, "/templates": { "get": { "summary": "List all Templates.", "description": "List all Templates.", "tags": [ "Templates" ], "responses": { "200": { "description": "An array of templates.", "schema": { "$ref": "Template" } }, "default": { "description": "Unexpected error", "schema": { "$ref": "Error" } } } }, "post": { "summary": "Generates a Template from App", "description": "Returns the template data", "tags": [ "Templates" ], "parameters": [ { "name": "template_attributes", "in": "body", "description": "Template specific attributes and App Id", "schema": { "properties": { "app_id": { "type": "integer" }, "name": { "type": "string" }, "description": { "type": "string" }, "keywords": { "type": "string" }, "authors": { "type": "string" }, "type": { "type": "string" }, "documentation": { "type": "string" } } } } ], "responses": { "201": { "description": "Returns the new template data", "schema": { "$ref": "Template" } }, "default": { "description": "unexpected error", "schema": { "$ref": "Error" } } } } }, "/templates/{id}": { "get": { "summary": "Gets a Template by id", "description": "Returns a Template", "tags": [ "Templates" ], "parameters": [ { "name": "id", "in": "path", "description": "ID of Template", "required": true, "type": "integer" } ], "responses": { "200": { "description": "Template data", "schema": { "$ref": "Template" } }, "default": { "description": "unexpected error", "schema": { "$ref": "Error" } } } }, "delete": { "summary": "Deletes a Template", "description": "Deletes a Template", "tags": [ "Templates" ], "parameters": [ { "name": "id", "in": "path", "description": "ID of Template", "required": true, "type": "integer" } ], "responses": { "204": { "description": "No content" }, "default": { "description": "unexpected error", "schema": { "$ref": "Error" } } } } }, "/templates/{id}/save": { "post": { "summary": "Saves a Template to a Github repo", "description": "Returns the template data", "tags": [ "Templates" ], "parameters": [ { "name": "id", "in": "path", "description": "ID of Template", "required": true, "type": "integer" }, { "name": "template_attributes", "in": "body", "description": "Template specific attributes and Repo", "schema": { "properties": { "repo": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" }, "keywords": { "type": "string" }, "authors": { "type": "string" }, "type": { "type": "string" }, "documentation": { "type": "string" } } } } ], "responses": { "204": { "description": "No Content" }, "default": { "description": "unexpected error", "schema": { "$ref": "Error" } } } } }, "/template_repos": { "get": { "summary": "List of all Template Repos", "description": "List of all Template Repos", "tags": [ "Sources" ], "responses": { "200": { "description": "An array of template repos.", "schema": { "$ref": "Template_Repos" } }, "default": { "description": "Unexpected error", "schema": { "$ref": "Error" } } } }, "post": { "summary": "Create a Template Repo", "description": "Create a Template Repo", "tags": [ "Sources" ], "parameters": [ { "name": "name", "in": "body", "description": "Specify name/path of template repo.", "required": true, "schema": { "name": { "type": "string" } } } ], "responses": { "200": { "description": "Returns a Template Repo", "schema": { "$ref": "Template_Repos" } }, "default": { "description": "Unexpected error", "schema": { "$ref": "Error" } } } } }, "/template_repos/{id}": { "post": { "summary": "Reload the Template Repo", "description": "Reload the template from a Template Repo", "tags": [ "Sources" ], "parameters": [ { "name": "id", "in": "path", "description": "ID of Template Repo", "required": true, "type": "integer" } ], "responses": { "200": { "description": "Template Repo data", "schema": { "$ref": "Template_Repos" } }, "default": { "description": "unexpected error", "schema": { "$ref": "Error" } } } }, "delete": { "summary": "Delete a Template Repo", "description": "Delete a Template Repo", "tags": [ "Sources" ], "parameters": [ { "name": "id", "in": "path", "description": "ID of Template Repo", "required": true, "type": "integer" } ], "responses": { "204": { "description": "Deletion confirmation" }, "default": { "description": "unexpected error", "schema": { "$ref": "Error" } } } } }, "/registries": { "get": { "summary": "List of all Registries", "description": "List of all Registries", "tags": [ "Registries" ], "responses": { "200": { "description": "An array of Registries.", "schema": { "$ref": "Registries" } }, "default": { "description": "Unexpected error", "schema": { "$ref": "Error" } } } }, "post": { "summary": "Create a new Registry", "description": "Creates a Registry", "tags": [ "Registries" ], "parameters": [ { "name": "endpoint", "in": "body", "description": "Specifics of Registry endpoint", "required": true, "schema": { "name": { "type": "string" }, "endpoint_url": { "type": "string" } } } ], "responses": { "201": { "description": "Returns a Registry", "schema": { "$ref": "Registries" } }, "default": { "description": "Unexpected error", "schema": { "$ref": "Error" } } } } }, "/registries/{id}": { "get": { "summary": "Gets a Registry by id", "description": "Returns a Registry", "tags": [ "Registries" ], "parameters": [ { "name": "id", "in": "path", "description": "ID of Registry", "required": true, "type": "integer" } ], "responses": { "200": { "description": "Registry data", "schema": { "$ref": "Registries" } }, "default": { "description": "unexpected error", "schema": { "$ref": "Error" } } } }, "patch": { "summary": "Update a Registry", "description": "Updates a Registry", "tags": [ "Registries" ], "parameters": [ { "name": "endpoint", "in": "body", "description": "Specifics of a Registry", "required": true, "schema": { "name": { "type": "string" }, "endpoint_url": { "type": "string" } } } ], "responses": { "204": { "description": "Updates Registry" }, "default": { "description": "Unexpected error", "schema": { "$ref": "Error" } } } }, "delete": { "summary": "Deletes a Registry by id", "description": "Deletes a Registry.", "tags": [ "Registries" ], "parameters": [ { "name": "id", "in": "path", "description": "ID of Registry", "required": true, "type": "integer" } ], "responses": { "204": { "description": "Deletion confirmation" }, "default": { "description": "unexpected error", "schema": { "$ref": "Error" } } } } }, "/deployment_targets": { "get": { "summary": "List of all Deployment Targets.", "description": "List of all Deployment Targets.", "tags": [ "Deployment Targets" ], "responses": { "200": { "description": "An array of deployment targets.", "schema": { "$ref": "Deployment_Target" } }, "default": { "description": "Unexpected error", "schema": { "$ref": "Error" } } } }, "post": { "summary": "Create a Deployment Target", "description": "Creates a new Deployment Target", "tags": [ "Deployment Targets" ], "parameters": [ { "name": "auth_block", "in": "body", "description": "Specifics of Deployment Target", "required": true, "schema": { "properties": { "name": { "type": "string" }, "auth_blob": { "type": "string" } } } } ], "responses": { "200": { "description": "Returns a Deployment Target", "schema": { "$ref": "Deployment_Target" } }, "default": { "description": "Unexpected error", "schema": { "$ref": "Error" } } } } }, "/deployment_targets/{id}": { "get": { "summary": "Gets a Deployment Target by id", "description": "Returns a Deployment Target", "tags": [ "Deployment Targets" ], "parameters": [ { "name": "id", "in": "path", "description": "ID of Deployment Target", "required": true, "type": "integer" } ], "responses": { "200": { "description": "Deployment Target data", "schema": { "$ref": "Deployment_Target" } }, "default": { "description": "unexpected error", "schema": { "$ref": "Error" } } } }, "delete": { "summary": "Deletes a Deployment Target by id", "description": "Deletes a Deployment Target.", "tags": [ "Deployment Targets" ], "parameters": [ { "name": "id", "in": "path", "description": "ID of Deployment Target", "required": true, "type": "integer" } ], "responses": { "204": { "description": "Deletion confirmation" }, "default": { "description": "unexpected error", "schema": { "$ref": "Error" } } } } }, "/deployment_targets/{id}/deployments": { "get": { "summary": "List of all Deployments for a specific Deployment Target.", "description": "List of all Deployments for a Deployment Target.", "tags": [ "Deployments" ], "responses": { "200": { "description": "An array of deployment targets.", "schema": { "$ref": "Deployments" } }, "default": { "description": "Unexpected error", "schema": { "$ref": "Error" } } } }, "post": { "summary": "Create a Deployment", "description": "Creates a new Deployment", "tags": [ "Deployments" ], "parameters": [ { "name": "deployment", "in": "body", "description": "Template ID to deploy", "required": true, "schema": { "properties": { "template_id": { "type": "string" }, "override": { "images": { "type": "array", "items": { "$ref": "Image" } } } } } } ], "responses": { "200": { "description": "Returns a Deployment", "schema": { "$ref": "Deployment" } }, "default": { "description": "Unexpected error", "schema": { "$ref": "Error" } } } } }, "/deployment_targets/{id}/deployments/{id}": { "get": { "summary": "Gets a Deployment by id", "description": "Returns a Deployment", "tags": [ "Deployments" ], "parameters": [ { "name": "id", "in": "path", "description": "ID of Deployment", "required": true, "type": "integer" } ], "responses": { "200": { "description": "Deployment data", "schema": { "$ref": "Deployment" } }, "default": { "description": "unexpected error", "schema": { "$ref": "Error" } } } }, "delete": { "summary": "Deletes a Deployment by id", "description": "Deletes a Deployment.", "tags": [ "Deployments" ], "parameters": [ { "name": "id", "in": "path", "description": "ID of Deployment.", "required": true, "type": "integer" } ], "responses": { "204": { "description": "Deletion confirmation" }, "default": { "description": "unexpected error", "schema": { "$ref": "Error" } } } } }, "/deployment_targets/{id}/deployments/{id}/redeploy": { "post": { "summary": "Redeploy Deployment to deployment endpoint", "description": "Redeploy a Deployment", "tags": [ "Deployments" ], "parameters": [ { "name": "id", "in": "path", "description": "ID of Deployment.", "required": true, "type": "integer" } ], "responses": { "200": { "description": "Returns a Deployment", "schema": { "$ref": "Deployment" } }, "default": { "description": "Unexpected error", "schema": { "$ref": "Error" } } } } } }, "definitions": { "Registries": { "properties": { "id": { "type": "integer", "description": "Unique identifier representing a Registry" }, "name": { "type": "string", "description": "Name of the Registry" }, "endpoint_url": { "type": "string", "description": "The url endpoint of the Registry" }, "enabled": { "type": "boolean", "description": "Whether images in the registry will appear in search results" } } }, "Template_Repos": { "properties": { "id": { "type": "integer", "description": "Unique identifier representing a Template Repo" }, "name": { "type": "string", "description": "Name of the Template Repo" }, "template_count": { "type": "integer", "description": "Number of templates contained in the repo" }, "updated_at": { "type": "dateTime", "description": "Date and time when the template repo was last updated" } } }, "Deployment": { "properties": { "id": { "type": "integer", "description": "Unique identifier representing a Deployment" }, "name": { "type": "string", "description": "Name of the Deployment" }, "status": { "description": "Status of services in the Deployment", "properties": { "services": { "type": "array", "description": "List of services in the deployment", "items": { "properties": { "id": { "type": "string", "description": "Name of service" }, "actualState": { "type": "string", "description": "Actual status of service" } } } } } } } }, "Deployments": { "properties": { "id": { "type": "integer", "description": "Unique identifier representing a Deployment" }, "name": { "type": "string", "description": "Name of the Deployment" }, "template": { "type": "integer", "description": "Unique identifier representing the template used to create the deployment" }, "service_ids": { "type": "array", "description": "List of services in the deployment", "items": { "properties": { "name": { "type": "string", "description": "Name of service" } } } } } }, "Deployment_Target": { "properties": { "id": { "type": "integer", "description": "Unique identifier representing a specific deployment target" }, "name": { "type": "string", "description": "Name of Deployment Target" }, "endpoint_url": { "type": "string", "description": "URL of the deployment target endpoint" }, "auth_blob": { "type": "string", "description": "Deployment Target token" }, "metadata": { "properties": { "id": { "type": "integer", "description": "Unique identifier representing a specific deployment target" }, "agent_version": { "type": "string", "description": "The version number of the remote agent" }, "adapter_version": { "type": "string", "description": "The version number of the adapter" }, "adapter_type": { "type": "string", "description": "The type of adapter" }, "created_at": { "type": "dateTime", "description": "Date and time when deployment target was created" } } } } }, "Template": { "properties": { "id": { "type": "integer", "description": "Unique identifier representing a specific template" }, "name": { "type": "string", "description": "Name of the template" }, "description": { "type": "string", "description": "Brief description about the template" }, "keywords": { "type": "string", "description": "A comma-delimted list of keywords that describe the template" }, "source": { "type": "string", "description": "The source repository where the template is stored" }, "type": { "type": "string", "description": "A type that describes the template" }, "image_count": { "type": "integer", "description": "The number of images referenced by the template" }, "created_at": { "type": "dateTime", "description": "The date/time when the template was created" }, "updated_at": { "type": "dateTime", "description": "The date/time when the template was last updated" }, "documentation": { "type": "string", "description": "The documentation for the template. This supports the Markdown format" }, "images": { "type": "array", "description": "An array of images that make up the template", "$ref": "Image" } } }, "Image": { "properties": { "id": { "type": "integer", "description": "Unique identifier representing a specific image" }, "category": { "type": "string", "description": "Category of the image" }, "name": { "type": "string", "description": "Name of the image" }, "source": { "type": "string", "description": "Source of the image from a Docker registry" }, "description": { "type": "string", "description": "Brief description about the image" }, "type": { "type": "string", "description": "A type that describes the image" }, "expose": { "type": "array", "description": "An array of ports exposed by the image", "items": { "type": "string" } }, "ports": { "description": "An array of port bindings exposed by the image", "type": "array", "items": { "$ref": "Port" } }, "links": { "description": "An array of service links exposed by the image", "type": "array", "items": { "$ref": "ServiceLink" } }, "volumes": { "description": "An array of volumes exposed by the image", "type": "array", "items": { "$ref": "Volume" } }, "volumes_from": { "type": "array", "description": "An array of volumes mounted from other images", "items": { "$ref": "Volume_From" } }, "command": { "type": "string", "description": "The command that will override the CMD value exposed by the image" } }, "required": [ "name" ] }, "App": { "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "from": { "type": "string" }, "errors": { "type": "array", "items": { "message": { "type": "string" } } }, "documentation": { "type": "string" }, "categories": { "type": "array", "$ref": "Category" } } }, "Category": { "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "position": { "type": "integer" } } }, "Service": { "properties": { "id": { "type": "integer", "description": "Unique identifier representing a specific service" }, "name": { "type": "string", "description": "Name of the service" }, "description": { "type": "string", "description": "Brief description about the service" }, "from": { "type": "string", "description": "Source image of the service" }, "ports": { "type": "array", "description": "A hash of port bindings for the service", "items": { "$ref": "Port" } }, "expose": { "type": "array", "description": "An array of ports exposed by the service", "items": { "type": "string" } }, "default_exposed_ports": { "type": "array", "description": "A hash of default exposed ports for the service", "items": { "type": "string" } }, "environment": { "type": "array", "description": "An array of environment variables", "items": { "$ref": "Environment" } }, "volumes": { "type": "array", "description": "An array of volumes exposed by the service", "items": { "$ref": "Volume" } }, "command": { "type": "string", "description": "The command that will override the CMD value exposed by the service" }, "load_state": { "type": "string" }, "active_state": { "type": "string" }, "sub_state": { "type": "string" }, "type": { "type": "string", "description": "A type that describes the service" }, "errors": { "$ref": "Error" }, "docker_status": { "type": "object" }, "app": { "properties": { "id": { "type": "integer" }, "name": { "type": "string" } } }, "categories": { "description": "Category of the image", "type": "array", "items": { "$ref": "Category" } }, "links": { "type": "array", "items": { "$ref": "ServiceLink" } }, "volumes_from": { "type": "array", "description": "An array of volumes mounted from other images", "items": { "$ref": "Volume_From" } } }, "required": [ "name" ] }, "NewService": { "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "from": { "type": "string" }, "categories": { "type": "array", "items": { "id": { "type": "integer" } } }, "ports": { "type": "array", "items": { "$ref": "Port" } }, "expose": { "type": "array", "items": { "type": "string" } }, "volumes": { "type": "array", "items": { "$ref": "Volume" } }, "links": { "type": "array", "items": { "$ref": "ServiceLink" } }, "environment": { "type": "array", "items": { "$ref": "Environment" } } }, "required": [ "name", "from" ] }, "ServiceLink": { "description": "A hash of service links", "properties": { "id": { "type": "string", "description": "The ID of the linked service" }, "service": { "type": "string", "description": "The name of the linked service" }, "alias": { "type": "string", "description": "The alias of the linked service" }, "errors": { "$ref": "Error" } }, "required": [ "service" ] }, "Port": { "description": "Port bindings", "properties": { "host_interface": { "type": "string", "format": "ipv4" }, "host_port": { "type": [ "integer", "string" ], "description": "The host port part of the port binding" }, "container_port": { "type": [ "integer", "string" ], "description": "The container port part of the port binding" }, "proto": { "type": "string", "enum": [ "UDP", "TCP" ] } } }, "Volume": { "description": "Volume information", "properties": { "host_path": { "type": "string", "description": "The host path of the volume" }, "container_path": { "type": "string", "description": "The container path volume" } } }, "Volume_From": { "description": "Volume mounted from elsewhere", "properties": { "service": { "type": "string" } }, "required": [ "service" ] }, "Environment": { "description": "Environment variables data", "properties": { "variable": { "type": "string", "description": "The name of the environment variable" }, "value": { "type": "string", "description": "The value of the environment variable" } } }, "Metadata": { "description": "Metadata about Panamax components", "properties": { "panamax-agent": { "properties": { "versions": { "properties": { "0.0.1": { "type": "string" } } } } }, "panamax-ui": { "properties": { "versions": { "properties": { "dev": { "type": "string" } } } } }, "panamax-api": { "properties": { "versions": { "properties": { "dev": { "type": "string" } } } } } } }, "Error": { "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "fields": { "type": "string" } } } } }