{ "consumes": [ "application/json" ], "produces": [ "application/json" ], "schemes": [ "http", "https" ], "swagger": "2.0", "info": { "description": "OpenStorage is a clustered implementation of the Open Storage specification and relies on the OCI runtime.\nIt allows you to run stateful services in containers in a multi-host clustered environment.\nThis document represents the API documentaton of Openstorage, for the GO client please visit:\nhttps://github.com/libopenstorage/openstorage", "title": "OSD API.", "contact": { "url": "https://github.com/libopenstorage/openstorage" }, "license": { "name": "APACHE2", "url": "https://opensource.org/licenses/Apache-2.0" }, "version": "2.0.0" }, "host": "localhost", "basePath": "/v1", "paths": { "/cluster/alerts/{resource}": { "get": { "description": "This will return a list of alerts for the requested resource", "produces": [ "application/json" ], "tags": [ "cluster" ], "operationId": "enumerateAlerts", "parameters": [ { "type": "integer", "description": "Resourcetype to get alerts with.\n0: All\n1: Volume\n2: Node\n3: Cluster\n4: Drive\n", "name": "resource", "in": "path", "required": true } ], "responses": { "200": { "description": "Alerts object", "schema": { "$ref": "#/definitions/Alerts" } } } } }, "/cluster/alerts/{resource}/{id}": { "delete": { "description": "This delete clear alert {id} with resourcetype {resource}", "produces": [ "application/json" ], "tags": [ "cluster" ], "operationId": "deleteAlert", "parameters": [ { "type": "integer", "description": "resourcetype to get alerts with.\n0: All\n1: Volume\n2: Node\n3: Cluster\n4: Drive\n", "name": "resource", "in": "path", "required": true }, { "type": "integer", "description": "id to get alerts with", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "Alerts object", "schema": { "type": "string" } } } } }, "/cluster/enumerate": { "get": { "description": "This will return the entire cluster object and it's nodes.", "produces": [ "application/json" ], "tags": [ "cluster" ], "summary": "Lists cluster Nodes.", "operationId": "enumerateCluster", "responses": { "200": { "description": "current cluster state", "schema": { "type": "array", "items": { "$ref": "#/definitions/Cluster" } } } } } }, "/cluster/getnodeidfromip/{idip}": { "get": { "description": "this will return the node ID for the given node IP", "produces": [ "application/json" ], "tags": [ "cluster" ], "operationId": "GetNodeIdFromIp", "parameters": [ { "type": "string", "description": "cluster node ip or id", "name": "idip", "in": "path", "required": true } ], "responses": { "200": { "description": "cluster node ID", "schema": { "type": "string" } } } } }, "/cluster/inspect/{id}": { "get": { "description": "This will return the requested node object", "produces": [ "application/json" ], "tags": [ "cluster" ], "summary": "Inspect cluster Nodes.", "operationId": "inspectNode", "parameters": [ { "type": "integer", "description": "id to get node with", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "a node", "schema": { "$ref": "#/definitions/Node" } } } } }, "/cluster/nodehealth": { "get": { "produces": [ "application/json" ], "tags": [ "node" ], "summary": "This will return node health.", "operationId": "nodeHealth", "responses": { "200": { "description": "node health of responding node.", "schema": { "type": "string" } } } } }, "/cluster/nodestatus": { "get": { "produces": [ "application/json" ], "tags": [ "node" ], "summary": "This will return the node status .", "operationId": "nodeStatus", "responses": { "200": { "description": "node status of responding node.", "schema": { "type": "string" } } } } }, "/cluster/objectstore": { "get": { "description": "This will list current objectstores", "produces": [ "application/json" ], "tags": [ "objectstore" ], "summary": "Lists Objectstore", "operationId": "objectStoreInspect", "parameters": [ { "type": "string", "description": "ID of objectstore to inspect", "name": "ID", "in": "query" } ], "responses": { "200": { "description": "success", "schema": { "$ref": "#/definitions/ObjectstoreInfo" } } } }, "put": { "description": "This will enable/disable object store functionality.", "produces": [ "application/json" ], "tags": [ "objectstore" ], "summary": "Updates object store", "operationId": "objectStoreUpdate", "parameters": [ { "type": "boolean", "description": "enable/disable flag for object store", "name": "enable", "in": "query" }, { "type": "string", "description": "ID of objectstore to update", "name": "id", "in": "query" } ], "responses": { "200": { "description": "success" } } }, "post": { "description": "This creates the volumes required to run the object store", "produces": [ "application/json" ], "tags": [ "objectstore" ], "summary": "Create an Object store", "operationId": "objectStoreCreate", "parameters": [ { "type": "string", "description": "volume on which object store to run", "name": "name", "in": "query", "required": true } ], "responses": { "200": { "description": "success", "schema": { "$ref": "#/definitions/ObjectstoreInfo" } } } }, "delete": { "description": "This will delete object store on node", "produces": [ "application/json" ], "tags": [ "objectstore" ], "summary": "Delete object store", "operationId": "objectStoreDelete", "parameters": [ { "type": "string", "description": "ID of objectstore to delete", "name": "id", "in": "query" } ], "responses": { "200": { "description": "success" } } } }, "/cluster/peerstatus": { "get": { "description": "This will return the peer node status", "produces": [ "application/json" ], "tags": [ "node" ], "operationId": "peerStatus", "parameters": [ { "type": "integer", "description": "id of the node we want to check.", "name": "name", "in": "query", "required": true } ], "responses": { "200": { "description": "node status of requested node", "schema": { "type": "string" } } } } }, "/cluster/schedpolicy": { "get": { "description": "This will list all of schedule policy", "produces": [ "application/json" ], "tags": [ "schedpolicy" ], "summary": "List schedule policies", "operationId": "schedPolicyEnumerate", "responses": { "200": { "description": "success", "schema": { "type": "array", "items": { "$ref": "#/definitions/SchedPolicy" } } } } }, "put": { "description": "This will update specified schedule policy", "produces": [ "application/json" ], "tags": [ "schedpolicy" ], "summary": "Update schedule policy", "operationId": "schedPolicyUpdate", "parameters": [ { "description": "policy name and schedule to update", "name": "schedpolicy", "in": "body", "required": true, "schema": { "$ref": "#/definitions/SchedPolicy" } } ], "responses": { "200": { "description": "success" } } }, "post": { "description": "This creates scheudle policy which will allow user to create snapshot schedule", "produces": [ "application/json" ], "tags": [ "schedpolicy" ], "summary": "Create schedule policy", "operationId": "schedPolicyCreate", "parameters": [ { "description": "policy name and schedule to create", "name": "schedpolicy", "in": "body", "required": true, "schema": { "$ref": "#/definitions/SchedPolicy" } } ], "responses": { "200": { "description": "success" } } } }, "/cluster/schedpolicy/{name}": { "get": { "description": "This will return the requested schedule policy details", "produces": [ "application/json" ], "tags": [ "schedpolicy" ], "summary": "Get policy details", "operationId": "schedPolicyGet", "parameters": [ { "type": "string", "description": "Retrive details of given policy name", "name": "name", "in": "path", "required": true } ], "responses": { "200": { "description": "success", "schema": { "$ref": "#/definitions/SchedPolicy" } } } }, "delete": { "description": "This will delete specified schedule policy", "produces": [ "application/json" ], "tags": [ "schedpolicy" ], "summary": "Delete schedule policy", "operationId": "shedPolicyDelete", "parameters": [ { "type": "string", "description": "policy name and schedule to delete", "name": "name", "in": "path", "required": true } ], "responses": { "200": { "description": "success" } } } }, "/cluster/secrets/": { "get": { "description": "This will return the value/data for given secret key", "produces": [ "application/json" ], "tags": [ "secrets" ], "summary": "Get the seceret value/data for given key", "operationId": "getSecret", "parameters": [ { "type": "string", "description": "secret id/key whose value to be retrieved", "name": "id", "in": "query", "required": true } ], "responses": { "200": { "description": "returns the value/data for given key", "schema": { "$ref": "#/definitions/GetSecretResponse" } } } }, "put": { "description": "This will set secrets data/value against given key", "produces": [ "application/json" ], "tags": [ "secrets" ], "summary": "Set Secret Value", "operationId": "setSeceret", "parameters": [ { "type": "string", "description": "key/id for secrets", "name": "id", "in": "query", "required": true }, { "description": "value/data for secrets", "name": "secretvalue", "in": "body", "required": true, "schema": { "$ref": "#/definitions/SetSecretRequest" } } ], "responses": { "200": { "description": "success" } } } }, "/cluster/secrets/defaultsecretkey": { "get": { "description": "This will return the cluster wide secret key", "produces": [ "application/json" ], "tags": [ "secrets" ], "summary": "Get cluster secret key", "operationId": "getDefaultSecretKey", "responses": { "200": { "description": "returns cluster wide secret key", "schema": { "$ref": "#/definitions/GetSecretResponse" } } } }, "put": { "description": "This will set the cluster wide default secret key", "produces": [ "application/json" ], "tags": [ "secrets" ], "summary": "Set cluster secret key", "operationId": "setDefaultSecretKey", "parameters": [ { "description": "default secret key", "name": "defaultkey", "in": "body", "required": true, "schema": { "$ref": "#/definitions/DefaultSecretKeyRequest" } } ], "responses": { "200": { "description": "success" } } } }, "/cluster/secrets/login": { "post": { "description": "This will initiate session with secret store", "produces": [ "application/json" ], "tags": [ "secrets" ], "summary": "Start session with secret store", "operationId": "secretsLogin", "parameters": [ { "description": "config for login to secret store", "name": "SecretLoginConfig", "in": "body", "required": true, "schema": { "$ref": "#/definitions/SecretLoginRequest" } } ], "responses": { "200": { "description": "success" } } } }, "/cluster/secrets/verify": { "get": { "description": "This will return error if session is not estabilished with secrets store", "produces": [ "application/json" ], "tags": [ "secrets" ], "summary": "Validates session with secret store", "operationId": "secretLoginCheck", "responses": { "200": { "description": "validates session with secret store" } } } }, "/cluster/status": { "get": { "produces": [ "application/json" ], "tags": [ "cluster" ], "summary": "this will return the cluster status.", "operationId": "status", "responses": { "200": { "description": "cluster status", "schema": { "type": "string" } } } } }, "/cluster/versions": { "get": { "description": "Lists API Versions supported by this cluster", "produces": [ "application/json" ], "tags": [ "cluster" ], "operationId": "enumerateVersions", "responses": { "200": { "description": "Supported versions", "schema": { "type": "array", "items": { "type": "string" } } } } } }, "/cluster/{id}": { "put": { "description": "This will shutdown a node (Not Implemented)", "produces": [ "application/json" ], "tags": [ "cluster" ], "operationId": "shutdownNode", "parameters": [ { "type": "integer", "description": "id to get node with", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "shutdown success", "schema": { "type": "string" } } } }, "delete": { "description": "This will delete a node from the cluster", "produces": [ "application/json" ], "tags": [ "cluster" ], "operationId": "deleteNode", "parameters": [ { "type": "integer", "description": "id to get node with", "name": "id", "in": "path", "required": true }, { "type": "boolean", "description": "forceRemove node", "name": "forceRemove", "in": "query" } ], "responses": { "200": { "description": "delete node success", "schema": { "type": "string" } } } } }, "/config/cluster": { "get": { "description": "This will return the requested cluster configuration object", "produces": [ "application/json" ], "tags": [ "config" ], "summary": "Get cluster configuration.", "operationId": "getClusterConfig", "responses": { "200": { "description": "a cluster config", "schema": { "$ref": "#/definitions/ClusterConfig" } } } }, "post": { "description": "This will set the requested cluster configuration", "produces": [ "application/json" ], "tags": [ "config" ], "summary": "Set cluster configuration.", "operationId": "setClusterConfig", "parameters": [ { "description": "cluster config json", "name": "config", "in": "body", "required": true, "schema": { "$ref": "#/definitions/ClusterConfig" } } ], "responses": { "200": { "description": "success", "schema": { "type": "string" } } } } }, "/config/enumerate": { "get": { "description": "This will return the node configuration for all nodes", "produces": [ "application/json" ], "tags": [ "config" ], "summary": "Get configuration for all nodes.", "operationId": "enumerate", "responses": { "200": { "description": "node config enumeration", "schema": { "$ref": "#/definitions/NodesConfig" } } } } }, "/config/node": { "post": { "description": "This will set the requested node configuration", "produces": [ "application/json" ], "tags": [ "config" ], "summary": "Set node configuration.", "operationId": "setNodeConfig", "parameters": [ { "description": "node config json", "name": "config", "in": "body", "required": true, "schema": { "$ref": "#/definitions/NodeConfig" } } ], "responses": { "200": { "description": "success" } } } }, "/config/node/{id}": { "get": { "description": "This will return the requested node configuration object", "produces": [ "application/json" ], "tags": [ "config" ], "summary": "Get node configuration.", "operationId": "getNodeConfig", "parameters": [ { "type": "string", "description": "id to get node with", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "a node", "schema": { "$ref": "#/definitions/NodeConfig" } } } }, "delete": { "description": "This will delete the requested node configuration object", "produces": [ "application/json" ], "tags": [ "config" ], "summary": "Delete node configuration.", "operationId": "deleteNodeConfig", "parameters": [ { "type": "string", "description": "id to reference node", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "success" } } } }, "/osd-snapshots": { "get": { "consumes": [ "multipart/form-data" ], "produces": [ "application/json" ], "tags": [ "snapshot" ], "summary": "Enumerate snapshots.", "operationId": "enumerateSnaps", "parameters": [ { "type": "string", "description": "Volume name that maps to this snap", "name": "name", "in": "query" }, { "type": "string", "description": "Comma separated volume labels\nexample: {\"label1\",\"label2\"}\n", "name": "VolumeLabels", "in": "formData" }, { "type": "string", "description": "Comma separated snap labels\nexample: {\"label1\",\"label2\"}\n", "name": "SnapLabels", "in": "formData" }, { "type": "string", "format": "uuid", "description": "Snap UUID", "name": "uuid", "in": "query" } ], "responses": { "200": { "description": "an array of snapshots", "schema": { "type": "array", "items": { "$ref": "#/definitions/Volume" } } } } }, "post": { "description": "Take a snapshot of volume in SnapCreateRequest", "produces": [ "application/json" ], "tags": [ "snapshot" ], "operationId": "createSnap", "parameters": [ { "type": "integer", "description": "id to get volume with", "name": "id", "in": "query", "required": true }, { "description": "spec to create snap with", "name": "spec", "in": "body", "required": true, "schema": { "$ref": "#/definitions/SnapCreateRequest" } } ], "responses": { "200": { "description": "an array of volumes", "schema": { "$ref": "#/definitions/SnapCreateResponse" } }, "default": { "description": "unexpected error", "schema": { "$ref": "#/definitions/SnapCreateResponse" } } } } }, "/osd-snapshots/groupsnap": { "post": { "description": "Take a snapshot of volumegroup", "produces": [ "application/json" ], "tags": [ "volumegroup" ], "operationId": "snapVolumeGroup", "parameters": [ { "description": "GroupSnap create request", "name": "groupspec", "in": "body", "required": true, "schema": { "$ref": "#/definitions/GroupSnapCreateRequest" } } ], "responses": { "200": { "description": "group snap create response", "schema": { "$ref": "#/definitions/GroupSnapCreateResponse" } }, "default": { "description": "unexpected error", "schema": { "$ref": "#/definitions/GroupSnapCreateResponse" } } } } }, "/osd-snapshots/restore/{id}": { "post": { "produces": [ "application/json" ], "tags": [ "snapshot" ], "summary": "Restore snapshot with specified id.", "operationId": "restoreSnap", "parameters": [ { "type": "integer", "description": "id of snapshot to restore", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "Restored volume", "schema": { "$ref": "#/definitions/VolumeResponse" } }, "default": { "description": "unexpected error", "schema": { "$ref": "#/definitions/VolumeResponse" } } } } }, "/osd-volumes": { "get": { "description": "Enumerate all volumes", "consumes": [ "multipart/form-data" ], "produces": [ "application/json" ], "tags": [ "volume" ], "operationId": "enumerateVolumes", "parameters": [ { "type": "string", "description": "User specified volume name (Case Sensitive)", "name": "Name", "in": "query" }, { "type": "string", "description": "Comma separated name value pairs\nexample: {\"label1\",\"label2\"}\n", "name": "Label", "in": "formData" }, { "type": "string", "description": "Comma separated name value pairs\nexample: {\"label1\",\"label2\"}\n", "name": "ConfigLabel", "in": "formData" }, { "type": "string", "format": "uuid", "description": "Volume UUID", "name": "VolumeID", "in": "query" } ], "responses": { "200": { "description": "an array of volumes", "schema": { "type": "array", "items": { "$ref": "#/definitions/Volume" } } } } } }, "/osd-volumes/catalog/{id}": { "get": { "description": "Path is optional and default the behaviour is a catalog on the root of the volume.", "produces": [ "application/json" ], "tags": [ "volume" ], "summary": "Catalog lists the files and folders on volume with specified id.", "operationId": "catalogVolume", "parameters": [ { "type": "integer", "description": "id to get volume with", "name": "id", "in": "path", "required": true }, { "type": "string", "description": "Optional path inside mount to catalog.", "name": "subfolder", "in": "query" }, { "type": "string", "description": "Folder depth we wish to return, default is all.", "name": "depth", "in": "query" } ], "responses": { "200": { "description": "volume catalog response", "schema": { "$ref": "#/definitions/CatalogResponse" } } } } }, "/osd-volumes/quiesce/{id}": { "get": { "produces": [ "application/json" ], "tags": [ "volume" ], "summary": "Quiesce volume with specified id.", "operationId": "quiesceVolume", "parameters": [ { "type": "integer", "description": "id to get volume with", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "volume set response", "schema": { "$ref": "#/definitions/VolumeResponse" } }, "default": { "description": "unexpected error", "schema": { "$ref": "#/definitions/VolumeResponse" } } } } }, "/osd-volumes/requests/{id}": { "post": { "produces": [ "application/json" ], "tags": [ "volume" ], "summary": "Get Requests for volume with specified id.", "operationId": "requestsVolume", "parameters": [ { "type": "integer", "description": "id to get volume with", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "volume set response", "schema": { "$ref": "#/definitions/ActiveRequests" } } } } }, "/osd-volumes/stats/{id}": { "get": { "produces": [ "application/json" ], "tags": [ "volume" ], "summary": "Get stats for volume with specified id.", "operationId": "statsVolume", "parameters": [ { "type": "integer", "description": "id to get volume with", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "volume set response", "schema": { "$ref": "#/definitions/Stats" } } } } }, "/osd-volumes/unquiesce/{id}": { "post": { "produces": [ "application/json" ], "tags": [ "volume" ], "summary": "Unquiesce volume with specified id.", "operationId": "unquiesceVolume", "parameters": [ { "type": "integer", "description": "id to get volume with", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "volume set response", "schema": { "$ref": "#/definitions/VolumeResponse" } }, "default": { "description": "unexpected error", "schema": { "$ref": "#/definitions/VolumeResponse" } } } } }, "/osd-volumes/usedsize/{id}": { "get": { "produces": [ "application/json" ], "tags": [ "volume" ], "summary": "Get Used size of volume with specified id.", "operationId": "usedSizeVolume", "parameters": [ { "type": "integer", "description": "id to get volume with", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "volume set response" } } } }, "/osd-volumes/versions": { "get": { "produces": [ "application/json" ], "tags": [ "volume" ], "summary": "Lists API versions supported by this volumeDriver.", "operationId": "listVersions", "responses": { "200": { "description": "Supported versions", "schema": { "type": "array", "items": { "type": "string" } } } } } }, "/osd-volumes/volservice/{id}": { "post": { "description": "Does Volume Service operation in the background on a given volume", "produces": [ "application/json" ], "tags": [ "volume" ], "operationId": "VolumeService", "parameters": [ { "type": "integer", "description": "id to get volume with", "name": "id", "in": "path", "required": true }, { "description": "Contains the volume service command and parameters for the command", "name": "VolumeServiceRequest", "in": "body", "required": true, "schema": { "$ref": "#/definitions/VolumeServiceRequest" } } ], "responses": { "200": { "description": "volume service response", "schema": { "$ref": "#/definitions/VolumeServiceResponse" } } } } }, "/osd-volumes/{id}": { "get": { "produces": [ "application/json" ], "tags": [ "volume" ], "summary": "Inspect volume with specified id.", "operationId": "inspectVolume", "parameters": [ { "type": "integer", "description": "id to get volume with", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "volume get response", "schema": { "$ref": "#/definitions/Volume" } } } }, "put": { "produces": [ "application/json" ], "tags": [ "volume" ], "summary": "Updates a single volume with given spec.", "operationId": "setVolume", "parameters": [ { "type": "integer", "description": "id to get volume with", "name": "id", "in": "path", "required": true }, { "description": "spec to set volume with", "name": "spec", "in": "body", "required": true, "schema": { "$ref": "#/definitions/VolumeSetRequest" } } ], "responses": { "200": { "description": "volume set response", "schema": { "$ref": "#/definitions/VolumeSetResponse" } }, "default": { "description": "unexpected error", "schema": { "$ref": "#/definitions/VolumeSetResponse" } } } }, "delete": { "produces": [ "application/json" ], "tags": [ "volume" ], "summary": "Delete volume with specified id.", "operationId": "deleteVolume", "parameters": [ { "type": "integer", "description": "id to get volume with", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "volume set response", "schema": { "$ref": "#/definitions/VolumeResponse" } }, "default": { "description": "unexpected error", "schema": { "$ref": "#/definitions/VolumeResponse" } } } } } }, "definitions": { "AWSConfig": { "description": "AWS configuration parameters struct", "type": "object", "properties": { "aws_access_key_id": { "type": "string", "x-go-name": "AccessKeyId" }, "aws_cmk": { "type": "string", "x-go-name": "Cmk" }, "aws_region": { "type": "string", "x-go-name": "Region" }, "aws_secret_access_key": { "type": "string", "x-go-name": "SecretAccessKey" }, "aws_secret_token_key": { "type": "string", "x-go-name": "SecretTokenKey" } }, "x-go-package": "github.com/libopenstorage/openstorage/osdconfig" }, "AuthenticateOKBody": { "description": "AuthenticateOKBody authenticate o k body", "type": "object", "required": [ "IdentityToken", "Status" ], "properties": { "IdentityToken": { "description": "An opaque token used to authenticate a user after a successful login", "type": "string" }, "Status": { "description": "The status of the authentication", "type": "string" } }, "x-go-package": "github.com/docker/docker/api/types/registry" }, "Cluster": { "type": "object", "title": "Cluster represents the state of the cluster.", "required": [ "Id" ], "properties": { "FluentDConfig": { "$ref": "#/definitions/FluentDConfig" }, "Id": { "description": "Id of the cluster.", "type": "string" }, "ManagementURL": { "description": "Management url for the cluster", "type": "string" }, "NodeId": { "description": "Id of the node on which this cluster object is initialized", "type": "string" }, "Nodes": { "description": "array of all the nodes in the cluster.", "type": "array", "items": { "$ref": "#/definitions/Node" } }, "Status": { "$ref": "#/definitions/Status" } }, "x-go-package": "github.com/libopenstorage/openstorage/api" }, "ClusterConfig": { "type": "object", "properties": { "AllowSecurityRemoval": { "type": "boolean" }, "ClusterId": { "type": "string" }, "ClusterUuid": { "type": "string" }, "DataIface": { "type": "string" }, "DataIp": { "type": "string" }, "DefaultDriver": { "type": "string" }, "FluentDHost": { "type": "string" }, "HWType": { "$ref": "#/definitions/HardwareType" }, "ManagementURL": { "type": "string" }, "MgmtIp": { "type": "string" }, "MgtIface": { "type": "string" }, "NodeId": { "type": "string" }, "QuorumTimeoutInSeconds": { "description": "QuorumTimeoutInSeconds configures time after which an\nout of quorum node will restart", "type": "integer", "format": "int64" }, "SchedulerNodeName": { "type": "string" }, "SnapLockTryDurationInMinutes": { "description": "SnapLockTryDurationInMinutes is the time for which\nthe cluster manager will try acquiring a lock for cluster snapshot", "type": "integer", "format": "int64" }, "SystemSharedSecret": { "type": "string" } }, "x-go-package": "github.com/libopenstorage/openstorage/config" }, "Config": { "type": "object", "properties": { "Osd": { "type": "object", "properties": { "ClusterConfig": { "$ref": "#/definitions/ClusterConfig" }, "Drivers": { "description": "map[string]string is volume.VolumeParams equivalent", "type": "object", "additionalProperties": { "type": "object", "additionalProperties": { "type": "string" } } }, "GraphDrivers": { "description": "map[string]string is volume.VolumeParams equivalent", "type": "object", "additionalProperties": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "x-go-package": "github.com/libopenstorage/openstorage/config" }, "ContainerChangeResponseItem": { "description": "ContainerChangeResponseItem change item in response to ContainerChanges operation", "type": "object", "required": [ "Kind", "Path" ], "properties": { "Kind": { "description": "Kind of change", "type": "integer", "format": "uint8" }, "Path": { "description": "Path to file that has changed", "type": "string" } }, "x-go-package": "github.com/docker/docker/api/types/container" }, "ContainerCreateCreatedBody": { "description": "ContainerCreateCreatedBody OK response to ContainerCreate operation", "type": "object", "required": [ "Id", "Warnings" ], "properties": { "Id": { "description": "The ID of the created container", "type": "string", "x-go-name": "ID" }, "Warnings": { "description": "Warnings encountered when creating the container", "type": "array", "items": { "type": "string" } } }, "x-go-package": "github.com/docker/docker/api/types/container" }, "ContainerTopOKBody": { "description": "ContainerTopOKBody OK response to ContainerTop operation", "type": "object", "required": [ "Processes", "Titles" ], "properties": { "Processes": { "description": "Each process running in the container, where each is process\nis an array of values corresponding to the titles.", "type": "array", "items": { "type": "array", "items": { "type": "string" } } }, "Titles": { "description": "The ps column titles", "type": "array", "items": { "type": "string" } } }, "x-go-package": "github.com/docker/docker/api/types/container" }, "ContainerUpdateOKBody": { "description": "ContainerUpdateOKBody OK response to ContainerUpdate operation", "type": "object", "required": [ "Warnings" ], "properties": { "Warnings": { "description": "warnings", "type": "array", "items": { "type": "string" } } }, "x-go-package": "github.com/docker/docker/api/types/container" }, "ContainerWaitOKBody": { "description": "ContainerWaitOKBody OK response to ContainerWait operation", "type": "object", "required": [ "Error", "StatusCode" ], "properties": { "Error": { "$ref": "#/definitions/ContainerWaitOKBodyError" }, "StatusCode": { "description": "Exit code of the container", "type": "integer", "format": "int64" } }, "x-go-package": "github.com/docker/docker/api/types/container" }, "ContainerWaitOKBodyError": { "description": "ContainerWaitOKBodyError container waiting error, if any", "type": "object", "properties": { "Message": { "description": "Details of an error", "type": "string" } }, "x-go-package": "github.com/docker/docker/api/types/container" }, "CosType": { "type": "integer", "format": "int32", "x-go-package": "github.com/libopenstorage/openstorage/api" }, "DefaultSecretKeyRequest": { "description": "DefaultSecretKeyRequest specify request to set cluster secret key", "type": "object", "properties": { "DefaultSecretKey": { "type": "string" }, "Override": { "type": "boolean" } }, "x-go-package": "github.com/libopenstorage/openstorage/secrets" }, "ErrorResponse": { "type": "object", "title": "ErrorResponse Represents an error.", "required": [ "message" ], "properties": { "message": { "description": "The error message.", "type": "string", "x-go-name": "Message" } }, "x-go-package": "github.com/docker/docker/api/types" }, "FluentDConfig": { "description": "DEPRECATED", "type": "object", "title": "FluentDConfig describes ip and port of a fluentdhost.", "properties": { "ip": { "type": "string", "x-go-name": "IP" }, "port": { "type": "string", "x-go-name": "Port" } }, "x-go-package": "github.com/libopenstorage/openstorage/api" }, "GeoConfig": { "description": "GeoConfig holds geographic information", "type": "object", "properties": { "rack": { "type": "string", "x-go-name": "Rack" }, "region": { "type": "string", "x-go-name": "Region" }, "zone": { "type": "string", "x-go-name": "Zone" } }, "x-go-package": "github.com/libopenstorage/openstorage/osdconfig" }, "GetSecretResponse": { "description": "GetSecretResponse gets secret value for given key", "type": "object", "properties": { "SecretValue": { "type": "object" } }, "x-go-package": "github.com/libopenstorage/openstorage/secrets" }, "GraphDriverData": { "type": "object", "title": "GraphDriverData Information about a container's graph driver.", "required": [ "Data", "Name" ], "properties": { "Data": { "description": "data", "type": "object", "additionalProperties": { "type": "string" } }, "Name": { "description": "name", "type": "string" } }, "x-go-package": "github.com/docker/docker/api/types" }, "HardwareType": { "type": "integer", "format": "int32", "x-go-package": "github.com/libopenstorage/openstorage/api" }, "IdResponse": { "description": "IDResponse Response to an API call that returns just an Id", "type": "object", "required": [ "Id" ], "properties": { "Id": { "description": "The id of the newly created object.", "type": "string", "x-go-name": "ID" } }, "x-go-name": "IDResponse", "x-go-package": "github.com/docker/docker/api/types" }, "ImageDeleteResponseItem": { "description": "ImageDeleteResponseItem image delete response item", "type": "object", "properties": { "Deleted": { "description": "The image ID of an image that was deleted", "type": "string" }, "Untagged": { "description": "The image ID of an image that was untagged", "type": "string" } }, "x-go-package": "github.com/docker/docker/api/types" }, "ImageSummary": { "description": "ImageSummary image summary", "type": "object", "required": [ "Containers", "Created", "Id", "Labels", "ParentId", "RepoDigests", "RepoTags", "SharedSize", "Size", "VirtualSize" ], "properties": { "Containers": { "description": "containers", "type": "integer", "format": "int64" }, "Created": { "description": "created", "type": "integer", "format": "int64" }, "Id": { "description": "Id", "type": "string", "x-go-name": "ID" }, "Labels": { "description": "labels", "type": "object", "additionalProperties": { "type": "string" } }, "ParentId": { "description": "parent Id", "type": "string", "x-go-name": "ParentID" }, "RepoDigests": { "description": "repo digests", "type": "array", "items": { "type": "string" } }, "RepoTags": { "description": "repo tags", "type": "array", "items": { "type": "string" } }, "SharedSize": { "description": "shared size", "type": "integer", "format": "int64" }, "Size": { "description": "size", "type": "integer", "format": "int64" }, "VirtualSize": { "description": "virtual size", "type": "integer", "format": "int64" } }, "x-go-package": "github.com/docker/docker/api/types" }, "KvdbConfig": { "description": "KvdbConfig stores parameters defining kvdb configuration", "type": "object", "properties": { "acl_token": { "type": "string", "x-go-name": "AclToken" }, "ca_auth_address": { "type": "string", "x-go-name": "CAAuthAddress" }, "ca_file": { "type": "string", "x-go-name": "CAFile" }, "cert_file": { "type": "string", "x-go-name": "CertFile" }, "cert_key_file": { "type": "string", "x-go-name": "CertKeyFile" }, "client_cert_auth": { "type": "string", "x-go-name": "ClientCertAuth" }, "discovery": { "type": "array", "items": { "type": "string" }, "x-go-name": "Discovery" }, "insecure_skip_verify": { "type": "boolean", "x-go-name": "InsecureSkipVerify" }, "name": { "type": "string", "x-go-name": "Name" }, "password": { "type": "string", "x-go-name": "Password" }, "transport_scheme": { "type": "string", "x-go-name": "TransportScheme" }, "trusted_ca_file": { "type": "string", "x-go-name": "TrustedCAFile" }, "username": { "type": "string", "x-go-name": "Username" } }, "x-go-package": "github.com/libopenstorage/openstorage/osdconfig" }, "NetworkConfig": { "description": "NetworkConfig is a network configuration parameters struct", "type": "object", "properties": { "data_interface": { "type": "string", "x-go-name": "DataIface" }, "mgt_interface": { "type": "string", "x-go-name": "MgtIface" } }, "x-go-package": "github.com/libopenstorage/openstorage/osdconfig" }, "Node": { "description": "It includes the current physical state (CPU, memory, storage, network usage) as\nwell as the containers running on the system.", "type": "object", "title": "Node describes the state of a node.", "properties": { "Avgload": { "description": "Average load (percentage)", "type": "integer", "format": "int64" }, "Cpu": { "description": "Cpu usage of the node.", "type": "number", "format": "double" }, "DataIp": { "description": "Data IP", "type": "string" }, "Disks": { "description": "List of disks on this node.", "type": "object", "additionalProperties": { "$ref": "#/definitions/StorageResource" } }, "GenNumber": { "description": "GenNumber of the node", "type": "integer", "format": "uint64" }, "GossipPort": { "description": "GossipPort is the port used by the gossip protocol", "type": "string" }, "HWType": { "$ref": "#/definitions/HardwareType" }, "Hostname": { "description": "Hostname of this node", "type": "string" }, "Id": { "description": "Id of the node.", "type": "string" }, "MemFree": { "description": "Free Memory of the node", "type": "integer", "format": "uint64" }, "MemTotal": { "description": "Total Memory of the node", "type": "integer", "format": "uint64" }, "MemUsed": { "description": "Used Memory of the node", "type": "integer", "format": "uint64" }, "MgmtIp": { "description": "Management IP", "type": "string" }, "NodeData": { "description": "Node data for this node (EX: Public IP, Provider, City..)", "type": "object", "additionalProperties": { "type": "object" } }, "NodeLabels": { "description": "User defined labels for node. Key Value pairs", "type": "object", "additionalProperties": { "type": "string" } }, "Pools": { "description": "List of storage pools this node supports", "type": "array", "items": { "$ref": "#/definitions/StoragePool" } }, "SchedulerNodeName": { "description": "SchedulerNodeName is name of the node in scheduler context. It can be\nempty if unable to get the name from the scheduler.", "type": "string" }, "SchedulerTopology": { "$ref": "#/definitions/SchedulerTopology" }, "SecurityStatus": { "$ref": "#/definitions/StorageNode_SecurityStatus" }, "StartTime": { "description": "Start time of this node", "type": "string", "format": "date-time" }, "Status": { "$ref": "#/definitions/Status" }, "Timestamp": { "description": "Timestamp", "type": "string", "format": "date-time" } }, "x-go-package": "github.com/libopenstorage/openstorage/api" }, "NodeConfig": { "description": "NodeConfig is a node level config data", "type": "object", "properties": { "cluster_domain": { "type": "string", "x-go-name": "ClusterDomain" }, "csi_endpoint": { "type": "string", "x-go-name": "CSIEndpoint" }, "geo": { "$ref": "#/definitions/GeoConfig" }, "network": { "$ref": "#/definitions/NetworkConfig" }, "node_id": { "type": "string", "x-go-name": "NodeId" }, "private": { "type": "object", "x-go-name": "Private" }, "storage": { "$ref": "#/definitions/StorageConfig" } }, "x-go-package": "github.com/libopenstorage/openstorage/osdconfig" }, "NodesConfig": { "description": "NodesConfig contains all of node level data", "type": "array", "items": { "$ref": "#/definitions/NodeConfig" }, "x-go-package": "github.com/libopenstorage/openstorage/osdconfig" }, "Plugin": { "description": "Plugin A plugin for the Engine API", "type": "object", "required": [ "Config", "Enabled", "Name", "Settings" ], "properties": { "Config": { "$ref": "#/definitions/PluginConfig" }, "Enabled": { "description": "True if the plugin is running. False if the plugin is not running, only installed.", "type": "boolean" }, "Id": { "description": "Id", "type": "string", "x-go-name": "ID" }, "Name": { "description": "name", "type": "string" }, "PluginReference": { "description": "plugin remote reference used to push/pull the plugin", "type": "string" }, "Settings": { "$ref": "#/definitions/PluginSettings" } }, "x-go-package": "github.com/docker/docker/api/types" }, "PluginConfig": { "type": "object", "title": "PluginConfig The config of a plugin.", "required": [ "Args", "Description", "Documentation", "Entrypoint", "Env", "Interface", "IpcHost", "Linux", "Mounts", "Network", "PidHost", "PropagatedMount", "WorkDir" ], "properties": { "Args": { "$ref": "#/definitions/PluginConfigArgs" }, "Description": { "description": "description", "type": "string" }, "DockerVersion": { "description": "Docker Version used to create the plugin", "type": "string" }, "Documentation": { "description": "documentation", "type": "string" }, "Entrypoint": { "description": "entrypoint", "type": "array", "items": { "type": "string" } }, "Env": { "description": "env", "type": "array", "items": { "$ref": "#/definitions/PluginEnv" } }, "Interface": { "$ref": "#/definitions/PluginConfigInterface" }, "IpcHost": { "description": "ipc host", "type": "boolean" }, "Linux": { "$ref": "#/definitions/PluginConfigLinux" }, "Mounts": { "description": "mounts", "type": "array", "items": { "$ref": "#/definitions/PluginMount" } }, "Network": { "$ref": "#/definitions/PluginConfigNetwork" }, "PidHost": { "description": "pid host", "type": "boolean" }, "PropagatedMount": { "description": "propagated mount", "type": "string" }, "User": { "$ref": "#/definitions/PluginConfigUser" }, "WorkDir": { "description": "work dir", "type": "string" }, "rootfs": { "$ref": "#/definitions/PluginConfigRootfs" } }, "x-go-package": "github.com/docker/docker/api/types" }, "PluginConfigArgs": { "description": "PluginConfigArgs plugin config args", "type": "object", "required": [ "Description", "Name", "Settable", "Value" ], "properties": { "Description": { "description": "description", "type": "string" }, "Name": { "description": "name", "type": "string" }, "Settable": { "description": "settable", "type": "array", "items": { "type": "string" } }, "Value": { "description": "value", "type": "array", "items": { "type": "string" } } }, "x-go-package": "github.com/docker/docker/api/types" }, "PluginConfigInterface": { "description": "PluginConfigInterface The interface between Docker and the plugin", "type": "object", "required": [ "Socket", "Types" ], "properties": { "ProtocolScheme": { "description": "Protocol to use for clients connecting to the plugin.", "type": "string" }, "Socket": { "description": "socket", "type": "string" }, "Types": { "description": "types", "type": "array", "items": { "$ref": "#/definitions/PluginInterfaceType" } } }, "x-go-package": "github.com/docker/docker/api/types" }, "PluginConfigLinux": { "description": "PluginConfigLinux plugin config linux", "type": "object", "required": [ "AllowAllDevices", "Capabilities", "Devices" ], "properties": { "AllowAllDevices": { "description": "allow all devices", "type": "boolean" }, "Capabilities": { "description": "capabilities", "type": "array", "items": { "type": "string" } }, "Devices": { "description": "devices", "type": "array", "items": { "$ref": "#/definitions/PluginDevice" } } }, "x-go-package": "github.com/docker/docker/api/types" }, "PluginConfigNetwork": { "description": "PluginConfigNetwork plugin config network", "type": "object", "required": [ "Type" ], "properties": { "Type": { "description": "type", "type": "string" } }, "x-go-package": "github.com/docker/docker/api/types" }, "PluginConfigRootfs": { "description": "PluginConfigRootfs plugin config rootfs", "type": "object", "properties": { "diff_ids": { "description": "diff ids", "type": "array", "items": { "type": "string" }, "x-go-name": "DiffIds" }, "type": { "description": "type", "type": "string", "x-go-name": "Type" } }, "x-go-package": "github.com/docker/docker/api/types" }, "PluginConfigUser": { "description": "PluginConfigUser plugin config user", "type": "object", "properties": { "GID": { "description": "g ID", "type": "integer", "format": "uint32" }, "UID": { "description": "UID", "type": "integer", "format": "uint32" } }, "x-go-package": "github.com/docker/docker/api/types" }, "PluginDevice": { "description": "PluginDevice plugin device", "type": "object", "required": [ "Description", "Name", "Path", "Settable" ], "properties": { "Description": { "description": "description", "type": "string" }, "Name": { "description": "name", "type": "string" }, "Path": { "description": "path", "type": "string" }, "Settable": { "description": "settable", "type": "array", "items": { "type": "string" } } }, "x-go-package": "github.com/docker/docker/api/types" }, "PluginEnv": { "description": "PluginEnv plugin env", "type": "object", "required": [ "Description", "Name", "Settable", "Value" ], "properties": { "Description": { "description": "description", "type": "string" }, "Name": { "description": "name", "type": "string" }, "Settable": { "description": "settable", "type": "array", "items": { "type": "string" } }, "Value": { "description": "value", "type": "string" } }, "x-go-package": "github.com/docker/docker/api/types" }, "PluginInterfaceType": { "description": "PluginInterfaceType plugin interface type", "type": "object", "required": [ "Capability", "Prefix", "Version" ], "properties": { "Capability": { "description": "capability", "type": "string" }, "Prefix": { "description": "prefix", "type": "string" }, "Version": { "description": "version", "type": "string" } }, "x-go-package": "github.com/docker/docker/api/types" }, "PluginMount": { "description": "PluginMount plugin mount", "type": "object", "required": [ "Description", "Destination", "Name", "Options", "Settable", "Source", "Type" ], "properties": { "Description": { "description": "description", "type": "string" }, "Destination": { "description": "destination", "type": "string" }, "Name": { "description": "name", "type": "string" }, "Options": { "description": "options", "type": "array", "items": { "type": "string" } }, "Settable": { "description": "settable", "type": "array", "items": { "type": "string" } }, "Source": { "description": "source", "type": "string" }, "Type": { "description": "type", "type": "string" } }, "x-go-package": "github.com/docker/docker/api/types" }, "PluginSettings": { "type": "object", "title": "PluginSettings Settings that can be modified by users.", "required": [ "Args", "Devices", "Env", "Mounts" ], "properties": { "Args": { "description": "args", "type": "array", "items": { "type": "string" } }, "Devices": { "description": "devices", "type": "array", "items": { "$ref": "#/definitions/PluginDevice" } }, "Env": { "description": "env", "type": "array", "items": { "type": "string" } }, "Mounts": { "description": "mounts", "type": "array", "items": { "$ref": "#/definitions/PluginMount" } } }, "x-go-package": "github.com/docker/docker/api/types" }, "Port": { "description": "Port An open port on a container", "type": "object", "required": [ "PrivatePort", "Type" ], "properties": { "IP": { "description": "Host IP address that the container's port is mapped to", "type": "string" }, "PrivatePort": { "description": "Port on the container", "type": "integer", "format": "uint16" }, "PublicPort": { "description": "Port exposed on the host", "type": "integer", "format": "uint16" }, "Type": { "description": "type", "type": "string" } }, "x-go-package": "github.com/docker/docker/api/types" }, "SchedPolicy": { "description": "SchedPolicy specify name and schedule to create/update/list schedule policy", "type": "object", "properties": { "Name": { "type": "string" }, "Schedule": { "type": "string" } }, "x-go-package": "github.com/libopenstorage/openstorage/schedpolicy" }, "SchedulerTopology": { "description": "SchedulerTopology defines the topology information of the storage node\nin scheduler context", "type": "object", "properties": { "labels": { "description": "Key-value pairs defining the topology of the node", "type": "object", "additionalProperties": { "type": "string" }, "x-go-name": "Labels" } }, "x-go-package": "github.com/libopenstorage/openstorage/api" }, "SdkStoragePool_OperationStatus": { "description": "OperationStatus captures the various statuses of a storage pool operation", "type": "integer", "format": "int32", "x-go-package": "github.com/libopenstorage/openstorage/api" }, "SdkStoragePool_OperationType": { "description": "OperationType defines the various operations that are performed on a storage pool", "type": "integer", "format": "int32", "x-go-package": "github.com/libopenstorage/openstorage/api" }, "SecretLoginRequest": { "description": "SecretLoginRequest specify secret store and config to initiate\nsecret store session", "type": "object", "properties": { "SecretConfig": { "type": "object", "additionalProperties": { "type": "string" } }, "SecretType": { "type": "string" } }, "x-go-package": "github.com/libopenstorage/openstorage/secrets" }, "SecretsConfig": { "description": "SecretsConfig is a secrets configuration parameters struct", "type": "object", "properties": { "aws": { "$ref": "#/definitions/AWSConfig" }, "cluster_secret_key": { "type": "string", "x-go-name": "ClusterSecretKey" }, "secret_type": { "type": "string", "x-go-name": "SecretType" }, "vault": { "$ref": "#/definitions/VaultConfig" } }, "x-go-package": "github.com/libopenstorage/openstorage/osdconfig" }, "ServiceUpdateResponse": { "description": "ServiceUpdateResponse service update response", "type": "object", "properties": { "Warnings": { "description": "Optional warning messages", "type": "array", "items": { "type": "string" } } }, "x-go-package": "github.com/docker/docker/api/types" }, "SetSecretRequest": { "description": "SetSecretRequest stores the given value/data against the key", "type": "object", "properties": { "SecretValue": { "type": "object" } }, "x-go-package": "github.com/libopenstorage/openstorage/secrets" }, "Status": { "type": "integer", "format": "int32", "x-go-package": "github.com/libopenstorage/openstorage/api" }, "StorageConfig": { "description": "StorageConfig is a storage configuration parameters struct", "type": "object", "properties": { "devices": { "type": "array", "items": { "type": "string" }, "x-go-name": "Devices" }, "devices_md": { "type": "array", "items": { "type": "string" }, "x-go-name": "DevicesMd" }, "max_count": { "type": "integer", "format": "uint32", "x-go-name": "MaxCount" }, "max_drive_set_count": { "type": "integer", "format": "uint32", "x-go-name": "MaxDriveSetCount" }, "raid_level": { "type": "string", "x-go-name": "RaidLevel" }, "raid_level_md": { "type": "string", "x-go-name": "RaidLevelMd" } }, "x-go-package": "github.com/libopenstorage/openstorage/osdconfig" }, "StorageMedium": { "type": "integer", "format": "int32", "x-go-package": "github.com/libopenstorage/openstorage/api" }, "StorageNode_SecurityStatus": { "type": "integer", "format": "int32", "x-go-package": "github.com/libopenstorage/openstorage/api" }, "StoragePool": { "description": "StoragePool groups different storage devices based on their CosType", "type": "object", "properties": { "Cos": { "$ref": "#/definitions/CosType" }, "ID": { "description": "Deprecated! Use `uuid` instead. ID pool ID", "type": "integer", "format": "int32" }, "Medium": { "$ref": "#/definitions/StorageMedium" }, "RaidLevel": { "description": "RaidLevel storage raid level", "type": "string" }, "TotalSize": { "description": "TotalSize of the pool", "type": "integer", "format": "uint64" }, "Used": { "description": "Used size of the pool", "type": "integer", "format": "uint64" }, "labels": { "description": "Labels is a list of user defined name-value pairs", "type": "object", "additionalProperties": { "type": "string" }, "x-go-name": "Labels" }, "last_operation": { "$ref": "#/definitions/StoragePoolOperation" }, "uuid": { "description": "UUID is the unique identifier for a storage pool", "type": "string", "x-go-name": "Uuid" } }, "x-go-package": "github.com/libopenstorage/openstorage/api" }, "StoragePoolOperation": { "description": "StoragePoolOperation defines an operation being performed on a storage pool", "type": "object", "properties": { "msg": { "description": "Msg is a user friendly message for the operation", "type": "string", "x-go-name": "Msg" }, "params": { "description": "Params for the parameters for the operation", "type": "object", "additionalProperties": { "type": "string" }, "x-go-name": "Params" }, "status": { "$ref": "#/definitions/SdkStoragePool_OperationStatus" }, "type": { "$ref": "#/definitions/SdkStoragePool_OperationType" } }, "x-go-package": "github.com/libopenstorage/openstorage/api" }, "StorageResource": { "type": "object", "title": "StorageResource groups properties of a storage device.", "properties": { "cache": { "description": "True if dedicated as cache", "type": "boolean", "x-go-name": "Cache" }, "id": { "description": "Id is the LUN identifier.", "type": "string", "x-go-name": "Id" }, "iops": { "description": "IOPS", "type": "integer", "format": "uint64", "x-go-name": "Iops" }, "last_scan": { "$ref": "#/definitions/Timestamp" }, "medium": { "$ref": "#/definitions/StorageMedium" }, "metadata": { "description": "True if dedicated for metadata.", "type": "boolean", "x-go-name": "Metadata" }, "online": { "description": "True if this device is online.", "type": "boolean", "x-go-name": "Online" }, "path": { "description": "Path device path for this storage resource.", "type": "string", "x-go-name": "Path" }, "pool_metadata_dev": { "description": "True if the resource is used as thin pool metadata disk", "type": "boolean", "x-go-name": "PoolMetadataDev" }, "randRW": { "description": "RandRW", "type": "number", "format": "double", "x-go-name": "RandRW" }, "rotation_speed": { "description": "True if this device is rotational.", "type": "string", "x-go-name": "RotationSpeed" }, "seq_read": { "description": "SeqRead", "type": "number", "format": "double", "x-go-name": "SeqRead" }, "seq_write": { "description": "SeqWrite", "type": "number", "format": "double", "x-go-name": "SeqWrite" }, "size": { "description": "Total size in bytes.", "type": "integer", "format": "uint64", "x-go-name": "Size" }, "used": { "description": "Physical Bytes used.", "type": "integer", "format": "uint64", "x-go-name": "Used" } }, "x-go-package": "github.com/libopenstorage/openstorage/api" }, "Timestamp": { "description": "All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\nsecond table is needed for interpretation, using a [24-hour linear\nsmear](https://developers.google.com/time/smear).\n\nThe range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\nrestricting to that range, we ensure that we can convert to and from [RFC\n3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n\n# Examples\n\nExample 1: Compute Timestamp from POSIX `time()`.\n\nTimestamp timestamp;\ntimestamp.set_seconds(time(NULL));\ntimestamp.set_nanos(0);\n\nExample 2: Compute Timestamp from POSIX `gettimeofday()`.\n\nstruct timeval tv;\ngettimeofday(\u0026tv, NULL);\n\nTimestamp timestamp;\ntimestamp.set_seconds(tv.tv_sec);\ntimestamp.set_nanos(tv.tv_usec * 1000);\n\nExample 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n\nFILETIME ft;\nGetSystemTimeAsFileTime(\u0026ft);\nUINT64 ticks = (((UINT64)ft.dwHighDateTime) \u003c\u003c 32) | ft.dwLowDateTime;\n\nA Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\nis 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\nTimestamp timestamp;\ntimestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\ntimestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n\nExample 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n\nlong millis = System.currentTimeMillis();\n\nTimestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n.setNanos((int) ((millis % 1000) * 1000000)).build();\n\n\nExample 5: Compute Timestamp from Java `Instant.now()`.\n\nInstant now = Instant.now();\n\nTimestamp timestamp =\nTimestamp.newBuilder().setSeconds(now.getEpochSecond())\n.setNanos(now.getNano()).build();\n\n\nExample 6: Compute Timestamp from current time in Python.\n\ntimestamp = Timestamp()\ntimestamp.GetCurrentTime()\n\n# JSON Mapping\n\nIn JSON format, the Timestamp type is encoded as a string in the\n[RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\nformat is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\nwhere {year} is always expressed using four digits while {month}, {day},\n{hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\nseconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\nare optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\nis required. A proto3 JSON serializer should always use UTC (as indicated by\n\"Z\") when printing the Timestamp type and a proto3 JSON parser should be\nable to accept both UTC and other timezones (as indicated by an offset).\n\nFor example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n01:30 UTC on January 15, 2017.\n\nIn JavaScript, one can convert a Date object to this format using the\nstandard\n[toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\nmethod. In Python, a standard `datetime.datetime` object can be converted\nto this format using\n[`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\nthe time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\nthe Joda Time's [`ISODateTimeFormat.dateTime()`](\nhttp://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D\n) to obtain a formatter capable of generating timestamps in this format.", "type": "object", "title": "A Timestamp represents a point in time independent of any time zone or local\ncalendar, encoded as a count of seconds and fractions of seconds at\nnanosecond resolution. The count is relative to an epoch at UTC midnight on\nJanuary 1, 1970, in the proleptic Gregorian calendar which extends the\nGregorian calendar backwards to year one.", "properties": { "nanos": { "description": "Non-negative fractions of a second at nanosecond resolution. Negative\nsecond values with fractions must still have non-negative nanos values\nthat count forward in time. Must be from 0 to 999,999,999\ninclusive.", "type": "integer", "format": "int32", "x-go-name": "Nanos" }, "seconds": { "description": "Represents seconds of UTC time since Unix epoch\n1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n9999-12-31T23:59:59Z inclusive.", "type": "integer", "format": "int64", "x-go-name": "Seconds" } }, "x-go-package": "google.golang.org/protobuf/types/known/timestamppb" }, "VaultConfig": { "description": "VaultConfig is a vault configuration parameters struct", "type": "object", "properties": { "address": { "type": "string", "x-go-name": "Address" }, "backend_path": { "type": "string", "x-go-name": "BackendPath" }, "base_path": { "type": "string", "x-go-name": "BasePath" }, "ca_cert": { "type": "string", "x-go-name": "CACert" }, "ca_path": { "type": "string", "x-go-name": "CAPath" }, "client_cert": { "type": "string", "x-go-name": "ClientCert" }, "client_key": { "type": "string", "x-go-name": "ClientKey" }, "skip_verify": { "type": "string", "x-go-name": "TLSSkipVerify" }, "tls_server_name": { "type": "string", "x-go-name": "TLSServerName" }, "token": { "type": "string", "x-go-name": "Token" } }, "x-go-package": "github.com/libopenstorage/openstorage/osdconfig" }, "Volume": { "description": "Volume volume", "type": "object", "required": [ "Driver", "Labels", "Mountpoint", "Name", "Options", "Scope" ], "properties": { "CreatedAt": { "description": "Date/Time the volume was created.", "type": "string" }, "Driver": { "description": "Name of the volume driver used by the volume.", "type": "string" }, "Labels": { "description": "User-defined key/value metadata.", "type": "object", "additionalProperties": { "type": "string" } }, "Mountpoint": { "description": "Mount path of the volume on the host.", "type": "string" }, "Name": { "description": "Name of the volume.", "type": "string" }, "Options": { "description": "The driver specific options used when creating the volume.", "type": "object", "additionalProperties": { "type": "string" } }, "Scope": { "description": "The level at which the volume exists. Either `global` for cluster-wide,\nor `local` for machine level.", "type": "string" }, "Status": { "description": "Low-level details about the volume, provided by the volume driver.\nDetails are returned as a map with key/value pairs:\n`{\"key\":\"value\",\"key2\":\"value2\"}`.\n\nThe `Status` field is optional, and is omitted if the volume driver\ndoes not support this feature.", "type": "object", "additionalProperties": { "type": "object" } }, "UsageData": { "$ref": "#/definitions/VolumeUsageData" } }, "x-go-package": "github.com/docker/docker/api/types" }, "VolumeUsageData": { "description": "VolumeUsageData Usage details about the volume. This information is used by the\n`GET /system/df` endpoint, and omitted in other endpoints.", "type": "object", "required": [ "RefCount", "Size" ], "properties": { "RefCount": { "description": "The number of containers referencing this volume. This field\nis set to `-1` if the reference-count is not available.", "type": "integer", "format": "int64" }, "Size": { "description": "Amount of disk space used by the volume (in bytes). This information\nis only available for volumes created with the `\"local\"` volume\ndriver. For volumes created with other volume drivers, this field\nis set to `-1` (\"not available\")", "type": "integer", "format": "int64" } }, "x-go-package": "github.com/docker/docker/api/types" } } }