{
    "swagger": "2.0",
    "info": {
        "title": "oc-catalog",
        "description": "OpenCloud catalog\n",
        "version": "1.0.0",
        "termsOfService": "http://cloud.o-forge.io/",
        "contact": {
            "email": "admin@o-cloud.io"
        },
        "license": {
            "name": "AGPL",
            "url": "https://www.gnu.org/licenses/agpl-3.0.html"
        }
    },
    "basePath": "/oc/",
    "paths": {
        "/compute/": {
            "get": {
                "tags": [
                    "compute"
                ],
                "description": "find compute by id\n\u003cbr\u003e",
                "operationId": "ComputeController.GetAll",
                "parameters": [
                    {
                        "in": "query",
                        "name": "is_draft",
                        "description": "draft wished",
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{compute} models.compute"
                    }
                }
            },
            "post": {
                "tags": [
                    "compute"
                ],
                "description": "create compute\n\u003cbr\u003e",
                "operationId": "ComputeController.Create",
                "parameters": [
                    {
                        "in": "body",
                        "name": "compute",
                        "description": "body for compute content (Json format)",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/json"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{compute} models.compute"
                    }
                }
            }
        },
        "/compute/search/{search}": {
            "get": {
                "tags": [
                    "compute"
                ],
                "description": "find compute by key word\n\u003cbr\u003e",
                "operationId": "ComputeController.Get",
                "parameters": [
                    {
                        "in": "path",
                        "name": "search",
                        "description": "the search you want to get",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "query",
                        "name": "is_draft",
                        "description": "draft wished",
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{compute} models.compute"
                    }
                }
            }
        },
        "/compute/{id}": {
            "get": {
                "tags": [
                    "compute"
                ],
                "description": "find compute by id\n\u003cbr\u003e",
                "operationId": "ComputeController.Get",
                "parameters": [
                    {
                        "in": "path",
                        "name": "id",
                        "description": "the id you want to get",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{compute} models.compute"
                    }
                }
            },
            "put": {
                "tags": [
                    "compute"
                ],
                "description": "create computes\n\u003cbr\u003e",
                "operationId": "ComputeController.Update",
                "parameters": [
                    {
                        "in": "path",
                        "name": "id",
                        "description": "the compute id you want to get",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "body",
                        "name": "body",
                        "description": "The compute content",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.compute"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{compute} models.compute"
                    }
                }
            },
            "delete": {
                "tags": [
                    "compute"
                ],
                "description": "delete the compute\n\u003cbr\u003e",
                "operationId": "ComputeController.Delete",
                "parameters": [
                    {
                        "in": "path",
                        "name": "id",
                        "description": "The id you want to delete",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{compute} delete success!"
                    }
                }
            }
        },
        "/data/": {
            "get": {
                "tags": [
                    "data"
                ],
                "description": "find data by id\n\u003cbr\u003e",
                "operationId": "DataController.GetAll",
                "parameters": [
                    {
                        "in": "query",
                        "name": "is_draft",
                        "description": "draft wished",
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{data} models.data"
                    }
                }
            },
            "post": {
                "tags": [
                    "data"
                ],
                "description": "create data\n\u003cbr\u003e",
                "operationId": "DataController.Create",
                "parameters": [
                    {
                        "in": "body",
                        "name": "data",
                        "description": "body for data content (Json format)",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/json"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{data} models.data"
                    }
                }
            }
        },
        "/data/search/{search}": {
            "get": {
                "tags": [
                    "data"
                ],
                "responses": {
                    "200": {
                        "description": "{data} models.data"
                    }
                }
            }
        },
        "/data/{id}": {
            "get": {
                "tags": [
                    "data"
                ],
                "description": "find data by id\n\u003cbr\u003e",
                "operationId": "DataController.Get",
                "parameters": [
                    {
                        "in": "path",
                        "name": "id",
                        "description": "the id you want to get",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{data} models.data"
                    }
                }
            },
            "put": {
                "tags": [
                    "data"
                ],
                "description": "create datas\n\u003cbr\u003e",
                "operationId": "DataController.Update",
                "parameters": [
                    {
                        "in": "path",
                        "name": "id",
                        "description": "the data id you want to get",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "body",
                        "name": "body",
                        "description": "The data content",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.data"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{data} models.data"
                    }
                }
            },
            "delete": {
                "tags": [
                    "data"
                ],
                "description": "delete the data\n\u003cbr\u003e",
                "operationId": "DataController.Delete",
                "parameters": [
                    {
                        "in": "path",
                        "name": "id",
                        "description": "The id you want to delete",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{data} delete success!"
                    }
                }
            }
        },
        "/enum/booking/status": {
            "get": {
                "tags": [
                    "enum"
                ],
                "description": "get list of Infrastructure\n\u003cbr\u003e",
                "operationId": "EnumController.BookingStatus",
                "responses": {
                    "200": {
                        "description": "{resource} models.resource"
                    }
                }
            }
        },
        "/enum/infrastructure": {
            "get": {
                "tags": [
                    "enum"
                ],
                "description": "get list of Infrastructure\n\u003cbr\u003e",
                "operationId": "EnumController.EnumInfrastructure",
                "responses": {
                    "200": {
                        "description": "{resource} models.resource"
                    }
                }
            }
        },
        "/enum/pricing/refund/type": {
            "get": {
                "tags": [
                    "enum"
                ],
                "description": "get list of status\n\u003cbr\u003e",
                "operationId": "EnumController.EnumRefundType",
                "responses": {
                    "200": {
                        "description": "{resource} models.resource"
                    }
                }
            }
        },
        "/enum/pricing/strategy/buy": {
            "get": {
                "tags": [
                    "enum"
                ],
                "description": "get list of status\n\u003cbr\u003e",
                "operationId": "EnumController.EnumStrategyBuy",
                "responses": {
                    "200": {
                        "description": "{resource} models.resource"
                    }
                }
            }
        },
        "/enum/pricing/strategy/data": {
            "get": {
                "tags": [
                    "enum"
                ],
                "description": "get list of status\n\u003cbr\u003e",
                "operationId": "EnumController.EnumStrategyData",
                "responses": {
                    "200": {
                        "description": "{resource} models.resource"
                    }
                }
            }
        },
        "/enum/pricing/strategy/privilege": {
            "get": {
                "tags": [
                    "enum"
                ],
                "description": "get list of status\n\u003cbr\u003e",
                "operationId": "EnumController.EnumStrategyPrivilege",
                "responses": {
                    "200": {
                        "description": "{resource} models.resource"
                    }
                }
            }
        },
        "/enum/pricing/strategy/privilege/storage": {
            "get": {
                "tags": [
                    "enum"
                ],
                "description": "get list of status\n\u003cbr\u003e",
                "operationId": "EnumController.EnumStrategyPrivilegeStorage",
                "responses": {
                    "200": {
                        "description": "{resource} models.resource"
                    }
                }
            }
        },
        "/enum/pricing/strategy/storage": {
            "get": {
                "tags": [
                    "enum"
                ],
                "description": "get list of status\n\u003cbr\u003e",
                "operationId": "EnumController.EnumStrategyStorage",
                "responses": {
                    "200": {
                        "description": "{resource} models.resource"
                    }
                }
            }
        },
        "/enum/pricing/strategy/time": {
            "get": {
                "tags": [
                    "enum"
                ],
                "description": "get list of status\n\u003cbr\u003e",
                "operationId": "EnumController.EnumStrategyTime",
                "responses": {
                    "200": {
                        "description": "{resource} models.resource"
                    }
                }
            }
        },
        "/enum/resource/type": {
            "get": {
                "tags": [
                    "enum"
                ],
                "description": "get list of status\n\u003cbr\u003e",
                "operationId": "EnumController.EnumResourceType",
                "responses": {
                    "200": {
                        "description": "{resource} models.resource"
                    }
                }
            }
        },
        "/enum/status": {
            "get": {
                "tags": [
                    "enum"
                ],
                "description": "get list of status\n\u003cbr\u003e",
                "operationId": "EnumController.EnumStatus",
                "responses": {
                    "200": {
                        "description": "{resource} models.resource"
                    }
                }
            }
        },
        "/enum/storage/size": {
            "get": {
                "tags": [
                    "enum"
                ],
                "description": "get list of StorageSize\n\u003cbr\u003e",
                "operationId": "EnumController.EnumStorageSize",
                "responses": {
                    "200": {
                        "description": "{resource} models.resource"
                    }
                }
            }
        },
        "/enum/storage/type": {
            "get": {
                "tags": [
                    "enum"
                ],
                "description": "get list of StorageType\n\u003cbr\u003e",
                "operationId": "EnumController.EnumStorageType",
                "responses": {
                    "200": {
                        "description": "{resource} models.resource"
                    }
                }
            }
        },
        "/processing/": {
            "get": {
                "tags": [
                    "processing"
                ],
                "description": "find processing by id\n\u003cbr\u003e",
                "operationId": "ProcessingController.GetAll",
                "parameters": [
                    {
                        "in": "query",
                        "name": "is_draft",
                        "description": "draft wished",
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{processing} models.processing"
                    }
                }
            },
            "post": {
                "tags": [
                    "processing"
                ],
                "description": "create processing\n\u003cbr\u003e",
                "operationId": "ProcessingController.Create",
                "parameters": [
                    {
                        "in": "body",
                        "name": "processing",
                        "description": "body for processing content (Json format)",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/json"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{processing} models.processing"
                    }
                }
            }
        },
        "/processing/search/{search}": {
            "get": {
                "tags": [
                    "processing"
                ],
                "description": "find processing by key word\n\u003cbr\u003e",
                "operationId": "ProcessingController.Get",
                "parameters": [
                    {
                        "in": "path",
                        "name": "search",
                        "description": "the search you want to get",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "query",
                        "name": "is_draft",
                        "description": "draft wished",
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{processing} models.processing"
                    }
                }
            }
        },
        "/processing/{id}": {
            "get": {
                "tags": [
                    "processing"
                ],
                "description": "find processing by id\n\u003cbr\u003e",
                "operationId": "ProcessingController.Get",
                "parameters": [
                    {
                        "in": "path",
                        "name": "id",
                        "description": "the id you want to get",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{processing} models.processing"
                    }
                }
            },
            "put": {
                "tags": [
                    "processing"
                ],
                "description": "create processings\n\u003cbr\u003e",
                "operationId": "ProcessingController.Update",
                "parameters": [
                    {
                        "in": "path",
                        "name": "id",
                        "description": "the processing id you want to get",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "body",
                        "name": "body",
                        "description": "The processing content",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.processing"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{processing} models.processing"
                    }
                }
            },
            "delete": {
                "tags": [
                    "processing"
                ],
                "description": "delete the processing\n\u003cbr\u003e",
                "operationId": "ProcessingController.Delete",
                "parameters": [
                    {
                        "in": "path",
                        "name": "id",
                        "description": "The id you want to delete",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{processing} delete success!"
                    }
                }
            }
        },
        "/resource/": {
            "get": {
                "tags": [
                    "resource"
                ],
                "description": "find resource by id\n\u003cbr\u003e",
                "operationId": "ResourceController.GetAll",
                "parameters": [
                    {
                        "in": "query",
                        "name": "is_draft",
                        "description": "draft wished",
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{resource} models.resource"
                    }
                }
            }
        },
        "/resource/search/{search}": {
            "get": {
                "tags": [
                    "resource"
                ],
                "description": "find resource by key word\n\u003cbr\u003e",
                "operationId": "ResourceController.Get",
                "parameters": [
                    {
                        "in": "path",
                        "name": "search",
                        "description": "the search you want to get",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "query",
                        "name": "is_draft",
                        "description": "draft wished",
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{resource} models.resource"
                    }
                }
            }
        },
        "/resource/{id}": {
            "get": {
                "tags": [
                    "resource"
                ],
                "description": "find resource by id\n\u003cbr\u003e",
                "operationId": "ResourceController.Get",
                "parameters": [
                    {
                        "in": "path",
                        "name": "id",
                        "description": "the id you want to get",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{resource} models.resource"
                    }
                }
            },
            "delete": {
                "tags": [
                    "resource"
                ],
                "description": "delete the resource\n\u003cbr\u003e",
                "operationId": "ResourceController.Delete",
                "parameters": [
                    {
                        "in": "path",
                        "name": "id",
                        "description": "The id you want to deleteDeleteOne",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{resource} delete success!"
                    }
                }
            }
        },
        "/storage/": {
            "get": {
                "tags": [
                    "storage"
                ],
                "description": "find storage by id\n\u003cbr\u003e",
                "operationId": "StorageController.GetAll",
                "parameters": [
                    {
                        "in": "query",
                        "name": "is_draft",
                        "description": "draft wished",
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{storage} models.storage"
                    }
                }
            },
            "post": {
                "tags": [
                    "storage"
                ],
                "description": "create storage\n\u003cbr\u003e",
                "operationId": "StorageController.Create",
                "parameters": [
                    {
                        "in": "body",
                        "name": "storage",
                        "description": "body for storage content (Json format)",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/json"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{storage} models.storage"
                    }
                }
            }
        },
        "/storage/search/{search}": {
            "get": {
                "tags": [
                    "storage"
                ],
                "description": "find storage by key word\n\u003cbr\u003e",
                "operationId": "StorageController.Get",
                "parameters": [
                    {
                        "in": "path",
                        "name": "search",
                        "description": "the search you want to get",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "query",
                        "name": "is_draft",
                        "description": "draft wished",
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{storage} models.storage"
                    }
                }
            }
        },
        "/storage/{id}": {
            "get": {
                "tags": [
                    "storage"
                ],
                "description": "find storage by id\n\u003cbr\u003e",
                "operationId": "StorageController.Get",
                "parameters": [
                    {
                        "in": "path",
                        "name": "id",
                        "description": "the id you want to get",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{storage} models.storage"
                    }
                }
            },
            "put": {
                "tags": [
                    "storage"
                ],
                "description": "create storages\n\u003cbr\u003e",
                "operationId": "StorageController.Update",
                "parameters": [
                    {
                        "in": "path",
                        "name": "id",
                        "description": "the storage id you want to get",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "body",
                        "name": "body",
                        "description": "The storage content",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.storage"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{storage} models.storage"
                    }
                }
            },
            "delete": {
                "tags": [
                    "storage"
                ],
                "description": "delete the storage\n\u003cbr\u003e",
                "operationId": "StorageController.Delete",
                "parameters": [
                    {
                        "in": "path",
                        "name": "id",
                        "description": "The id you want to delete",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{storage} delete success!"
                    }
                }
            }
        },
        "/version/": {
            "get": {
                "tags": [
                    "version"
                ],
                "description": "get version\n\u003cbr\u003e",
                "operationId": "VersionController.GetAll",
                "responses": {
                    "200": {
                        "description": ""
                    }
                }
            }
        },
        "/version/status": {
            "get": {
                "tags": [
                    "version"
                ],
                "description": "get status\n\u003cbr\u003e",
                "operationId": "VersionController.Status",
                "responses": {
                    "200": {
                        "description": ""
                    }
                }
            }
        },
        "/workflow/": {
            "get": {
                "tags": [
                    "workflow"
                ],
                "description": "find workflow by id\n\u003cbr\u003e",
                "operationId": "WorkflowController.GetAll",
                "parameters": [
                    {
                        "in": "query",
                        "name": "is_draft",
                        "description": "draft wished",
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{workflow} models.workflow"
                    }
                }
            },
            "post": {
                "tags": [
                    "workflow"
                ],
                "description": "create workflow\n\u003cbr\u003e",
                "operationId": "WorkflowController.Create",
                "parameters": [
                    {
                        "in": "body",
                        "name": "workflow",
                        "description": "body for workflow content (Json format)",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/json"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{workflow} models.workflow"
                    }
                }
            }
        },
        "/workflow/search/{search}": {
            "get": {
                "tags": [
                    "workflow"
                ],
                "description": "find workflow by key word\n\u003cbr\u003e",
                "operationId": "WorkflowController.Get",
                "parameters": [
                    {
                        "in": "path",
                        "name": "search",
                        "description": "the search you want to get",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "query",
                        "name": "is_draft",
                        "description": "draft wished",
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{workflow} models.workflow"
                    }
                }
            }
        },
        "/workflow/{id}": {
            "get": {
                "tags": [
                    "workflow"
                ],
                "description": "find workflow by id\n\u003cbr\u003e",
                "operationId": "WorkflowController.Get",
                "parameters": [
                    {
                        "in": "path",
                        "name": "id",
                        "description": "the id you want to get",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{workflow} models.workflow"
                    }
                }
            },
            "put": {
                "tags": [
                    "workflow"
                ],
                "description": "create workflows\n\u003cbr\u003e",
                "operationId": "WorkflowController.Update",
                "parameters": [
                    {
                        "in": "path",
                        "name": "id",
                        "description": "the workflow id you want to get",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "body",
                        "name": "body",
                        "description": "The workflow content",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.workflow"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{workflow} models.workflow"
                    }
                }
            },
            "delete": {
                "tags": [
                    "workflow"
                ],
                "description": "delete the workflow\n\u003cbr\u003e",
                "operationId": "WorkflowController.Delete",
                "parameters": [
                    {
                        "in": "path",
                        "name": "id",
                        "description": "The id you want to delete",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{workflow} delete success!"
                    }
                }
            }
        }
    },
    "definitions": {
        "json": {
            "title": "json",
            "type": "object"
        },
        "models.compute": {
            "title": "compute",
            "type": "object"
        },
        "models.data": {
            "title": "data",
            "type": "object"
        },
        "models.processing": {
            "title": "processing",
            "type": "object"
        },
        "models.storage": {
            "title": "storage",
            "type": "object"
        },
        "models.workflow": {
            "title": "workflow",
            "type": "object"
        }
    },
    "tags": [
        {
            "name": "resource",
            "description": "Operations about resource\n"
        },
        {
            "name": "data",
            "description": "Operations about data\n"
        },
        {
            "name": "compute",
            "description": "Operations about compute\n"
        },
        {
            "name": "storage",
            "description": "Operations about storage\n"
        },
        {
            "name": "processing",
            "description": "Operations about processing\n"
        },
        {
            "name": "workflow",
            "description": "Operations about workflow\n"
        },
        {
            "name": "enum",
            "description": "Operations about resource\n"
        },
        {
            "name": "version",
            "description": "VersionController operations for Version\n"
        }
    ]
}