{
  "swagger": "2.0",
  "info": {
    "description": "APIs for CloudLand Functions",
    "title": "CloudLand API",
    "contact": {},
    "license": {
      "name": "Apache 2.0",
      "url": "http://www.apache.org/licenses/LICENSE-2.0.html"
    },
    "version": "1.0"
  },
  "basePath": "/api/v1",
  "paths": {
    "/dictionaries": {
      "get": {
        "description": "list dictionaries",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Compute"
        ],
        "summary": "list dictionaries",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.DictionaryListResponse"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "post": {
        "description": "create a dictionary",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Compute"
        ],
        "summary": "create a dictionary",
        "parameters": [
          {
            "description": "Dictionary create payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.DictionaryPayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/apis.DictionaryResponse"
              }
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/dictionaries/{id}": {
      "get": {
        "description": "get a dictionary",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Compute"
        ],
        "summary": "get a dictionary",
        "parameters": [
          {
            "type": "string",
            "description": "Dictionary UUID",
            "name": "id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.DictionaryResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "delete": {
        "description": "delete a dictionary",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Compute"
        ],
        "summary": "delete a dictionary",
        "parameters": [
          {
            "type": "integer",
            "description": "Dictionary ID",
            "name": "id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "patch": {
        "description": "patch a dictionary",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Compute"
        ],
        "summary": "patch a dictionary",
        "parameters": [
          {
            "description": "Dictionary create payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.DictionaryPayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.DictionaryResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/flavors": {
      "get": {
        "description": "list flavors",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Compute"
        ],
        "summary": "list flavors",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.FlavorListResponse"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "post": {
        "description": "create a flavor",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Compute"
        ],
        "summary": "create a flavor",
        "parameters": [
          {
            "description": "Flavor create payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.FlavorPayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.FlavorResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/flavors/{name}": {
      "get": {
        "description": "get a flavor",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Compute"
        ],
        "summary": "get a flavor",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.FlavorResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "delete": {
        "description": "delete a flavor",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Compute"
        ],
        "summary": "delete a flavor",
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/floating_ips": {
      "get": {
        "description": "list floating ips",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Network"
        ],
        "summary": "list floating ips",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.FloatingIpListResponse"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "post": {
        "description": "create a floating ip",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Network"
        ],
        "summary": "create a floating ip",
        "parameters": [
          {
            "description": "Floating ip create payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.FloatingIpPayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.FloatingIpResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/floating_ips/batch_attach": {
      "post": {
        "description": "batch attach existing floating ips from site subnets to an instance",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Network"
        ],
        "summary": "batch attach floating ips",
        "parameters": [
          {
            "description": "Site attach payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.SiteAttachPayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/apis.FloatingIpResponse"
              }
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/floating_ips/batch_detach": {
      "post": {
        "description": "batch detach floating ips from site subnets from an instance",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Network"
        ],
        "summary": "batch detach floating ips",
        "parameters": [
          {
            "description": "Site detach payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.SiteDetachPayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/floating_ips/{id}": {
      "get": {
        "description": "get a floating ip",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Network"
        ],
        "summary": "get a floating ip",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.FloatingIpResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "delete": {
        "description": "delete a floating ip",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Network"
        ],
        "summary": "delete a floating ip",
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "patch": {
        "description": "patch a floating ip",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Network"
        ],
        "summary": "patch a floating ip",
        "parameters": [
          {
            "description": "Floating ip patch payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.FloatingIpPatchPayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.FloatingIpResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/hypers": {
      "get": {
        "description": "list hypervisors",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Administration"
        ],
        "summary": "list hypervisors",
        "parameters": [
          {
            "type": "integer",
            "description": "Offset for pagination",
            "name": "offset",
            "in": "query"
          },
          {
            "type": "integer",
            "description": "Limit for pagination",
            "name": "limit",
            "in": "query"
          },
          {
            "type": "string",
            "description": "Order by field",
            "name": "order",
            "in": "query"
          },
          {
            "type": "string",
            "description": "Search query",
            "name": "q",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.HyperListResponse"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/hypers/{hostid}": {
      "get": {
        "description": "get a hypervisor",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Administration"
        ],
        "summary": "get a hypervisor",
        "parameters": [
          {
            "type": "string",
            "description": "Hypervisor host ID",
            "name": "hostid",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.HyperResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "404": {
            "description": "Not found",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "patch": {
        "description": "update hypervisor status, zone, over-commit rates, and remark",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Administration"
        ],
        "summary": "update a hypervisor",
        "parameters": [
          {
            "type": "string",
            "description": "Hypervisor host ID",
            "name": "hostid",
            "in": "path",
            "required": true
          },
          {
            "description": "Hypervisor update payload",
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.HyperPatchPayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.HyperResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "404": {
            "description": "Not found",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "500": {
            "description": "Internal server error",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/images": {
      "get": {
        "description": "list images",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Compute"
        ],
        "summary": "list images",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.ImageListResponse"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "post": {
        "description": "create a image",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Compute"
        ],
        "summary": "create a image",
        "parameters": [
          {
            "description": "Image create payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.ImagePayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.ImageResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/images/{id}": {
      "get": {
        "description": "get a image",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Compute"
        ],
        "summary": "get a image",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.ImageResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "delete": {
        "description": "delete a image",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Compute"
        ],
        "summary": "delete a image",
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "patch": {
        "description": "patch a image",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Compute"
        ],
        "summary": "patch a image",
        "parameters": [
          {
            "description": "Image patch payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.ImagePatchPayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.ImageResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/images/{id}/storages": {
      "get": {
        "description": "list image storages",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Compute"
        ],
        "summary": "list image storages",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.ImageStorageResponse"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/instance/{id}/interfaces": {
      "get": {
        "description": "list interfaces",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Network"
        ],
        "summary": "list interfaces",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/apis.InterfaceResponse"
              }
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "post": {
        "description": "create a interface",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Network"
        ],
        "summary": "create a interface",
        "parameters": [
          {
            "description": "Interface create payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.InterfacePayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.InterfaceResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/instance/{id}/interfaces/{interface_id}": {
      "delete": {
        "description": "delete a interface",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Network"
        ],
        "summary": "delete a interface",
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/instances": {
      "get": {
        "description": "list instances",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Compute"
        ],
        "summary": "list instances",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.InstanceListResponse"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "post": {
        "description": "create a instance",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Compute"
        ],
        "summary": "create a instance",
        "parameters": [
          {
            "description": "Instance create payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.InstancePayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/apis.InstanceResponse"
              }
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/instances/:id/console": {
      "post": {
        "description": "create a console",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Authorization"
        ],
        "summary": "create a console",
        "parameters": [
          {
            "type": "integer",
            "description": "Instance ID",
            "name": "id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.ConsoleResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/instances/{id}": {
      "get": {
        "description": "get a instance",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Compute"
        ],
        "summary": "get a instance",
        "parameters": [
          {
            "type": "string",
            "description": "Instance UUID",
            "name": "id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.InstanceResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "delete": {
        "description": "delete a instance",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Compute"
        ],
        "summary": "delete a instance",
        "parameters": [
          {
            "type": "integer",
            "description": "Instance ID",
            "name": "id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "patch": {
        "description": "patch a instance",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Compute"
        ],
        "summary": "patch a instance",
        "parameters": [
          {
            "description": "Instance patch payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.InstancePatchPayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.InstanceResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/instances/{id}/end_rescue": {
      "post": {
        "description": "end rescue a instance",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Compute"
        ],
        "summary": "end rescue a instance",
        "parameters": [
          {
            "type": "string",
            "description": "Instance UUID",
            "name": "id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/instances/{id}/interfaces/{interface_id}": {
      "get": {
        "description": "get a interface",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Network"
        ],
        "summary": "get a interface",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.InterfaceResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "patch": {
        "description": "patch a interface",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Network"
        ],
        "summary": "patch a interface",
        "parameters": [
          {
            "description": "Interface patch payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.InterfacePatchPayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.InterfaceResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/instances/{id}/reinstall": {
      "post": {
        "description": "reinstall a instance",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Compute"
        ],
        "summary": "reinstall a instance",
        "parameters": [
          {
            "type": "string",
            "description": "Instance UUID",
            "name": "id",
            "in": "path",
            "required": true
          },
          {
            "description": "Instance reinstall payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.InstanceReinstallPayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/instances/{id}/rescue": {
      "post": {
        "description": "rescue a instance",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Compute"
        ],
        "summary": "rescue a instance",
        "parameters": [
          {
            "type": "string",
            "description": "Instance UUID",
            "name": "id",
            "in": "path",
            "required": true
          },
          {
            "description": "Instance rescue payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.InstanceRescuePayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/instances/{id}/resize": {
      "post": {
        "description": "resize a instance",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Compute"
        ],
        "summary": "resize a instance",
        "parameters": [
          {
            "type": "string",
            "description": "Instance UUID",
            "name": "id",
            "in": "path",
            "required": true
          },
          {
            "description": "Instance resize payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.InstanceResizePayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/instances/{id}/set_user_password": {
      "post": {
        "description": "set user password for a instance",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Compute"
        ],
        "summary": "set user password for a instance",
        "parameters": [
          {
            "type": "string",
            "description": "Instance UUID",
            "name": "id",
            "in": "path",
            "required": true
          },
          {
            "description": "Instance set user password payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.InstanceSetUserPasswordPayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/ip_groups": {
      "get": {
        "description": "list ipGroup",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Network"
        ],
        "summary": "list ipGroup",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.IpGroupListResponse"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "post": {
        "description": "create a ipGroup",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Network"
        ],
        "summary": "create a ipGroup",
        "parameters": [
          {
            "description": "IpGroup create payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.IpGroupPayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.IpGroupResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/ip_groups/{id}": {
      "get": {
        "description": "get a ipGroup",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Network"
        ],
        "summary": "get a ipGroup",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.IpGroupResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "delete": {
        "description": "delete a ipGroup",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Network"
        ],
        "summary": "delete a ipGroup",
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "patch": {
        "description": "patch a ipGroup",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Network"
        ],
        "summary": "patch a ipGroup",
        "parameters": [
          {
            "description": "IpGroup patch payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.IpGroupPatchPayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.IpGroupResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/keys": {
      "get": {
        "description": "list keys",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Authorization"
        ],
        "summary": "list keys",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.KeyListResponse"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "post": {
        "description": "create a key",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Authorization"
        ],
        "summary": "create a key",
        "parameters": [
          {
            "description": "Key create payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.KeyPayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.KeyResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/keys/{id}": {
      "get": {
        "description": "get a key",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Authorization"
        ],
        "summary": "get a key",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.KeyResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "delete": {
        "description": "delete a key",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Authorization"
        ],
        "summary": "delete a key",
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "patch": {
        "description": "patch a key",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Authorization"
        ],
        "summary": "patch a key",
        "parameters": [
          {
            "description": "Key patch payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.KeyPatchPayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.KeyResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/login": {
      "post": {
        "description": "get token by user name",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Authorization"
        ],
        "summary": "login to get the access token",
        "parameters": [
          {
            "description": "User Credential",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.UserPayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.UserResponse"
            }
          },
          "401": {
            "description": "Invalied user name or password",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/migrations": {
      "get": {
        "description": "list migrations",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Compute"
        ],
        "summary": "list migrations",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.MigrationListResponse"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "post": {
        "description": "create a migration",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Compute"
        ],
        "summary": "create a migration",
        "parameters": [
          {
            "description": "Migration create payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.MigrationPayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/apis.MigrationResponse"
              }
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/migrations/{id}": {
      "get": {
        "description": "get a migration",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Compute"
        ],
        "summary": "get a migration",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.MigrationResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/orgs": {
      "get": {
        "description": "list orgs",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Authorization"
        ],
        "summary": "list orgs",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.OrgListResponse"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "post": {
        "description": "create a org",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Authorization"
        ],
        "summary": "create a org",
        "parameters": [
          {
            "description": "Org create payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.OrgPayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.OrgResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/orgs/{id}": {
      "get": {
        "description": "get a org",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Authorization"
        ],
        "summary": "get a org",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.OrgResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "delete": {
        "description": "delete a org",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Authorization"
        ],
        "summary": "delete a org",
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "patch": {
        "description": "patch a org",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Authorization"
        ],
        "summary": "patch a org",
        "parameters": [
          {
            "description": "Org patch payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.OrgPatchPayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.OrgResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/security_groups": {
      "get": {
        "description": "list secgroups",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Network"
        ],
        "summary": "list secgroups",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.SecurityGroupListResponse"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "post": {
        "description": "create a secgroup",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Network"
        ],
        "summary": "create a secgroup",
        "parameters": [
          {
            "description": "Secgroup create payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.SecurityGroupPayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.SecurityGroupResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/security_groups/{id}": {
      "get": {
        "description": "get a secgroup",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Network"
        ],
        "summary": "get a secgroup",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.SecurityGroupResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "delete": {
        "description": "delete a secgroup",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Network"
        ],
        "summary": "delete a secgroup",
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "patch": {
        "description": "patch a secgroup",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Network"
        ],
        "summary": "patch a secgroup",
        "parameters": [
          {
            "description": "Secgroup patch payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.SecurityGroupPatchPayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.SecurityGroupResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/security_groups/{id}/rules": {
      "get": {
        "description": "list secrules",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Network"
        ],
        "summary": "list secrules",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.SecruleListResponse"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "post": {
        "description": "create a secrule",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Network"
        ],
        "summary": "create a secrule",
        "parameters": [
          {
            "description": "Secrule create payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.SecurityRulePayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.SecruleResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/security_groups/{id}/rules/{rule_id}": {
      "get": {
        "description": "get a secrule",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Network"
        ],
        "summary": "get a secrule",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.SecruleResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "delete": {
        "description": "delete a secrule",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Network"
        ],
        "summary": "delete a secrule",
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/subnets": {
      "get": {
        "description": "list subnets",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Network"
        ],
        "summary": "list subnets",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.SubnetListResponse"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "post": {
        "description": "create a subnet",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Network"
        ],
        "summary": "create a subnet",
        "parameters": [
          {
            "description": "Subnet create payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.SubnetPayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.SubnetResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/subnets/{id}": {
      "get": {
        "description": "get a subnet",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Network"
        ],
        "summary": "get a subnet",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.SubnetResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "delete": {
        "description": "delete a subnet",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Network"
        ],
        "summary": "delete a subnet",
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "patch": {
        "description": "patch a subnet",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Network"
        ],
        "summary": "patch a subnet",
        "parameters": [
          {
            "description": "Subnet patch payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.SubnetPatchPayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.SubnetResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/subnets/{id}/addresses/{address_id}": {
      "patch": {
        "description": "patch an address",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Network"
        ],
        "summary": "patch an address",
        "parameters": [
          {
            "description": "Address patch payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.AddressPatchPayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.AddressResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/subnets/{id}/addresses/{address_id}/update-lock": {
      "patch": {
        "description": "lock or unlock an address",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Network"
        ],
        "summary": "update address lock",
        "parameters": [
          {
            "description": "Address lock or unlock payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.AddressUpdateLockPayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.AddressResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/users": {
      "get": {
        "description": "list users",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Authorization"
        ],
        "summary": "list users",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.UserListResponse"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "post": {
        "description": "create a user",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Authorization"
        ],
        "summary": "create a user",
        "parameters": [
          {
            "description": "User create payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.UserPayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.UserResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/users/{id}": {
      "get": {
        "description": "get a user",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Authorization"
        ],
        "summary": "get a user",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.UserResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "delete": {
        "description": "delete a user",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Authorization"
        ],
        "summary": "delete a user",
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "patch": {
        "description": "patch a user",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Authorization"
        ],
        "summary": "patch a user",
        "parameters": [
          {
            "description": "User patch payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.UserPatchPayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.UserResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/version": {
      "get": {
        "description": "get version",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Compute"
        ],
        "summary": "get version",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.VersionResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/volumes": {
      "get": {
        "description": "list volumes",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Compute"
        ],
        "summary": "list volumes",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.VolumeListResponse"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "post": {
        "description": "create a volume",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Compute"
        ],
        "summary": "create a volume",
        "parameters": [
          {
            "description": "Volume create payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.VolumePayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.VolumeResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/volumes/{id}": {
      "get": {
        "description": "get a volume",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Compute"
        ],
        "summary": "get a volume",
        "parameters": [
          {
            "type": "string",
            "description": "Volume UUID",
            "name": "id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.VolumeResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "delete": {
        "description": "delete a volume",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Compute"
        ],
        "summary": "delete a volume",
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "patch": {
        "description": "patch a volume",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Compute"
        ],
        "summary": "patch a volume",
        "parameters": [
          {
            "description": "Volume patch payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.VolumePatchPayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.VolumeResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/volumes/{id}/resize": {
      "post": {
        "description": "resize a volume",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Compute"
        ],
        "summary": "resize a volume",
        "parameters": [
          {
            "description": "Volume resize payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.VolumeResizePayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/vpcs": {
      "get": {
        "description": "list vpcs",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Network"
        ],
        "summary": "list vpcs",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.VPCListResponse"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "post": {
        "description": "create a vpc",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Network"
        ],
        "summary": "create a vpc",
        "parameters": [
          {
            "description": "VPC create payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.VPCPayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.VPCResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/vpcs/{id}": {
      "get": {
        "description": "get a vpc",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Network"
        ],
        "summary": "get a vpc",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.VPCResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "delete": {
        "description": "delete a vpc",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Network"
        ],
        "summary": "delete a vpc",
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "patch": {
        "description": "patch a vpc",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Network"
        ],
        "summary": "patch a vpc",
        "parameters": [
          {
            "description": "VPC patch payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.VPCPatchPayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.VPCResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/zones": {
      "get": {
        "description": "list zones",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Zone"
        ],
        "summary": "list zones",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.ZoneListResponse"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "post": {
        "description": "create a zone",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Zone"
        ],
        "summary": "create a zone",
        "parameters": [
          {
            "description": "Zone create payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.ZonePayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.ZoneResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    },
    "/zones/{name}": {
      "get": {
        "description": "get a zone",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Zone"
        ],
        "summary": "get a zone",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.ZoneResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "delete": {
        "description": "delete a zone",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Zone"
        ],
        "summary": "delete a zone",
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      },
      "patch": {
        "description": "patch a zone",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Zone"
        ],
        "summary": "patch a zone",
        "parameters": [
          {
            "description": "Zone patch payload",
            "name": "message",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/apis.ZonePatchPayload"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/apis.ZoneResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          },
          "401": {
            "description": "Not authorized",
            "schema": {
              "$ref": "#/definitions/common.APIError"
            }
          }
        }
      }
    }
  },
  "definitions": {
    "apis.AddressInfo": {
      "type": "object",
      "properties": {
        "ip_address": {
          "type": "string"
        },
        "subnet": {
          "$ref": "#/definitions/common.ResourceReference"
        }
      }
    },
    "apis.AddressPatchPayload": {
      "type": "object",
      "properties": {
        "remark": {
          "type": "string",
          "maxLength": 512
        }
      }
    },
    "apis.AddressResponse": {
      "type": "object",
      "properties": {
        "address": {
          "type": "string"
        },
        "allocated": {
          "type": "boolean"
        },
        "created_at": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "netmask": {
          "type": "string"
        },
        "owner": {
          "type": "string"
        },
        "remark": {
          "type": "string"
        },
        "reserved": {
          "type": "boolean"
        },
        "subnet": {
          "$ref": "#/definitions/common.ResourceReference"
        },
        "type": {
          "type": "string"
        },
        "updated_at": {
          "type": "string"
        }
      }
    },
    "apis.AddressUpdateLockPayload": {
      "type": "object",
      "properties": {
        "lock": {
          "type": "boolean"
        }
      }
    },
    "apis.ConsoleResponse": {
      "type": "object",
      "properties": {
        "console_host": {
          "type": "string"
        },
        "console_path": {
          "type": "string"
        },
        "console_port": {
          "type": "integer"
        },
        "console_url": {
          "type": "string"
        },
        "instance": {
          "$ref": "#/definitions/common.ResourceReference"
        },
        "token": {
          "type": "string"
        }
      }
    },
    "apis.DictionaryListResponse": {
      "type": "object",
      "properties": {
        "dictionaries": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/apis.DictionaryResponse"
          }
        },
        "limit": {
          "type": "integer"
        },
        "offset": {
          "type": "integer"
        },
        "total": {
          "type": "integer"
        }
      }
    },
    "apis.DictionaryPayload": {
      "type": "object",
      "required": [
        "name",
        "value"
      ],
      "properties": {
        "category": {
          "type": "string",
          "maxLength": 64,
          "minLength": 2
        },
        "name": {
          "type": "string",
          "maxLength": 64,
          "minLength": 2
        },
        "shortname": {
          "type": "string",
          "maxLength": 64,
          "minLength": 2
        },
        "subtype1": {
          "description": "data center",
          "type": "string",
          "maxLength": 32,
          "minLength": 2
        },
        "subtype2": {
          "description": "ddos/ ddospro / siteip",
          "type": "string",
          "maxLength": 32,
          "minLength": 2
        },
        "subtype3": {
          "type": "string",
          "maxLength": 32,
          "minLength": 2
        },
        "value": {
          "type": "string"
        }
      }
    },
    "apis.DictionaryResponse": {
      "type": "object",
      "properties": {
        "category": {
          "type": "string"
        },
        "created_at": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "owner": {
          "type": "string"
        },
        "shortname": {
          "type": "string"
        },
        "subtype1": {
          "type": "string"
        },
        "subtype2": {
          "type": "string"
        },
        "subtype3": {
          "type": "string"
        },
        "updated_at": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      }
    },
    "apis.DictionaryWithInfo": {
      "type": "object",
      "properties": {
        "category": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "maxLength": 36,
          "minLength": 2
        },
        "value": {
          "type": "string"
        }
      }
    },
    "apis.FlavorListResponse": {
      "type": "object",
      "properties": {
        "flavors": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/apis.FlavorResponse"
          }
        },
        "limit": {
          "type": "integer"
        },
        "offset": {
          "type": "integer"
        },
        "total": {
          "type": "integer"
        }
      }
    },
    "apis.FlavorPayload": {
      "type": "object",
      "required": [
        "cpu",
        "disk",
        "memory",
        "name"
      ],
      "properties": {
        "cpu": {
          "type": "integer",
          "minimum": 1
        },
        "disk": {
          "type": "integer",
          "minimum": 1
        },
        "memory": {
          "type": "integer",
          "minimum": 16
        },
        "name": {
          "type": "string",
          "maxLength": 32,
          "minLength": 2
        }
      }
    },
    "apis.FlavorResponse": {
      "type": "object",
      "properties": {
        "cpu": {
          "type": "integer"
        },
        "disk": {
          "type": "integer"
        },
        "memory": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        }
      }
    },
    "apis.FloatingIpInfo": {
      "type": "object",
      "properties": {
        "created_at": {
          "type": "string"
        },
        "fip_address": {
          "type": "string"
        },
        "group": {
          "$ref": "#/definitions/common.BaseReference"
        },
        "id": {
          "type": "string"
        },
        "ip_address": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "owner": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "updated_at": {
          "type": "string"
        },
        "vlan": {
          "type": "integer"
        }
      }
    },
    "apis.FloatingIpListResponse": {
      "type": "object",
      "properties": {
        "floating_ips": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/apis.FloatingIpResponse"
          }
        },
        "limit": {
          "type": "integer"
        },
        "offset": {
          "type": "integer"
        },
        "total": {
          "type": "integer"
        }
      }
    },
    "apis.FloatingIpPatchPayload": {
      "type": "object",
      "properties": {
        "group": {
          "$ref": "#/definitions/common.BaseID"
        },
        "inbound": {
          "type": "integer",
          "maximum": 20000,
          "minimum": 1
        },
        "instance": {
          "$ref": "#/definitions/common.BaseID"
        },
        "outbound": {
          "type": "integer",
          "maximum": 20000,
          "minimum": 1
        }
      }
    },
    "apis.FloatingIpPayload": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "activation_count": {
          "type": "integer",
          "maximum": 64,
          "minimum": 0
        },
        "group": {
          "$ref": "#/definitions/common.BaseID"
        },
        "inbound": {
          "type": "integer",
          "maximum": 20000,
          "minimum": 1
        },
        "instance": {
          "$ref": "#/definitions/common.BaseID"
        },
        "name": {
          "type": "string",
          "maxLength": 32,
          "minLength": 2
        },
        "outbound": {
          "type": "integer",
          "maximum": 20000,
          "minimum": 1
        },
        "public_ip": {
          "type": "string"
        },
        "public_subnet": {
          "$ref": "#/definitions/common.BaseReference"
        },
        "public_subnets": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/common.BaseReference"
          }
        },
        "site_subnets": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/common.BaseReference"
          }
        }
      }
    },
    "apis.FloatingIpResponse": {
      "type": "object",
      "properties": {
        "created_at": {
          "type": "string"
        },
        "group": {
          "$ref": "#/definitions/common.BaseReference"
        },
        "id": {
          "type": "string"
        },
        "inbound": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "outbound": {
          "type": "integer"
        },
        "owner": {
          "type": "string"
        },
        "public_ip": {
          "type": "string"
        },
        "subnet": {
          "$ref": "#/definitions/common.BaseReference"
        },
        "target_interface": {
          "$ref": "#/definitions/apis.TargetInterface"
        },
        "updated_at": {
          "type": "string"
        },
        "vlan": {
          "type": "integer"
        },
        "vpc": {
          "$ref": "#/definitions/common.BaseReference"
        }
      }
    },
    "apis.FloatingIpWithInfo": {
      "type": "object",
      "properties": {
        "dictionary": {
          "$ref": "#/definitions/apis.DictionaryWithInfo"
        },
        "fip_address": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "inbound": {
          "type": "integer"
        },
        "ip_address": {
          "type": "string"
        },
        "ip_group": {
          "$ref": "#/definitions/common.BaseReference"
        },
        "name": {
          "type": "string",
          "maxLength": 36,
          "minLength": 2
        },
        "outbound": {
          "type": "integer"
        },
        "subnet": {
          "$ref": "#/definitions/apis.SubnetWithInfo"
        },
        "type": {
          "type": "string"
        },
        "vlan": {
          "type": "integer"
        }
      }
    },
    "apis.HyperListResponse": {
      "type": "object",
      "properties": {
        "hypers": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/apis.HyperResponse"
          }
        },
        "limit": {
          "type": "integer"
        },
        "offset": {
          "type": "integer"
        },
        "total": {
          "type": "integer"
        }
      }
    },
    "apis.HyperPatchPayload": {
      "type": "object",
      "properties": {
        "cpu_over_rate": {
          "type": "number",
          "minimum": 1
        },
        "disk_over_rate": {
          "type": "number",
          "minimum": 1
        },
        "mem_over_rate": {
          "type": "number",
          "minimum": 1
        },
        "remark": {
          "type": "string"
        },
        "status": {
          "type": "integer",
          "maximum": 1,
          "minimum": 0
        },
        "zone_id": {
          "type": "integer",
          "minimum": 1
        }
      }
    },
    "apis.HyperResponse": {
      "type": "object",
      "properties": {
        "children": {
          "type": "integer"
        },
        "cpu": {
          "type": "integer"
        },
        "cpu_over_rate": {
          "type": "number"
        },
        "disk": {
          "type": "integer"
        },
        "disk_over_rate": {
          "type": "number"
        },
        "host_ip": {
          "type": "string"
        },
        "hostid": {
          "type": "integer"
        },
        "hostname": {
          "type": "string"
        },
        "mem_over_rate": {
          "type": "number"
        },
        "memory": {
          "type": "integer"
        },
        "parentid": {
          "type": "integer"
        },
        "remark": {
          "type": "string"
        },
        "route_ip": {
          "type": "string"
        },
        "status": {
          "type": "integer"
        },
        "status_name": {
          "type": "string"
        },
        "virt_type": {
          "type": "string"
        },
        "zone_id": {
          "type": "integer"
        },
        "zone_name": {
          "type": "string"
        }
      }
    },
    "apis.ImageListResponse": {
      "type": "object",
      "properties": {
        "images": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/apis.ImageResponse"
          }
        },
        "limit": {
          "type": "integer"
        },
        "offset": {
          "type": "integer"
        },
        "total": {
          "type": "integer"
        }
      }
    },
    "apis.ImagePatchPayload": {
      "type": "object",
      "required": [
        "name",
        "os_code",
        "os_version",
        "user"
      ],
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 32,
          "minLength": 2
        },
        "os_code": {
          "type": "string",
          "enum": [
            "linux",
            "windows",
            "other"
          ]
        },
        "os_version": {
          "type": "string",
          "maxLength": 32,
          "minLength": 2
        },
        "pools": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "user": {
          "type": "string",
          "maxLength": 32,
          "minLength": 2
        }
      }
    },
    "apis.ImagePayload": {
      "type": "object",
      "required": [
        "boot_loader",
        "download_url",
        "name",
        "os_code",
        "os_version",
        "user"
      ],
      "properties": {
        "boot_loader": {
          "type": "string",
          "enum": [
            "bios",
            "uefi"
          ]
        },
        "download_url": {
          "type": "string"
        },
        "instance_uuid": {
          "type": "string"
        },
        "is_resque": {
          "type": "boolean"
        },
        "name": {
          "type": "string",
          "maxLength": 32,
          "minLength": 2
        },
        "os_code": {
          "type": "string",
          "enum": [
            "linux",
            "windows",
            "other"
          ]
        },
        "os_version": {
          "type": "string",
          "maxLength": 32,
          "minLength": 2
        },
        "rescue_image": {
          "$ref": "#/definitions/common.BaseReference"
        },
        "user": {
          "type": "string",
          "maxLength": 32,
          "minLength": 2
        },
        "uuid": {
          "type": "string"
        }
      }
    },
    "apis.ImageResponse": {
      "type": "object",
      "properties": {
        "architecture": {
          "type": "string"
        },
        "boot_loader": {
          "type": "string"
        },
        "created_at": {
          "type": "string"
        },
        "format": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "os_code": {
          "type": "string"
        },
        "os_version": {
          "type": "string"
        },
        "owner": {
          "type": "string"
        },
        "size": {
          "type": "integer"
        },
        "status": {
          "type": "string"
        },
        "updated_at": {
          "type": "string"
        },
        "user": {
          "type": "string"
        }
      }
    },
    "apis.ImageStorageResponse": {
      "type": "object",
      "properties": {
        "created_at": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "owner": {
          "type": "string"
        },
        "pool_id": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "updated_at": {
          "type": "string"
        },
        "volume_id": {
          "type": "string"
        }
      }
    },
    "apis.InstanceInfo": {
      "type": "object",
      "properties": {
        "created_at": {
          "type": "string"
        },
        "hostname": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "owner": {
          "type": "string"
        },
        "updated_at": {
          "type": "string"
        }
      }
    },
    "apis.InstanceListResponse": {
      "type": "object",
      "properties": {
        "instances": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/apis.InstanceResponse"
          }
        },
        "limit": {
          "type": "integer"
        },
        "offset": {
          "type": "integer"
        },
        "total": {
          "type": "integer"
        }
      }
    },
    "apis.InstancePatchPayload": {
      "type": "object",
      "properties": {
        "hostname": {
          "type": "string"
        },
        "power_action": {
          "enum": [
            "stop",
            "hard_stop",
            "start",
            "restart",
            "hard_restart",
            "pause",
            "resume"
          ],
          "allOf": [
            {
              "$ref": "#/definitions/common.PowerAction"
            }
          ]
        }
      }
    },
    "apis.InstancePayload": {
      "type": "object",
      "required": [
        "hostname",
        "image",
        "primary_interface",
        "zone"
      ],
      "properties": {
        "count": {
          "type": "integer",
          "maximum": 16,
          "minimum": 1
        },
        "cpu": {
          "type": "integer",
          "minimum": 1
        },
        "disk": {
          "type": "integer",
          "minimum": 1
        },
        "flavor": {
          "type": "string",
          "maxLength": 32,
          "minLength": 1
        },
        "hostname": {
          "type": "string"
        },
        "hypervisor": {
          "type": "integer",
          "maximum": 65535,
          "minimum": 0
        },
        "image": {
          "$ref": "#/definitions/common.BaseReference"
        },
        "keys": {
          "type": "array",
          "maxItems": 16,
          "minItems": 0,
          "items": {
            "$ref": "#/definitions/common.BaseReference"
          }
        },
        "login_port": {
          "type": "integer",
          "maximum": 65535,
          "minimum": 0
        },
        "memory": {
          "type": "integer",
          "minimum": 1
        },
        "nested_enable": {
          "type": "boolean"
        },
        "pool_id": {
          "type": "string"
        },
        "primary_interface": {
          "$ref": "#/definitions/apis.InterfacePayload"
        },
        "root_passwd": {
          "type": "string",
          "maxLength": 32,
          "minLength": 8
        },
        "secondary_interfaces": {
          "type": "array",
          "maxItems": 7,
          "minItems": 0,
          "items": {
            "$ref": "#/definitions/apis.InterfacePayload"
          }
        },
        "userdata": {
          "type": "string"
        },
        "userdata_type": {
          "type": "string"
        },
        "vpc": {
          "$ref": "#/definitions/common.BaseReference"
        },
        "zone": {
          "type": "string",
          "maxLength": 32,
          "minLength": 1
        }
      }
    },
    "apis.InstanceReinstallPayload": {
      "type": "object",
      "properties": {
        "flavor": {
          "type": "string"
        },
        "image": {
          "$ref": "#/definitions/common.BaseReference"
        },
        "keys": {
          "type": "array",
          "maxItems": 16,
          "minItems": 0,
          "items": {
            "$ref": "#/definitions/common.BaseReference"
          }
        },
        "login_port": {
          "type": "integer",
          "maximum": 65535,
          "minimum": 1
        },
        "password": {
          "type": "string"
        }
      }
    },
    "apis.InstanceRescuePayload": {
      "type": "object",
      "properties": {
        "password": {
          "type": "string"
        },
        "rescue_image": {
          "$ref": "#/definitions/common.BaseReference"
        }
      }
    },
    "apis.InstanceResizePayload": {
      "type": "object",
      "properties": {
        "cpu": {
          "type": "integer",
          "minimum": 1
        },
        "memory": {
          "type": "integer",
          "minimum": 1
        }
      }
    },
    "apis.InstanceResponse": {
      "type": "object",
      "properties": {
        "cpu": {
          "type": "integer"
        },
        "created_at": {
          "type": "string"
        },
        "disk": {
          "type": "integer"
        },
        "flavor": {
          "type": "string"
        },
        "hostname": {
          "type": "string"
        },
        "hypervisor": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "image": {
          "$ref": "#/definitions/common.ResourceReference"
        },
        "interfaces": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/apis.InterfaceResponse"
          }
        },
        "keys": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/common.ResourceReference"
          }
        },
        "login_port": {
          "type": "integer"
        },
        "memory": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "owner": {
          "type": "string"
        },
        "passwd_login": {
          "type": "boolean"
        },
        "reason": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "updated_at": {
          "type": "string"
        },
        "volumes": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/apis.VolumeInfoResponse"
          }
        },
        "vpc": {
          "$ref": "#/definitions/common.ResourceReference"
        },
        "zone": {
          "type": "string"
        }
      }
    },
    "apis.InstanceSetUserPasswordPayload": {
      "type": "object",
      "required": [
        "password",
        "user_name"
      ],
      "properties": {
        "password": {
          "type": "string",
          "maxLength": 64,
          "minLength": 8
        },
        "user_name": {
          "type": "string",
          "maxLength": 32,
          "minLength": 2
        }
      }
    },
    "apis.InterfacePatchPayload": {
      "type": "object",
      "properties": {
        "allow_spoofing": {
          "type": "boolean"
        },
        "count": {
          "type": "integer",
          "maximum": 512,
          "minimum": 1
        },
        "inbound": {
          "type": "integer",
          "maximum": 20000,
          "minimum": 0
        },
        "name": {
          "type": "string",
          "maxLength": 32,
          "minLength": 2
        },
        "outbound": {
          "type": "integer",
          "maximum": 20000,
          "minimum": 0
        },
        "public_addresses": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/common.BaseReference"
          }
        },
        "security_groups": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/common.BaseReference"
          }
        },
        "site_subnets": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/common.BaseReference"
          }
        },
        "subnets": {
          "type": "array",
          "maxItems": 32,
          "minItems": 1,
          "items": {
            "$ref": "#/definitions/common.BaseReference"
          }
        }
      }
    },
    "apis.InterfacePayload": {
      "type": "object",
      "properties": {
        "allow_spoofing": {
          "type": "boolean"
        },
        "count": {
          "type": "integer",
          "maximum": 512,
          "minimum": 1
        },
        "inbound": {
          "type": "integer",
          "maximum": 20000,
          "minimum": 0
        },
        "ip_address": {
          "type": "string"
        },
        "mac_address": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "maxLength": 32,
          "minLength": 2
        },
        "outbound": {
          "type": "integer",
          "maximum": 20000,
          "minimum": 0
        },
        "public_addresses": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/common.BaseReference"
          }
        },
        "security_groups": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/common.BaseReference"
          }
        },
        "site_subnets": {
          "type": "array",
          "maxItems": 32,
          "minItems": 1,
          "items": {
            "$ref": "#/definitions/common.BaseReference"
          }
        },
        "subnet": {
          "$ref": "#/definitions/common.BaseReference"
        },
        "subnets": {
          "type": "array",
          "maxItems": 16,
          "minItems": 1,
          "items": {
            "$ref": "#/definitions/common.BaseReference"
          }
        }
      }
    },
    "apis.InterfaceResponse": {
      "type": "object",
      "properties": {
        "floating_ips": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/apis.FloatingIpInfo"
          }
        },
        "id": {
          "type": "string"
        },
        "inbound": {
          "type": "integer"
        },
        "ip_address": {
          "type": "string"
        },
        "is_primary": {
          "type": "boolean"
        },
        "mac_address": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "maxLength": 36,
          "minLength": 2
        },
        "outbound": {
          "type": "integer"
        },
        "secondary_addresses": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/apis.AddressInfo"
          }
        },
        "security_groups": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/common.ResourceReference"
          }
        },
        "site_subnets": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/apis.SiteSubnetInfo"
          }
        },
        "subnet": {
          "$ref": "#/definitions/common.ResourceReference"
        }
      }
    },
    "apis.IpGroupListResponse": {
      "type": "object",
      "properties": {
        "ipgroups": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/apis.IpGroupResponse"
          }
        },
        "limit": {
          "type": "integer"
        },
        "offset": {
          "type": "integer"
        },
        "total": {
          "type": "integer"
        }
      }
    },
    "apis.IpGroupPatchPayload": {
      "type": "object",
      "properties": {
        "dictionaries": {
          "$ref": "#/definitions/common.ResourceReference"
        },
        "name": {
          "type": "string",
          "maxLength": 32,
          "minLength": 2
        },
        "type": {
          "type": "string",
          "enum": [
            "system",
            "resource"
          ]
        }
      }
    },
    "apis.IpGroupPayload": {
      "type": "object",
      "required": [
        "name",
        "type"
      ],
      "properties": {
        "dictionaries": {
          "$ref": "#/definitions/common.ResourceReference"
        },
        "name": {
          "type": "string",
          "maxLength": 32,
          "minLength": 2
        },
        "type": {
          "type": "string",
          "enum": [
            "system",
            "resource"
          ]
        }
      }
    },
    "apis.IpGroupResponse": {
      "type": "object",
      "properties": {
        "created_at": {
          "type": "string"
        },
        "dictionaries": {
          "$ref": "#/definitions/common.BaseReference"
        },
        "floating_ips": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/apis.FloatingIpWithInfo"
          }
        },
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "owner": {
          "type": "string"
        },
        "subnet_names": {
          "type": "string"
        },
        "subnets": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/apis.SubnetWithInfo"
          }
        },
        "type": {
          "type": "string"
        },
        "updated_at": {
          "type": "string"
        }
      }
    },
    "apis.KeyListResponse": {
      "type": "object",
      "properties": {
        "keys": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/apis.KeyResponse"
          }
        },
        "limit": {
          "type": "integer"
        },
        "offset": {
          "type": "integer"
        },
        "total": {
          "type": "integer"
        }
      }
    },
    "apis.KeyPatchPayload": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 32,
          "minLength": 2
        }
      }
    },
    "apis.KeyPayload": {
      "type": "object",
      "required": [
        "name",
        "public_key"
      ],
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 32,
          "minLength": 2
        },
        "public_key": {
          "type": "string",
          "maxLength": 4096,
          "minLength": 4
        },
        "uuid": {
          "type": "string"
        }
      }
    },
    "apis.KeyResponse": {
      "type": "object",
      "properties": {
        "created_at": {
          "type": "string"
        },
        "finger_print": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "owner": {
          "type": "string"
        },
        "public_key": {
          "type": "string"
        },
        "updated_at": {
          "type": "string"
        }
      }
    },
    "apis.MemberInfo": {
      "type": "object",
      "properties": {
        "created_at": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "owner": {
          "type": "string"
        },
        "role": {
          "type": "string"
        },
        "updated_at": {
          "type": "string"
        }
      }
    },
    "apis.MigrationListResponse": {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer"
        },
        "migrations": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/apis.MigrationResponse"
          }
        },
        "offset": {
          "type": "integer"
        },
        "total": {
          "type": "integer"
        }
      }
    },
    "apis.MigrationPayload": {
      "type": "object",
      "required": [
        "instances",
        "name"
      ],
      "properties": {
        "force": {
          "type": "boolean"
        },
        "instances": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#/definitions/common.BaseID"
          }
        },
        "name": {
          "type": "string",
          "maxLength": 32,
          "minLength": 2
        },
        "target_hyper": {
          "type": "integer",
          "maximum": 65535,
          "minimum": 0
        }
      }
    },
    "apis.MigrationResponse": {
      "type": "object",
      "properties": {
        "created_at": {
          "type": "string"
        },
        "force": {
          "type": "boolean"
        },
        "id": {
          "type": "string"
        },
        "instance": {
          "$ref": "#/definitions/apis.InstanceInfo"
        },
        "name": {
          "type": "string"
        },
        "owner": {
          "type": "string"
        },
        "phases": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/apis.TaskResponse"
          }
        },
        "source_hyper": {
          "type": "integer"
        },
        "status": {
          "type": "string"
        },
        "target_hyper": {
          "type": "integer"
        },
        "type": {
          "type": "string"
        },
        "updated_at": {
          "type": "string"
        }
      }
    },
    "apis.OrgListResponse": {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer"
        },
        "offset": {
          "type": "integer"
        },
        "orgs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/apis.OrgResponse"
          }
        },
        "total": {
          "type": "integer"
        }
      }
    },
    "apis.OrgPatchPayload": {
      "type": "object"
    },
    "apis.OrgPayload": {
      "type": "object"
    },
    "apis.OrgResponse": {
      "type": "object",
      "properties": {
        "created_at": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "members": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/apis.MemberInfo"
          }
        },
        "name": {
          "type": "string"
        },
        "owner": {
          "type": "string"
        },
        "updated_at": {
          "type": "string"
        }
      }
    },
    "apis.SecruleListResponse": {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer"
        },
        "offset": {
          "type": "integer"
        },
        "security_rules": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/apis.SecruleResponse"
          }
        },
        "total": {
          "type": "integer"
        }
      }
    },
    "apis.SecruleResponse": {
      "type": "object",
      "properties": {
        "created_at": {
          "type": "string"
        },
        "direction": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "ip_version": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "owner": {
          "type": "string"
        },
        "port_max": {
          "type": "integer"
        },
        "port_min": {
          "type": "integer"
        },
        "protocol": {
          "type": "string"
        },
        "remote_cidr": {
          "type": "string"
        },
        "remote_group": {
          "$ref": "#/definitions/common.BaseReference"
        },
        "updated_at": {
          "type": "string"
        }
      }
    },
    "apis.SecurityGroupListResponse": {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer"
        },
        "offset": {
          "type": "integer"
        },
        "security_groups": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/apis.SecurityGroupResponse"
          }
        },
        "total": {
          "type": "integer"
        }
      }
    },
    "apis.SecurityGroupPatchPayload": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "is_default": {
          "type": "boolean"
        },
        "name": {
          "type": "string",
          "maxLength": 32,
          "minLength": 2
        }
      }
    },
    "apis.SecurityGroupPayload": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "is_default": {
          "type": "boolean"
        },
        "name": {
          "type": "string",
          "maxLength": 32,
          "minLength": 2
        },
        "vpc": {
          "$ref": "#/definitions/common.BaseReference"
        }
      }
    },
    "apis.SecurityGroupResponse": {
      "type": "object",
      "properties": {
        "created_at": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "is_default": {
          "type": "boolean"
        },
        "name": {
          "type": "string"
        },
        "owner": {
          "type": "string"
        },
        "target_interfaces": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/apis.TargetInterface"
          }
        },
        "updated_at": {
          "type": "string"
        },
        "vpc": {
          "$ref": "#/definitions/common.ResourceReference"
        }
      }
    },
    "apis.SecurityRulePayload": {
      "type": "object",
      "required": [
        "direction",
        "protocol"
      ],
      "properties": {
        "direction": {
          "type": "string",
          "enum": [
            "ingress",
            "egress"
          ]
        },
        "name": {
          "type": "string",
          "maxLength": 32,
          "minLength": 2
        },
        "port_max": {
          "type": "integer",
          "maximum": 65535,
          "minimum": 1
        },
        "port_min": {
          "type": "integer",
          "maximum": 65535,
          "minimum": 1
        },
        "protocol": {
          "type": "string",
          "enum": [
            "tcp",
            "udp",
            "icmp"
          ]
        },
        "remote_cidr": {
          "type": "string"
        }
      }
    },
    "apis.SiteAttachPayload": {
      "type": "object",
      "required": [
        "instance",
        "site_subnets"
      ],
      "properties": {
        "instance": {
          "$ref": "#/definitions/common.BaseID"
        },
        "site_subnets": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/common.BaseReference"
          }
        }
      }
    },
    "apis.SiteDetachPayload": {
      "type": "object",
      "required": [
        "site_subnets"
      ],
      "properties": {
        "instance": {
          "$ref": "#/definitions/common.BaseID"
        },
        "site_subnets": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/common.BaseReference"
          }
        }
      }
    },
    "apis.SiteSubnetInfo": {
      "type": "object",
      "properties": {
        "created_at": {
          "type": "string"
        },
        "end": {
          "type": "string"
        },
        "gateway": {
          "type": "string"
        },
        "group": {
          "$ref": "#/definitions/common.BaseReference"
        },
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "netmask": {
          "type": "string"
        },
        "network": {
          "type": "string"
        },
        "owner": {
          "type": "string"
        },
        "start": {
          "type": "string"
        },
        "updated_at": {
          "type": "string"
        },
        "vlan": {
          "type": "integer"
        }
      }
    },
    "apis.SubnetListResponse": {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer"
        },
        "offset": {
          "type": "integer"
        },
        "subnets": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/apis.SubnetResponse"
          }
        },
        "total": {
          "type": "integer"
        }
      }
    },
    "apis.SubnetPatchPayload": {
      "type": "object",
      "properties": {
        "group": {
          "$ref": "#/definitions/common.BaseReference"
        },
        "name": {
          "type": "string",
          "maxLength": 64,
          "minLength": 2
        },
        "type": {
          "enum": [
            "public",
            "internal",
            "site"
          ],
          "allOf": [
            {
              "$ref": "#/definitions/common.SubnetType"
            }
          ]
        }
      }
    },
    "apis.SubnetPayload": {
      "type": "object",
      "required": [
        "name",
        "network_cidr"
      ],
      "properties": {
        "base_domain": {
          "type": "string"
        },
        "dhcp": {
          "type": "boolean"
        },
        "dns": {
          "type": "string"
        },
        "end_ip": {
          "type": "string"
        },
        "gateway": {
          "type": "string"
        },
        "group": {
          "$ref": "#/definitions/common.BaseReference"
        },
        "name": {
          "type": "string",
          "maxLength": 64,
          "minLength": 2
        },
        "network_cidr": {
          "type": "string"
        },
        "start_ip": {
          "type": "string"
        },
        "type": {
          "$ref": "#/definitions/common.SubnetType"
        },
        "vlan": {
          "type": "integer",
          "maximum": 16777215,
          "minimum": 1
        },
        "vpc": {
          "$ref": "#/definitions/common.BaseReference"
        }
      }
    },
    "apis.SubnetResponse": {
      "type": "object",
      "properties": {
        "created_at": {
          "type": "string"
        },
        "dns": {
          "type": "string"
        },
        "end": {
          "type": "string"
        },
        "gateway": {
          "type": "string"
        },
        "group": {
          "$ref": "#/definitions/common.ResourceReference"
        },
        "id": {
          "type": "string"
        },
        "idle_count": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "netmask": {
          "type": "string"
        },
        "network": {
          "type": "string"
        },
        "owner": {
          "type": "string"
        },
        "start": {
          "type": "string"
        },
        "type": {
          "$ref": "#/definitions/common.SubnetType"
        },
        "updated_at": {
          "type": "string"
        },
        "vlan": {
          "type": "integer"
        },
        "vpc": {
          "$ref": "#/definitions/common.ResourceReference"
        }
      }
    },
    "apis.SubnetWithInfo": {
      "type": "object",
      "properties": {
        "end": {
          "type": "string"
        },
        "gateway": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "maxLength": 36,
          "minLength": 2
        },
        "netmask": {
          "type": "string"
        },
        "network": {
          "type": "string"
        },
        "start": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "vlan": {
          "type": "integer"
        }
      }
    },
    "apis.TargetInterface": {
      "type": "object",
      "properties": {
        "created_at": {
          "type": "string"
        },
        "from_instance": {
          "$ref": "#/definitions/apis.InstanceInfo"
        },
        "id": {
          "type": "string"
        },
        "ip_address": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "owner": {
          "type": "string"
        },
        "updated_at": {
          "type": "string"
        }
      }
    },
    "apis.TaskResponse": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "summary": {
          "type": "string"
        }
      }
    },
    "apis.UserListResponse": {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer"
        },
        "offset": {
          "type": "integer"
        },
        "total": {
          "type": "integer"
        },
        "users": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/apis.UserResponse"
          }
        }
      }
    },
    "apis.UserPatchPayload": {
      "type": "object",
      "required": [
        "password"
      ],
      "properties": {
        "password": {
          "type": "string",
          "minLength": 6
        }
      }
    },
    "apis.UserPayload": {
      "type": "object",
      "required": [
        "password",
        "username"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "org": {
          "$ref": "#/definitions/common.BaseReference"
        },
        "password": {
          "type": "string",
          "maxLength": 32,
          "minLength": 8
        },
        "username": {
          "type": "string",
          "minLength": 2
        }
      }
    },
    "apis.UserResponse": {
      "type": "object",
      "properties": {
        "org": {
          "$ref": "#/definitions/common.ResourceReference"
        },
        "role": {
          "type": "string"
        },
        "token": {
          "type": "string"
        },
        "user": {
          "$ref": "#/definitions/common.ResourceReference"
        }
      }
    },
    "apis.VPCListResponse": {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer"
        },
        "offset": {
          "type": "integer"
        },
        "total": {
          "type": "integer"
        },
        "vpcs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/apis.VPCResponse"
          }
        }
      }
    },
    "apis.VPCPatchPayload": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 32,
          "minLength": 2
        }
      }
    },
    "apis.VPCPayload": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 32,
          "minLength": 2
        }
      }
    },
    "apis.VPCResponse": {
      "type": "object",
      "properties": {
        "created_at": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "owner": {
          "type": "string"
        },
        "subnets": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/apis.SubnetResponse"
          }
        },
        "updated_at": {
          "type": "string"
        }
      }
    },
    "apis.VersionResponse": {
      "type": "object",
      "properties": {
        "version": {
          "type": "string"
        }
      }
    },
    "apis.VolumeInfoResponse": {
      "type": "object",
      "properties": {
        "booting": {
          "type": "boolean"
        },
        "created_at": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "owner": {
          "type": "string"
        },
        "target": {
          "type": "string"
        },
        "updated_at": {
          "type": "string"
        }
      }
    },
    "apis.VolumeListResponse": {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer"
        },
        "offset": {
          "type": "integer"
        },
        "total": {
          "type": "integer"
        },
        "volumes": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/apis.VolumeResponse"
          }
        }
      }
    },
    "apis.VolumePatchPayload": {
      "type": "object",
      "properties": {
        "bps_burst": {
          "type": "integer"
        },
        "bps_limit": {
          "type": "integer"
        },
        "instance": {
          "$ref": "#/definitions/common.BaseID"
        },
        "iops_burst": {
          "type": "integer"
        },
        "iops_limit": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "size": {
          "type": "integer"
        }
      }
    },
    "apis.VolumePayload": {
      "type": "object",
      "required": [
        "name",
        "size"
      ],
      "properties": {
        "bps_burst": {
          "type": "integer",
          "minimum": 0
        },
        "bps_limit": {
          "type": "integer",
          "minimum": 0
        },
        "count": {
          "type": "integer",
          "maximum": 16,
          "minimum": 1
        },
        "iops_burst": {
          "type": "integer",
          "minimum": 0
        },
        "iops_limit": {
          "type": "integer",
          "minimum": 0
        },
        "name": {
          "type": "string"
        },
        "pool_id": {
          "type": "string"
        },
        "size": {
          "type": "integer"
        }
      }
    },
    "apis.VolumeResizePayload": {
      "type": "object",
      "required": [
        "size"
      ],
      "properties": {
        "size": {
          "type": "integer",
          "minimum": 1
        }
      }
    },
    "apis.VolumeResponse": {
      "type": "object",
      "properties": {
        "booting": {
          "type": "boolean"
        },
        "bps_burst": {
          "type": "integer"
        },
        "bps_limit": {
          "type": "integer"
        },
        "created_at": {
          "type": "string"
        },
        "format": {
          "type": "string"
        },
        "href": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "instance": {
          "$ref": "#/definitions/common.BaseReference"
        },
        "iops_burst": {
          "type": "integer"
        },
        "iops_limit": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "owner": {
          "type": "string"
        },
        "path": {
          "type": "string"
        },
        "size": {
          "type": "integer"
        },
        "status": {
          "type": "string"
        },
        "target": {
          "type": "string"
        },
        "updated_at": {
          "type": "string"
        }
      }
    },
    "apis.ZoneListResponse": {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer"
        },
        "offset": {
          "type": "integer"
        },
        "total": {
          "type": "integer"
        },
        "zones": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/apis.ZoneResponse"
          }
        }
      }
    },
    "apis.ZonePatchPayload": {
      "type": "object",
      "properties": {
        "default": {
          "type": "boolean"
        },
        "remark": {
          "type": "string",
          "maxLength": 512
        }
      }
    },
    "apis.ZonePayload": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "default": {
          "type": "boolean"
        },
        "name": {
          "type": "string",
          "maxLength": 32,
          "minLength": 2
        },
        "remark": {
          "type": "string",
          "maxLength": 512
        }
      }
    },
    "apis.ZoneResponse": {
      "type": "object",
      "properties": {
        "created_at": {
          "type": "string"
        },
        "default": {
          "type": "boolean"
        },
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "owner": {
          "type": "string"
        },
        "remark": {
          "type": "string"
        },
        "updated_at": {
          "type": "string"
        }
      }
    },
    "common.APIError": {
      "type": "object",
      "properties": {
        "error_code": {
          "type": "integer"
        },
        "error_message": {
          "type": "string"
        }
      }
    },
    "common.BaseID": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string"
        }
      }
    },
    "common.BaseReference": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "maxLength": 36,
          "minLength": 2
        }
      }
    },
    "common.PowerAction": {
      "type": "string",
      "enum": [
        "stop",
        "hard_stop",
        "start",
        "restart",
        "hard_restart",
        "pause",
        "resume"
      ],
      "x-enum-varnames": [
        "Stop",
        "HardStop",
        "Start",
        "Restart",
        "HardRestart",
        "Pause",
        "Resume"
      ]
    },
    "common.ResourceReference": {
      "type": "object",
      "properties": {
        "created_at": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "owner": {
          "type": "string"
        },
        "updated_at": {
          "type": "string"
        }
      }
    },
    "common.SubnetType": {
      "type": "string",
      "enum": [
        "public",
        "internal",
        "site"
      ],
      "x-enum-varnames": [
        "Public",
        "Internal",
        "Site"
      ]
    }
  }
}