// Package docs Code generated by swaggo/swag. DO NOT EDIT
package docs

import "github.com/swaggo/swag"

const docTemplate = `{
    "schemes": {{ marshal .Schemes }},
    "swagger": "2.0",
    "info": {
        "description": "{{escape .Description}}",
        "title": "{{.Title}}",
        "termsOfService": "https://github.com/cloud-barista/cb-tumblebug/blob/main/README.md",
        "contact": {
            "name": "API Support",
            "url": "https://github.com/cloud-barista/cb-tumblebug/issues/new/choose"
        },
        "license": {
            "name": "Apache 2.0",
            "url": "http://www.apache.org/licenses/LICENSE-2.0.html"
        },
        "version": "{{.Version}}"
    },
    "host": "{{.Host}}",
    "basePath": "{{.BasePath}}",
    "paths": {
        "/auth/test": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "description": "Test JWT authentication",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Admin] API Request Management"
                ],
                "summary": "Test JWT authentication",
                "operationId": "TestJWTAuth",
                "responses": {
                    "200": {
                        "description": "Information of JWT authentication",
                        "schema": {
                            "$ref": "#/definitions/auth.AuthsInfo"
                        }
                    },
                    "400": {
                        "description": "Invalid Request",
                        "schema": {
                            "type": "object"
                        }
                    }
                }
            }
        },
        "/availableK8sNodeImage": {
            "get": {
                "description": "(UNDER DEVELOPMENT!!!) Get available kubernetes cluster node image",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Kubernetes] Cluster Management"
                ],
                "summary": "(UNDER DEVELOPMENT!!!) Get available kubernetes cluster node image",
                "operationId": "GetAvailableK8sNodeImage",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Name of the CSP to retrieve",
                        "name": "providerName",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Name of region to retrieve",
                        "name": "regionName",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.K8sClusterNodeImageDetailAvailable"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/availableK8sVersion": {
            "get": {
                "description": "Get available kubernetes cluster version",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Kubernetes] Cluster Management"
                ],
                "summary": "Get available kubernetes cluster version",
                "operationId": "GetAvailableK8sVersion",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Name of the CSP to retrieve",
                        "name": "providerName",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Name of region to retrieve",
                        "name": "regionName",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.K8sClusterVersionDetailAvailable"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/availableRegionZonesForSpec": {
            "post": {
                "description": "Query the availability of a specific spec across all regions/zones",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Spec Management"
                ],
                "summary": "Get available regions and zones for a specific spec",
                "operationId": "GetAvailableRegionZonesForSpec",
                "parameters": [
                    {
                        "description": "Spec availability request",
                        "name": "availabilityReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.GetAvailableRegionZonesRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SpecAvailabilityInfo"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/availableRegionZonesForSpecList": {
            "post": {
                "description": "Query the availability for multiple specs in parallel and return batch results",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Spec Management"
                ],
                "summary": "Get available regions and zones for multiple specs",
                "operationId": "GetAvailableRegionZonesForSpecList",
                "parameters": [
                    {
                        "description": "Batch spec availability request",
                        "name": "batchAvailabilityReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.GetAvailableRegionZonesListRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SpecAvailabilityBatchResult"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/checkK8sNodeGroupsOnK8sCreation": {
            "get": {
                "description": "Check whether nodegroups are required during the K8sCluster creation",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Kubernetes] Cluster Management"
                ],
                "summary": "Check whether nodegroups are required during the K8sCluster creation",
                "operationId": "CheckK8sNodeGroupsOnK8sCreation",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Name of the CSP to retrieve",
                        "name": "providerName",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.K8sClusterNodeGroupsOnCreation"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/checkK8sNodeImageDesignation": {
            "get": {
                "description": "Check whether node image designation is possible to create a K8sCluster",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Kubernetes] Cluster Management"
                ],
                "summary": "Check whether node image designation is possible to create a K8sCluster",
                "operationId": "CheckK8sNodeImageDesignation",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Name of the CSP to retrieve",
                        "name": "providerName",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.K8sClusterNodeImageDesignation"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/cloudInfo": {
            "get": {
                "description": "Get cloud information",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Admin] Multi-Cloud Information"
                ],
                "summary": "Get cloud information",
                "operationId": "GetCloudInfo",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.CloudInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/config": {
            "get": {
                "description": "List all configs",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Admin] System Configuration"
                ],
                "summary": "List all configs",
                "operationId": "GetAllConfig",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/common.RestGetAllConfigResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "post": {
                "description": "Create or Update config (TB_SPIDER_REST_URL, TB_DRAGONFLY_REST_URL, ...)",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Admin] System Configuration"
                ],
                "summary": "Create or Update config",
                "operationId": "PostConfig",
                "parameters": [
                    {
                        "description": "Key and Value for configuration",
                        "name": "config",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.ConfigReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.ConfigInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "delete": {
                "description": "Init all configs",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Admin] System Configuration"
                ],
                "summary": "Init all configs",
                "operationId": "InitAllConfig",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/config/{configId}": {
            "get": {
                "description": "Get config",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Admin] System Configuration"
                ],
                "summary": "Get config",
                "operationId": "GetConfig",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Config ID",
                        "name": "configId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.ConfigInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "delete": {
                "description": "Init config",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Admin] System Configuration"
                ],
                "summary": "Init config",
                "operationId": "InitConfig",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Config ID",
                        "name": "configId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.ConfigInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/connConfig": {
            "get": {
                "description": "List all registered ConnConfig",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Admin] Credential Management"
                ],
                "summary": "List all registered ConnConfig",
                "operationId": "GetConnConfigList",
                "parameters": [
                    {
                        "type": "string",
                        "default": "",
                        "description": "filter objects by Credential Holder",
                        "name": "filterCredentialHolder",
                        "in": "query"
                    },
                    {
                        "enum": [
                            true,
                            false
                        ],
                        "type": "boolean",
                        "default": true,
                        "description": "filter verified connections only",
                        "name": "filterVerified",
                        "in": "query"
                    },
                    {
                        "enum": [
                            true,
                            false
                        ],
                        "type": "boolean",
                        "default": false,
                        "description": "filter connections with the representative region only",
                        "name": "filterRegionRepresentative",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.ConnConfigList"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/connConfig/{connConfigName}": {
            "get": {
                "description": "Get registered ConnConfig info",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Admin] Credential Management"
                ],
                "summary": "Get registered ConnConfig info",
                "operationId": "GetConnConfig",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Name of connection config (cloud config)",
                        "name": "connConfigName",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.ConnConfig"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/credential": {
            "post": {
                "description": "This API registers credential information using hybrid encryption. The process involves compressing and encrypting sensitive data with AES-256, encrypting the AES key with a 4096-bit RSA public key (retrieved via ` + "`" + `GET /credential/publicKey` + "`" + `), and using OAEP padding with SHA-256. All values, including the AES key, must be base64 encoded before sending, and the public key token ID must be included in the request.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Admin] Credential Management"
                ],
                "summary": "Register Credential Information",
                "operationId": "RegisterCredential",
                "parameters": [
                    {
                        "description": "Credential request info",
                        "name": "CredentialReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.CredentialReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.CredentialInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/credential/publicKey": {
            "get": {
                "description": "Generates an RSA key pair using a 4096-bit key size with the RSA algorithm. The public key is generated using the RSA algorithm with OAEP padding and SHA-256 as the hash function. This key is used to encrypt an AES key that will be used for hybrid encryption of credentials.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Admin] Credential Management"
                ],
                "summary": "Get RSA Public Key for Credential Encryption",
                "operationId": "GetPublicKeyForCredentialEncryption",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.PublicKeyResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/fetchImages": {
            "post": {
                "description": "Fetch images waiting for completion",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Image Management"
                ],
                "summary": "Fetch images for regions of each CSP synchronously",
                "operationId": "FetchImages",
                "parameters": [
                    {
                        "description": "Fetch option",
                        "name": "fetchOption",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.ImageFetchOption"
                        }
                    }
                ],
                "responses": {
                    "202": {
                        "description": "Accepted",
                        "schema": {
                            "$ref": "#/definitions/resource.FetchImagesAsyncResult"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/fetchImagesAsync": {
            "post": {
                "description": "Fetch images in the background without waiting for completion",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Image Management"
                ],
                "summary": "Fetch images asynchronously",
                "operationId": "FetchImagesAsync",
                "parameters": [
                    {
                        "description": "Fetch option",
                        "name": "fetchOption",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.ImageFetchOption"
                        }
                    }
                ],
                "responses": {
                    "202": {
                        "description": "Accepted",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/fetchImagesResult": {
            "get": {
                "description": "Get detailed results from the last asynchronous image fetch operation",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Image Management"
                ],
                "summary": "Get result of asynchronous image fetching",
                "operationId": "GetFetchImagesAsyncResult",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/resource.FetchImagesAsyncResult"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/fetchPrice": {
            "post": {
                "description": "Fetch price from all CSP connections and update the price information for associated specs in the system.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Spec Management"
                ],
                "summary": "Fetch price from all CSP connections and update the price information for associated specs in the system.",
                "operationId": "FetchPrice",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/fetchSpecs": {
            "post": {
                "description": "Fetch specs from CSPs and register them in the system.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Spec Management"
                ],
                "summary": "Fetch specs from CSPs and register them in the system.",
                "operationId": "FetchSpecs",
                "parameters": [
                    {
                        "description": "Fetch option",
                        "name": "fetchOption",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.SpecFetchOption"
                        }
                    }
                ],
                "responses": {
                    "202": {
                        "description": "Accepted",
                        "schema": {
                            "$ref": "#/definitions/resource.FetchSpecsAsyncResult"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/forward/{path}": {
            "post": {
                "description": "Forward any (GET) request to CB-Spider",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Admin] API Request Management"
                ],
                "summary": "Forward any (GET) request to CB-Spider",
                "operationId": "ForwardAnyReqToAny",
                "parameters": [
                    {
                        "type": "string",
                        "default": "vmspec",
                        "description": "Internal call path to CB-Spider (path without /spider/ prefix) - see [https://documenter.getpostman.com/view/24786935/2s9Ykq8Lpf#231eec23-b0ab-4966-83ce-a0ef92ead7bc] for more details",
                        "name": "path",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Request body (various formats) - see [https://documenter.getpostman.com/view/24786935/2s9Ykq8Lpf#231eec23-b0ab-4966-83ce-a0ef92ead7bc] for more details",
                        "name": "Request",
                        "in": "body",
                        "schema": {}
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    }
                }
            }
        },
        "/httpVersion": {
            "get": {
                "description": "Checks and logs the HTTP version of the incoming request to the server console.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Admin] API Request Management"
                ],
                "summary": "Check HTTP version of incoming request",
                "operationId": "CheckHTTPVersion",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/inspectResources": {
            "post": {
                "description": "Inspect Resources (vNet, securityGroup, sshKey, vm) registered in CB-Tumblebug, CB-Spider, CSP",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Admin] System Management"
                ],
                "summary": "Inspect Resources (vNet, securityGroup, sshKey, vm) registered in CB-Tumblebug, CB-Spider, CSP",
                "operationId": "InspectResources",
                "parameters": [
                    {
                        "description": "Specify connectionName and resource type",
                        "name": "connectionName",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.InspectResourcesRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.InspectResource"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/inspectResourcesOverview": {
            "get": {
                "description": "Inspect Resources Overview (vNet, securityGroup, sshKey, vm) registered in CB-Tumblebug and CSP for all connections",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Admin] System Management"
                ],
                "summary": "Inspect Resources Overview (vNet, securityGroup, sshKey, vm) registered in CB-Tumblebug and CSP for all connections",
                "operationId": "InspectResourcesOverview",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.InspectResourceAllResult"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/k8sClusterDynamicCheckRequest": {
            "post": {
                "description": "Check available ConnectionConfig list before create K8sCluster Dynamically from common spec and image",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Kubernetes] Cluster Management"
                ],
                "summary": "Check available ConnectionConfig list for creating K8sCluster Dynamically",
                "operationId": "PostK8sClusterDynamicCheckRequest",
                "parameters": [
                    {
                        "description": "Details for K8sCluster dynamic request information",
                        "name": "k8sClusterConnectionConfigCandidatesReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.K8sClusterConnectionConfigCandidatesReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.CheckK8sClusterDynamicReqInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/k8sClusterInfo": {
            "get": {
                "description": "Get kubernetes cluster information",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Kubernetes] Cluster Management"
                ],
                "summary": "Get kubernetes cluster information",
                "operationId": "GetK8sClusterInfo",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.K8sClusterAssetInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/k8sClusterRecommendNode": {
            "post": {
                "description": "Recommend K8sCluster's Node plan (filter and priority) Find details from https://github.com/cloud-barista/cb-tumblebug/discussions/1234",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Kubernetes] Cluster Management"
                ],
                "summary": "Recommend K8sCluster's Node plan (filter and priority)",
                "operationId": "RecommendK8sNode",
                "parameters": [
                    {
                        "description": "Recommend K8sCluster's Node plan (filter and priority)",
                        "name": "recommendSpecReq",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/model.RecommendSpecReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/model.SpecInfo"
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/label/{labelType}/{uid}": {
            "get": {
                "description": "Get labels for a resource identified by its uid",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Common Utility"
                ],
                "summary": "Get labels for a resource",
                "operationId": "GetLabels",
                "parameters": [
                    {
                        "enum": [
                            "ns",
                            "mci",
                            "subGroup",
                            "vm",
                            "k8s",
                            "vNet",
                            "subnet",
                            "vpn",
                            "securityGroup",
                            "sshKey",
                            "dataDisk",
                            "sqlDb",
                            "objectStorage"
                        ],
                        "type": "string",
                        "description": "Label Type",
                        "name": "labelType",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Resource uid",
                        "name": "uid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Labels for the resource",
                        "schema": {
                            "$ref": "#/definitions/model.LabelInfo"
                        }
                    },
                    "400": {
                        "description": "Invalid request",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "put": {
                "description": "Create or update a label for a resource identified by its uid",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Common Utility"
                ],
                "summary": "Create or update a label for a resource",
                "operationId": "CreateOrUpdateLabel",
                "parameters": [
                    {
                        "enum": [
                            "ns",
                            "mci",
                            "subGroup",
                            "vm",
                            "k8s",
                            "vNet",
                            "subnet",
                            "vpn",
                            "securityGroup",
                            "sshKey",
                            "dataDisk",
                            "sqlDb",
                            "objectStorage"
                        ],
                        "type": "string",
                        "description": "Label Type",
                        "name": "labelType",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Resource uid",
                        "name": "uid",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Labels to create or update",
                        "name": "labels",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.Label"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Label created or updated successfully",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "400": {
                        "description": "Invalid request",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/label/{labelType}/{uid}/{key}": {
            "delete": {
                "description": "Remove a label from a resource identified by its uid",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Common Utility"
                ],
                "summary": "Remove a label from a resource",
                "operationId": "RemoveLabel",
                "parameters": [
                    {
                        "enum": [
                            "ns",
                            "mci",
                            "subGroup",
                            "vm",
                            "k8s",
                            "vNet",
                            "subnet",
                            "vpn",
                            "securityGroup",
                            "sshKey",
                            "dataDisk",
                            "sqlDb",
                            "objectStorage"
                        ],
                        "type": "string",
                        "description": "Label Type",
                        "name": "labelType",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Resource uid",
                        "name": "uid",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Label key to remove",
                        "name": "key",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Label removed successfully",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "400": {
                        "description": "Invalid request",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/labelInfo": {
            "get": {
                "description": "Return LabelTypes and system defined label keys with example",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Common Utility"
                ],
                "summary": "Return LabelTypes and system defined label keys with example",
                "operationId": "GetSystemLabelInfo",
                "responses": {
                    "200": {
                        "description": "LabelTypes and System labels with example values",
                        "schema": {
                            "$ref": "#/definitions/model.SystemLabelInfo"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/loadAssets": {
            "get": {
                "description": "Load Common Resources from internal asset files (Spec, Image)",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Admin] System Configuration"
                ],
                "summary": "Load Common Resources from internal asset files",
                "operationId": "LoadAssets",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.IdList"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/lookupImage": {
            "post": {
                "description": "Lookup image (for debugging purposes)",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Image Management"
                ],
                "summary": "Lookup image (for debugging purposes)",
                "operationId": "LookupImage",
                "parameters": [
                    {
                        "description": "Specify connectionName, cspImageName",
                        "name": "lookupImageReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/resource.RestLookupImageRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SpiderImageInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/lookupImages": {
            "post": {
                "description": "Lookup image list (for debugging purposes)",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Image Management"
                ],
                "summary": "Lookup image list (for debugging purposes)",
                "operationId": "LookupImageList",
                "parameters": [
                    {
                        "description": "Specify connectionName",
                        "name": "lookupImagesReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/common.TbConnectionName"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SpiderImageList"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/lookupSpec": {
            "post": {
                "description": "Lookup spec (for debugging purposes)",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Spec Management"
                ],
                "summary": "Lookup spec (for debugging purposes)",
                "operationId": "LookupSpec",
                "parameters": [
                    {
                        "description": "Specify connectionName \u0026 cspSpecNameS",
                        "name": "lookupSpecReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/resource.RestLookupSpecRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SpiderSpecInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/lookupSpecs": {
            "post": {
                "description": "Lookup spec list (for debugging purposes)",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Spec Management"
                ],
                "summary": "Lookup spec list (for debugging purposes)",
                "operationId": "LookupSpecList",
                "parameters": [
                    {
                        "description": "Specify connectionName",
                        "name": "lookupSpecsReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/common.TbConnectionName"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SpiderSpecList"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/mciDynamicCheckRequest": {
            "post": {
                "description": "Validate resource availability and discover optimal connection configurations before creating MCI dynamically.\nThis endpoint provides comprehensive resource validation and connection discovery for MCI planning:\n\n**Resource Validation Process:**\n1. **Specification Analysis**: Validates that requested common specs exist and are accessible\n2. **Provider Discovery**: Identifies available cloud providers and regions for each specification\n3. **Connectivity Assessment**: Tests connection configurations and CSP API accessibility\n4. **Quota Verification**: Checks available quotas and resource limits where possible\n5. **Compatibility Matrix**: Generates matrix of viable spec-provider-region combinations\n\n**Connection Configuration Discovery:**\n- **Available Providers**: Lists all configured cloud providers (AWS, Azure, GCP, etc.)\n- **Active Regions**: Shows available regions per provider with connectivity status\n- **Specification Mapping**: Maps common specs to provider-specific instance types\n- **Image Compatibility**: Validates image availability across different providers/regions\n- **Network Capabilities**: Identifies supported network features and configurations\n\n**Pre-Deployment Validation:**\n- **Resource Existence**: Confirms all specified resources exist in system namespace\n- **Permission Verification**: Validates CSP credentials and required permissions\n- **API Connectivity**: Tests connection to CSP APIs and service endpoints\n- **Dependency Resolution**: Identifies any missing dependencies or prerequisites\n\n**Optimization Recommendations:**\n- **Cost-Effective Regions**: Suggests regions with lower pricing for specified resources\n- **Performance Optimization**: Recommends regions with better network performance\n- **Availability Zone**: Identifies optimal AZ distribution for high availability\n- **Resource Bundling**: Suggests efficient resource combinations and groupings\n\n**Output Information:**\n- **Connection Candidates**: List of viable connection configurations\n- **Provider Capabilities**: Detailed capabilities matrix per provider\n- **Resource Status**: Real-time availability status for each requested resource\n- **Recommendation Summary**: Actionable recommendations for optimal deployment\n\n**Use Cases:**\n- Pre-validate MCI configuration before expensive deployment operations\n- Discover optimal provider/region combinations for cost or performance\n- Troubleshoot resource availability issues during MCI planning\n- Generate connection configuration templates for standardized deployments\n- Assess infrastructure capacity and planning constraints\n\n**Integration Workflow:**\n1. Use this endpoint to validate and discover connection options\n2. Review recommendations and adjust specifications if needed\n3. Use ` + "`" + `/mciDynamicReview` + "`" + ` for detailed cost estimation and final validation\n4. Proceed with ` + "`" + `/mciDynamic` + "`" + ` using validated configuration",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Provisioning and Management"
                ],
                "summary": "Check Resource Availability for Dynamic MCI Creation",
                "operationId": "PostMciDynamicCheckRequest",
                "parameters": [
                    {
                        "description": "Resource check request containing common specifications to validate",
                        "name": "mciReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.MciConnectionConfigCandidatesReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Resource availability matrix with connection candidates, provider capabilities, and optimization recommendations",
                        "schema": {
                            "$ref": "#/definitions/model.CheckMciDynamicReqInfo"
                        }
                    },
                    "400": {
                        "description": "Invalid request format or malformed specification identifiers",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Specified common specifications not found in system namespace",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "CSP connectivity issues or internal validation service errors",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/mergeCSPLabel/{labelType}/{uid}": {
            "put": {
                "description": "Fetch the labels in the CSP and merge them with the existing labels",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Common Utility"
                ],
                "summary": "Fetch the labels in the CSP and merge them with the existing labels",
                "operationId": "MergeCSPResourceLabel",
                "parameters": [
                    {
                        "enum": [
                            "ns",
                            "mci",
                            "subGroup",
                            "vm",
                            "k8s",
                            "vNet",
                            "subnet",
                            "vpn",
                            "securityGroup",
                            "sshKey",
                            "dataDisk",
                            "sqlDb",
                            "objectStorage"
                        ],
                        "type": "string",
                        "description": "Label Type",
                        "name": "labelType",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Resource uid",
                        "name": "uid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Merged CSP labels successfully",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "400": {
                        "description": "Invalid request",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns": {
            "get": {
                "description": "List all namespaces or namespaces' ID",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Admin] System Configuration"
                ],
                "summary": "List all namespaces or namespaces' ID",
                "operationId": "GetAllNs",
                "parameters": [
                    {
                        "enum": [
                            "id"
                        ],
                        "type": "string",
                        "description": "Option",
                        "name": "option",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Different return structures by the given option param",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/common.JSONResult"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "[DEFAULT]": {
                                            "$ref": "#/definitions/common.RestGetAllNsResponse"
                                        },
                                        "[ID]": {
                                            "$ref": "#/definitions/model.IdList"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "post": {
                "description": "Create namespace",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Admin] System Configuration"
                ],
                "summary": "Create namespace",
                "operationId": "PostNs",
                "parameters": [
                    {
                        "description": "Details for a new namespace",
                        "name": "nsReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.NsReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.NsInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete all namespaces",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Admin] System Configuration"
                ],
                "summary": "Delete all namespaces",
                "operationId": "DelAllNs",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}": {
            "get": {
                "description": "Get namespace",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Admin] System Configuration"
                ],
                "summary": "Get namespace",
                "operationId": "GetNs",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.NsInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "put": {
                "description": "Update namespace",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Admin] System Configuration"
                ],
                "summary": "Update namespace",
                "operationId": "PutNs",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Details to update existing namespace",
                        "name": "namespace",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.NsReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.NsInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete namespace",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Admin] System Configuration"
                ],
                "summary": "Delete namespace",
                "operationId": "DelNs",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/benchmark/mci/{mciId}": {
            "post": {
                "description": "Run MCI benchmark for a single performance metric and return results",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Performance Benchmarking (WIP)"
                ],
                "summary": "Run MCI benchmark for a single performance metric and return results",
                "operationId": "GetBenchmark",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Host IP address to benchmark",
                        "name": "hostIP",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/infra.RestGetBenchmarkRequest"
                        }
                    },
                    {
                        "enum": [
                            "install",
                            "init",
                            "cpus",
                            "cpum",
                            "memR",
                            "memW",
                            "fioR",
                            "fioW",
                            "dbR",
                            "dbW",
                            "rtt",
                            "mrtt",
                            "clean"
                        ],
                        "type": "string",
                        "description": "Benchmark Action to MCI",
                        "name": "action",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.BenchmarkInfoArray"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/benchmarkAll/mci/{mciId}": {
            "post": {
                "description": "Run MCI benchmark for all performance metrics and return results",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Performance Benchmarking (WIP)"
                ],
                "summary": "Run MCI benchmark for all performance metrics and return results",
                "operationId": "GetAllBenchmark",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Host IP address to benchmark",
                        "name": "hostIP",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/infra.RestGetAllBenchmarkRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.BenchmarkInfoArray"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/benchmarkLatency/mci/{mciId}": {
            "get": {
                "description": "Run MCI benchmark for network latency",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Performance Benchmarking (WIP)"
                ],
                "summary": "Run MCI benchmark for network latency",
                "operationId": "GetLatencyBenchmark",
                "parameters": [
                    {
                        "type": "string",
                        "default": "system",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "probe",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.BenchmarkInfoArray"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/checkResource/{resourceType}/{resourceId}": {
            "get": {
                "description": "Check resources' existence",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Common Utility"
                ],
                "summary": "Check resources' existence",
                "operationId": "CheckResource",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Resource Type",
                        "name": "resourceType",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Resource ID",
                        "name": "resourceId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/cmd/k8sCluster/{k8sClusterId}": {
            "post": {
                "description": "Send a command to specified Container in K8sCluster\n[note] This feature is not intended for general use\nThis API is provided as an exceptional and limited function for specific purposes such as migration.\nKubernetes resource information required as input for this API is not currently provided, and its availability in the future is uncertain.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Kubernetes] Cluster's Container Remote Command"
                ],
                "summary": "Send a command to specified Container in K8sCluster",
                "operationId": "PostCmdK8sCluster",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "k8scluster01",
                        "description": "K8sCluster ID",
                        "name": "k8sClusterId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace in K8sCluster to apply the command",
                        "name": "k8sClusterNamespace",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mypod",
                        "description": "Pod Name in K8sCluster to apply the command",
                        "name": "k8sClusterPodName",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Container Name in K8sCluster to apply the command",
                        "name": "k8sClusterContainerName",
                        "in": "query"
                    },
                    {
                        "description": "K8sCluster's Container Command Request",
                        "name": "k8sClusterContainerCmdReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.K8sClusterContainerCmdReq"
                        }
                    },
                    {
                        "type": "string",
                        "description": "Custom request ID",
                        "name": "x-request-id",
                        "in": "header"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.K8sClusterContainerCmdResult"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/cmd/mci/{mciId}": {
            "post": {
                "description": "Send a command to specified MCI",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Remote Command"
                ],
                "summary": "Send a command to specified MCI",
                "operationId": "PostCmdMci",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "MCI Command Request",
                        "name": "mciCmdReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.MciCmdReq"
                        }
                    },
                    {
                        "type": "string",
                        "default": "g1",
                        "description": "subGroupId to apply the command only for VMs in subGroup of MCI",
                        "name": "subGroupId",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "default": "g1-1",
                        "description": "vmId to apply the command only for a VM in MCI",
                        "name": "vmId",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Target VM Label selector query. Example: sys.id=g1-1,role=worker",
                        "name": "labelSelector",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Custom request ID",
                        "name": "x-request-id",
                        "in": "header"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.MciSshCmdResultForAPI"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/control/k8sCluster/{k8sClusterId}": {
            "get": {
                "description": "Control the creation of K8sCluster (continue, withdraw)",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Kubernetes] Cluster Management"
                ],
                "summary": "Control the creation of K8sCluster (continue, withdraw)",
                "operationId": "GetControlK8sCluster",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "k8scluster01",
                        "description": "K8sCluster ID",
                        "name": "k8sClusterId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "enum": [
                            "continue",
                            "withdraw"
                        ],
                        "type": "string",
                        "description": "Action to K8sCluster",
                        "name": "action",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/control/mci/{mciId}": {
            "get": {
                "description": "Control the lifecycle of MCI (refine, suspend, resume, reboot, terminate)",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Provisioning and Management"
                ],
                "summary": "Control the lifecycle of MCI (refine, suspend, resume, reboot, terminate)",
                "operationId": "GetControlMci",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "enum": [
                            "suspend",
                            "resume",
                            "reboot",
                            "terminate",
                            "refine",
                            "continue",
                            "withdraw"
                        ],
                        "type": "string",
                        "description": "Action to MCI",
                        "name": "action",
                        "in": "query",
                        "required": true
                    },
                    {
                        "enum": [
                            "false",
                            "true"
                        ],
                        "type": "string",
                        "description": "Force control to skip checking controllable status",
                        "name": "force",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/control/mci/{mciId}/vm/{vmId}": {
            "get": {
                "description": "Control the lifecycle of VM (suspend, resume, reboot, terminate)",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Provisioning and Management"
                ],
                "summary": "Control the lifecycle of VM (suspend, resume, reboot, terminate)",
                "operationId": "GetControlMciVm",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "g1-1",
                        "description": "VM ID",
                        "name": "vmId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "enum": [
                            "suspend",
                            "resume",
                            "reboot",
                            "terminate"
                        ],
                        "type": "string",
                        "description": "Action to MCI",
                        "name": "action",
                        "in": "query",
                        "required": true
                    },
                    {
                        "enum": [
                            "false",
                            "true"
                        ],
                        "type": "string",
                        "description": "Force control to skip checking controllable status",
                        "name": "force",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/deregisterCspResource/vNet/{vNetId}": {
            "delete": {
                "description": "Deregister the VNet, which was created in CSP",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Network Management"
                ],
                "summary": "Deregister VNet (created in CSP)",
                "operationId": "DeleteDeregisterVNet",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "VNet ID",
                        "name": "vNetId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "enum": [
                            "true",
                            "false"
                        ],
                        "type": "string",
                        "description": "Delete subnets as well",
                        "name": "withSubnets",
                        "in": "query"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/model.VNetInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/deregisterCspResource/vNet/{vNetId}/subnet/{subnetId}": {
            "delete": {
                "description": "Deregister Subnet, which was created in CSP",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Network Management"
                ],
                "summary": "Deregister Subnet (created in CSP)",
                "operationId": "DeleteDeregisterSubnet",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "VNet ID",
                        "name": "vNetId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Subnet ID",
                        "name": "subnetId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/installBenchmarkAgent/mci/{mciId}": {
            "post": {
                "description": "Install the benchmark agent to specified MCI",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Performance Benchmarking (WIP)"
                ],
                "summary": "Install the benchmark agent to specified MCI",
                "operationId": "PostInstallBenchmarkAgentToMci",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "MCI Command Request",
                        "name": "mciCmdReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.MciCmdReq"
                        }
                    },
                    {
                        "enum": [
                            "update"
                        ],
                        "type": "string",
                        "description": "Option for checking update",
                        "name": "option",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.MciSshCmdResult"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/k8sCluster": {
            "get": {
                "description": "List all K8sClusters or K8sClusters' ID",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Kubernetes] Cluster Management"
                ],
                "summary": "List all K8sClusters or K8sClusters' ID",
                "operationId": "GetAllK8sCluster",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "enum": [
                            "id"
                        ],
                        "type": "string",
                        "description": "Option",
                        "name": "option",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field key for filtering (ex: cspResourceName)",
                        "name": "filterKey",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field value for filtering (ex: default-alibaba-ap-northeast-2-vpc)",
                        "name": "filterVal",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Different return structures by the given option param",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/resource.JSONResult"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "[DEFAULT]": {
                                            "$ref": "#/definitions/resource.RestGetAllK8sClusterResponse"
                                        },
                                        "[ID]": {
                                            "$ref": "#/definitions/model.IdList"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "post": {
                "description": "Create K8sCluster\u003cbr\u003eFind details from https://github.com/cloud-barista/cb-tumblebug/discussions/1614",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Kubernetes] Cluster Management"
                ],
                "summary": "Create K8sCluster",
                "operationId": "PostK8sCluster",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "enum": [
                            "register"
                        ],
                        "type": "string",
                        "description": "Option: [required params for register] connectionName, name, cspResourceId",
                        "name": "option",
                        "in": "query"
                    },
                    {
                        "description": "Details of the K8sCluster object",
                        "name": "k8sClusterReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.K8sClusterReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.K8sClusterInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete all K8sClusters",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Kubernetes] Cluster Management"
                ],
                "summary": "Delete all K8sClusters",
                "operationId": "DeleteAllK8sCluster",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "",
                        "description": "Delete resources containing matched ID-substring only",
                        "name": "match",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "force"
                        ],
                        "type": "string",
                        "description": "Option for K8sCluster deletion",
                        "name": "option",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.IdList"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/k8sCluster/{k8sClusterId}": {
            "get": {
                "description": "Get K8sCluster",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Kubernetes] Cluster Management"
                ],
                "summary": "Get K8sCluster",
                "operationId": "GetK8sCluster",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "k8scluster01",
                        "description": "K8sCluster ID",
                        "name": "k8sClusterId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.K8sClusterInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete K8sCluster",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Kubernetes] Cluster Management"
                ],
                "summary": "Delete K8sCluster",
                "operationId": "DeleteK8sCluster",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "k8scluster01",
                        "description": "K8sCluster ID",
                        "name": "k8sClusterId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "enum": [
                            "force"
                        ],
                        "type": "string",
                        "description": "Option for K8sCluster deletion",
                        "name": "option",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/k8sCluster/{k8sClusterId}/k8sNodeGroup": {
            "post": {
                "description": "Add a K8sNodeGroup",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Kubernetes] Cluster Management"
                ],
                "summary": "Add a K8sNodeGroup",
                "operationId": "PostK8sNodeGroup",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "k8scluster01",
                        "description": "K8sCluster ID",
                        "name": "k8sClusterId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Details of the K8sNodeGroup object",
                        "name": "k8sNodeGroupReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.K8sNodeGroupReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.K8sClusterInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/k8sCluster/{k8sClusterId}/k8sNodeGroup/{k8sNodeGroupName}": {
            "delete": {
                "description": "Remove a K8sNodeGroup",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Kubernetes] Cluster Management"
                ],
                "summary": "Remove a K8sNodeGroup",
                "operationId": "DeleteK8sNodeGroup",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "k8scluster01",
                        "description": "K8sCluster ID",
                        "name": "k8sClusterId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "k8sng01",
                        "description": "K8sNodeGroup Name",
                        "name": "k8sNodeGroupName",
                        "in": "path",
                        "required": true
                    },
                    {
                        "enum": [
                            "force"
                        ],
                        "type": "string",
                        "description": "Option for K8sNodeGroup deletion",
                        "name": "option",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/k8sCluster/{k8sClusterId}/k8sNodeGroup/{k8sNodeGroupName}/autoscaleSize": {
            "put": {
                "description": "Change a K8sNodeGroup's Autoscale Size",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Kubernetes] Cluster Management"
                ],
                "summary": "Change a K8sNodeGroup's Autoscale Size",
                "operationId": "PutChangeK8sNodeGroupAutoscaleSize",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "k8scluster01",
                        "description": "K8sCluster ID",
                        "name": "k8sClusterId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "k8sng01",
                        "description": "K8sNodeGroup Name",
                        "name": "k8sNodeGroupName",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Details of the ChangeK8sNodeGroupAutoscaleSizeReq object",
                        "name": "changeK8sNodeGroupAutoscaleSizeReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.ChangeK8sNodeGroupAutoscaleSizeReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.ChangeK8sNodeGroupAutoscaleSizeRes"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/k8sCluster/{k8sClusterId}/k8sNodeGroup/{k8sNodeGroupName}/onAutoscaling": {
            "put": {
                "description": "Set a K8sNodeGroup's Autoscaling On/Off",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Kubernetes] Cluster Management"
                ],
                "summary": "Set a K8sNodeGroup's Autoscaling On/Off",
                "operationId": "PutSetK8sNodeGroupAutoscaling",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "k8scluster01",
                        "description": "K8sCluster ID",
                        "name": "k8sClusterId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "k8sng01",
                        "description": "K8sNodeGroup Name",
                        "name": "k8sNodeGroupName",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Details of the SetK8sNodeGroupAutoscalingReq object",
                        "name": "setK8sNodeGroupAutoscalingReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.SetK8sNodeGroupAutoscalingReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SetK8sNodeGroupAutoscalingRes"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/k8sCluster/{k8sClusterId}/k8sNodeGroupDynamic": {
            "post": {
                "description": "Create K8sNodeGroup Dynamically from common spec and image",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Kubernetes] Cluster Management"
                ],
                "summary": "Create K8sNodeGroup Dynamically",
                "operationId": "PostK8sNodeGroupDynamic",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "k8scluster01",
                        "description": "K8sCluster ID",
                        "name": "k8sClusterId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Request body to provision K8sNodeGroup dynamically. \u003cbr\u003e Must include specId and imageId info. \u003cbr\u003e (ex: {name: k8sng01, imageId: azure+koreacentral+ubuntu22.04, specId: azure+koreacentral+Standard_B2s}]}) \u003cbr\u003e You can use /k8sClusterRecommendNode and /k8sClusterDynamicCheckRequest to get it. \u003cbr\u003e Check the guide: https://github.com/cloud-barista/cb-tumblebug/discussions/1913",
                        "name": "k8sNodeGroupDynamicReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.K8sNodeGroupDynamicReq"
                        }
                    },
                    {
                        "type": "string",
                        "description": "Custom request ID",
                        "name": "x-request-id",
                        "in": "header"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.K8sNodeGroupInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/k8sCluster/{k8sClusterId}/upgrade": {
            "put": {
                "description": "Upgrade a K8sCluster's version",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Kubernetes] Cluster Management"
                ],
                "summary": "Upgrade a K8sCluster's version",
                "operationId": "PutUpgradeK8sCluster",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "k8scluster01",
                        "description": "K8sCluster ID",
                        "name": "k8sClusterId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Details of the UpgradeK8sClusterReq object",
                        "name": "upgradeK8sClusterReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.UpgradeK8sClusterReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/k8sClusterDynamic": {
            "post": {
                "description": "Create K8sCluster Dynamically from common spec and image",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Kubernetes] Cluster Management"
                ],
                "summary": "Create K8sCluster Dynamically",
                "operationId": "PostK8sClusterDynamic",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Request body to provision K8sCluster dynamically. \u003cbr\u003e Must include specId and imageId info. \u003cbr\u003e (ex: {name: k8scluster01, imageId: azure+koreacentral+ubuntu22.04, specId: azure+koreacentral+Standard_B2s}]}) \u003cbr\u003e You can use /k8sClusterRecommendNode and /k8sClusterDynamicCheckRequest to get it. \u003cbr\u003e Check the guide: https://github.com/cloud-barista/cb-tumblebug/discussions/1913",
                        "name": "k8sClusterDyanmicReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.K8sClusterDynamicReq"
                        }
                    },
                    {
                        "enum": [
                            "hold"
                        ],
                        "type": "string",
                        "description": "Option for K8sCluster creation",
                        "name": "option",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Custom request ID",
                        "name": "x-request-id",
                        "in": "header"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.K8sClusterInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/mci": {
            "get": {
                "description": "List all MCIs or MCIs' ID",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Provisioning and Management"
                ],
                "summary": "List all MCIs or MCIs' ID",
                "operationId": "GetAllMci",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "enum": [
                            "id",
                            "simple",
                            "status"
                        ],
                        "type": "string",
                        "description": "Option",
                        "name": "option",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Different return structures by the given option param",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/infra.JSONResult"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "[DEFAULT]": {
                                            "$ref": "#/definitions/infra.RestGetAllMciResponse"
                                        },
                                        "[ID]": {
                                            "$ref": "#/definitions/model.IdList"
                                        },
                                        "[SIMPLE]": {
                                            "$ref": "#/definitions/infra.RestGetAllMciResponse"
                                        },
                                        "[STATUS]": {
                                            "$ref": "#/definitions/infra.RestGetAllMciStatusResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "post": {
                "description": "Create MCI with detailed VM specifications and resource configuration.\nThis endpoint creates a complete multi-cloud infrastructure by:\n1. **VM Provisioning**: Creates VMs across multiple cloud providers using predefined specs and images\n2. **Resource Management**: Automatically handles VPC/VNet, security groups, SSH keys, and network configuration\n3. **Status Tracking**: Monitors VM creation progress and handles failures based on policy settings\n4. **Post-Deployment**: Optionally installs monitoring agents and executes custom commands\n\n**Key Features:**\n- Multi-cloud VM deployment with heterogeneous configurations\n- Automatic resource dependency management (VPC → Security Group → VM)\n- Built-in failure handling with configurable policies (continue/rollback/refine)\n- Optional CB-Dragonfly monitoring agent installation\n- Post-deployment command execution support\n- Real-time status updates and progress tracking\n\n**VM Lifecycle:**\n1. Creating → Running (successful deployment)\n2. Creating → Failed (deployment error, handled by failure policy)\n3. Running → Terminated (manual or policy-driven cleanup)\n\n**Failure Policies:**\n- ` + "`" + `continue` + "`" + `: Keep successful VMs, mark failed ones for later refinement\n- ` + "`" + `rollback` + "`" + `: Delete entire MCI if any VM fails (all-or-nothing)\n- ` + "`" + `refine` + "`" + `: Automatically clean up failed VMs, keep successful ones\n\n**Resource Requirements:**\n- Valid VM specifications (must exist in system namespace)\n- Valid images (must be available in target CSP regions)\n- Sufficient CSP quotas and permissions\n- Network connectivity between components",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Provisioning and Management"
                ],
                "summary": "Create MCI (Multi-Cloud Infrastructure)",
                "operationId": "PostMci",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID for resource isolation",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "MCI creation request with VM specifications, networking, and deployment options",
                        "name": "mciReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.MciReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Created MCI information with VM details, status, and resource mapping",
                        "schema": {
                            "$ref": "#/definitions/model.MciInfo"
                        }
                    },
                    "400": {
                        "description": "Invalid request parameters or missing required fields",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Namespace not found or specified resources unavailable",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "409": {
                        "description": "MCI name already exists in namespace",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal server error during MCI creation or CSP communication failure",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete all MCIs",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Provisioning and Management"
                ],
                "summary": "Delete all MCIs",
                "operationId": "DelAllMci",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "enum": [
                            "force",
                            "terminate"
                        ],
                        "type": "string",
                        "description": "Option for delete all MCIs (support force object delete, terminate before delete)",
                        "name": "option",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/mci/{mciId}": {
            "get": {
                "description": "Get MCI object (option: status, accessInfo, vmId)",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Provisioning and Management"
                ],
                "summary": "Get MCI object (option: status, accessInfo, vmId)",
                "operationId": "GetMci",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "enum": [
                            "default",
                            "id",
                            "status",
                            "accessinfo"
                        ],
                        "type": "string",
                        "description": "Option",
                        "name": "option",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "(For option=id) Field key for filtering (ex: connectionName)",
                        "name": "filterKey",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "(For option=id) Field value for filtering (ex: aws-ap-northeast-2)",
                        "name": "filterVal",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "(For option=accessinfo) accessInfoOption (showSshKey)",
                        "name": "accessInfoOption",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Different return structures by the given action param",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/infra.JSONResult"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "[AccessInfo]": {
                                            "$ref": "#/definitions/model.MciAccessInfo"
                                        },
                                        "[DEFAULT]": {
                                            "$ref": "#/definitions/model.MciInfo"
                                        },
                                        "[ID]": {
                                            "$ref": "#/definitions/model.IdList"
                                        },
                                        "[STATUS]": {
                                            "$ref": "#/definitions/model.MciStatusInfo"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete MCI",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Provisioning and Management"
                ],
                "summary": "Delete MCI",
                "operationId": "DelMci",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "enum": [
                            "terminate",
                            "force"
                        ],
                        "type": "string",
                        "description": "Option for delete MCI (support force delete)",
                        "name": "option",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.IdList"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/mci/{mciId}/associatedResources": {
            "get": {
                "description": "Get associated resource ID list for a given MCI (VNet, Subnet, SecurityGroup, SSHKey, etc.)",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Provisioning and Management"
                ],
                "summary": "Get associated resource ID list for a given MCI",
                "operationId": "GetMciAssociatedResources",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.MciAssociatedResourceList"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/mci/{mciId}/associatedSecurityGroups": {
            "put": {
                "description": "Update all Security Groups associated with a given MCI. The firewall rules of all Security Groups will be synchronized to match the requested set.\nUpdate all Security Groups associated with a given MCI. The firewall rules of all associated Security Groups will be synchronized to match the requested set.\n\nThis API will add missing rules and delete extra rules so that each Security Group's rules become identical to the requested set.\nOnly firewall rules are updated; other metadata (name, description, etc.) is not changed.\n\nUsage:\nUse this API to update (synchronize) the firewall rules of all Security Groups associated with the specified MCI. The rules in the request body will become the only rules in each Security Group after the operation.\n- All existing rules not present in the request will be deleted.\n- All rules in the request that do not exist will be added.\n- If a rule exists but differs in CIDR or port range, it will be replaced.\n- Special protocols (ICMP, etc.) are handled in the same way.\n\nNotes:\n- \"Ports\" field supports single port (\"22\"), port range (\"80-100\"), and multiple ports/ranges (\"22,80-100,443\").\n- The valid port number range is 0 to 65535 (inclusive).\n- \"Protocol\" can be TCP, UDP, ICMP, etc. (as supported by the cloud provider).\n- \"Direction\" must be either \"inbound\" or \"outbound\".\n- \"CIDR\" is the allowed IP range.\n- All existing rules not in the request (including default ICMP, etc.) will be deleted.\n- Metadata (name, description, etc.) is not changed.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Provisioning and Management"
                ],
                "summary": "Update all Security Groups associated with a given MCI (Synchronize Firewall Rules)",
                "operationId": "PutMciAssociatedSecurityGroups",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Details for SecurityGroup update (only firewallRules field is used for update)",
                        "name": "securityGroupInfo",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.SecurityGroupUpdateReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Updated Security Group info list with synchronized firewall rules",
                        "schema": {
                            "$ref": "#/definitions/model.RestWrapperSecurityGroupUpdateResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/mci/{mciId}/bastion/{bastionVmId}": {
            "delete": {
                "description": "Remove a bastion VM from all vNets",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Remote Command"
                ],
                "summary": "Remove a bastion VM from all vNets",
                "operationId": "RemoveBastionNodes",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "g1-1",
                        "description": "Bastion VM ID",
                        "name": "bastionVmId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/mci/{mciId}/handlingCount": {
            "get": {
                "description": "Get the number of commands currently in 'Handling' status for all VMs in an MCI. Returns per-VM counts and total count.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Remote Command Status"
                ],
                "summary": "Get count of currently handling commands for all VMs in MCI",
                "operationId": "GetMciHandlingCommandCount",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Custom request ID",
                        "name": "x-request-id",
                        "in": "header"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.MciHandlingCommandCountResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/mci/{mciId}/mcSwNlb": {
            "post": {
                "description": "Create a special purpose MCI for NLB and depoly and setting SW NLB",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] NLB Management"
                ],
                "summary": "Create a special purpose MCI for NLB and depoly and setting SW NLB",
                "operationId": "PostMcNLB",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Details of the NLB object",
                        "name": "nlbReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.NLBReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.McNlbInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/mci/{mciId}/nlb": {
            "get": {
                "description": "List all NLBs or NLBs' ID",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] NLB Management"
                ],
                "summary": "List all NLBs or NLBs' ID",
                "operationId": "GetAllNLB",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "enum": [
                            "id"
                        ],
                        "type": "string",
                        "description": "Option",
                        "name": "option",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field key for filtering (ex: cspResourceName)",
                        "name": "filterKey",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field value for filtering (ex: default-alibaba-ap-northeast-1-vpc)",
                        "name": "filterVal",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Different return structures by the given option param",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/infra.JSONResult"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "[DEFAULT]": {
                                            "$ref": "#/definitions/infra.RestGetAllNLBResponse"
                                        },
                                        "[ID]": {
                                            "$ref": "#/definitions/model.IdList"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "post": {
                "description": "Create NLB",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] NLB Management"
                ],
                "summary": "Create NLB",
                "operationId": "PostNLB",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "enum": [
                            "register"
                        ],
                        "type": "string",
                        "description": "Option: [required params for register] connectionName, name, cspResourceId",
                        "name": "option",
                        "in": "query"
                    },
                    {
                        "description": "Details of the NLB object",
                        "name": "nlbReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.NLBReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.NLBInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete all NLBs",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] NLB Management"
                ],
                "summary": "Delete all NLBs",
                "operationId": "DelAllNLB",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "",
                        "description": "Delete resources containing matched ID-substring only",
                        "name": "match",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.IdList"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/mci/{mciId}/nlb/{nlbId}": {
            "get": {
                "description": "Get NLB",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] NLB Management"
                ],
                "summary": "Get NLB",
                "operationId": "GetNLB",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "g1",
                        "description": "NLB ID",
                        "name": "nlbId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.NLBInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete NLB",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] NLB Management"
                ],
                "summary": "Delete NLB",
                "operationId": "DelNLB",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "NLB ID",
                        "name": "nlbId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/mci/{mciId}/nlb/{nlbId}/healthz": {
            "get": {
                "description": "Get NLB Health",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] NLB Management"
                ],
                "summary": "Get NLB Health",
                "operationId": "GetNLBHealth",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "g1",
                        "description": "NLB ID",
                        "name": "nlbId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.NLBInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/mci/{mciId}/nlb/{nlbId}/vm": {
            "post": {
                "description": "Add VMs to NLB",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] NLB Management (for developer)"
                ],
                "summary": "Add VMs to NLB",
                "operationId": "AddNLBVMs",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "g1",
                        "description": "NLB ID",
                        "name": "nlbId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "VMs to add to NLB",
                        "name": "nlbAddRemoveVMReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.NLBAddRemoveVMReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.NLBInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete VMs from NLB",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] NLB Management (for developer)"
                ],
                "summary": "Delete VMs from NLB",
                "operationId": "RemoveNLBVMs",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "g1",
                        "description": "NLB ID",
                        "name": "nlbId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Select VMs to remove from NLB",
                        "name": "nlbAddRemoveVMReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.NLBAddRemoveVMReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/mci/{mciId}/site": {
            "get": {
                "description": "Get sites in MCI",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Site-to-site VPN Management (under development)"
                ],
                "summary": "Get sites in MCI",
                "operationId": "GetSitesInMci",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SitesInfo"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "503": {
                        "description": "Service Unavailable",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/mci/{mciId}/subGroupDynamic": {
            "post": {
                "description": "Dynamically add new virtual machines to an existing MCI using common specifications and automated resource management.\nThis endpoint provides elastic scaling capabilities for running MCIs:\n\n**Dynamic VM Addition Process:**\n1. **MCI Validation**: Verifies target MCI exists and is in a valid state for expansion\n2. **Resource Discovery**: Resolves common spec and image to provider-specific resources\n3. **Network Integration**: Automatically configures new VMs to use existing MCI network resources\n4. **Subgroup Management**: Creates new subgroups or expands existing ones based on configuration\n5. **Status Synchronization**: Updates MCI status and metadata to reflect new VM additions\n\n**Integration with Existing Infrastructure:**\n- **Network Reuse**: New VMs automatically join existing VNets and security groups\n- **SSH Key Sharing**: Uses existing SSH keys for consistent access management\n- **Monitoring Integration**: New VMs inherit monitoring configuration from parent MCI\n- **Label Propagation**: Applies MCI-level labels and policies to new VMs\n- **Resource Consistency**: Maintains naming conventions and resource organization\n\n**Scaling Scenarios:**\n- **Horizontal Scaling**: Add more instances to handle increased workload\n- **Multi-Region Expansion**: Deploy VMs in new regions while maintaining MCI cohesion\n- **Provider Diversification**: Add VMs from different cloud providers for redundancy\n- **Workload Specialization**: Deploy VMs with different specifications for specific tasks\n\n**Configuration Requirements:**\n- ` + "`" + `specId` + "`" + `: Must specify valid VM specification from system namespace\n- ` + "`" + `imageId` + "`" + `: Must specify valid image compatible with target provider/region\n- ` + "`" + `name` + "`" + `: Becomes subgroup name; VMs will be named with sequential suffixes\n- ` + "`" + `subGroupSize` + "`" + `: Number of identical VMs to create (default: 1)\n\n**Network and Security:**\n- New VMs automatically inherit security group rules from existing MCI\n- Network connectivity to existing VMs is established automatically\n- Firewall rules and access policies are applied consistently\n- SSH access is configured using existing key pairs\n\n**Example Use Cases:**\n- Scale out web tier during traffic spikes\n- Add GPU instances for machine learning workloads\n- Deploy edge nodes in additional geographic regions\n- Add specialized storage or database nodes to existing application stack\n\n**Post-Addition Operations:**\n- New VMs are immediately available for standard MCI operations\n- Can be individually managed or grouped with existing subgroups\n- Monitoring and logging are automatically configured\n- Application deployment and configuration management can proceed immediately",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Provisioning and Management"
                ],
                "summary": "Add VM Dynamically to Existing MCI",
                "operationId": "PostMciSubGroupDynamic",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID containing the target MCI",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID to which new VMs will be added",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "SubGroup dynamic request specifying specId, imageId, and scaling parameters",
                        "name": "vmReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.CreateSubGroupDynamicReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Updated MCI information including newly added VMs and current status",
                        "schema": {
                            "$ref": "#/definitions/model.MciInfo"
                        }
                    },
                    "400": {
                        "description": "Invalid VM request or incompatible configuration parameters",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Target MCI not found or specified resources unavailable",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "409": {
                        "description": "Subgroup name conflicts or MCI in incompatible state",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "VM creation failed or network integration error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/mci/{mciId}/subGroupDynamicReview": {
            "post": {
                "description": "Review and validate a VM dynamic addition request for an existing MCI before actual provisioning.\nThis endpoint provides comprehensive validation for adding new VMs to existing MCIs without actually creating resources.\nIt checks resource availability, validates specifications and images, estimates costs, and provides detailed recommendations.\n\n**Key Features:**\n- Validates VM specification and image against CSP availability\n- Checks compatibility with existing MCI configuration\n- Provides cost estimation for the new VM addition\n- Identifies potential configuration issues and warnings\n- Recommends optimization strategies\n- Non-invasive validation (no resources are created)\n\n**Review Status:**\n- ` + "`" + `Ready` + "`" + `: VM can be added successfully\n- ` + "`" + `Warning` + "`" + `: VM can be added but with configuration warnings\n- ` + "`" + `Error` + "`" + `: Critical errors prevent VM addition\n\n**MCI Integration Validation:**\n- Ensures target MCI exists and is in a compatible state\n- Validates network integration possibilities\n- Checks resource naming conflicts\n- Verifies security group and SSH key compatibility\n\n**Use Cases:**\n- Pre-validation before expensive VM addition operations\n- Cost estimation for scaling decisions\n- Configuration optimization before deployment\n- Risk assessment for VM addition to existing infrastructure",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Provisioning and Management"
                ],
                "summary": "Review VM Dynamic Addition Request for Existing MCI",
                "operationId": "PostMciDynamicSubGroupVmReview",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID containing the target MCI",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID to which the VM will be added",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Request body to review VM dynamic addition. Must include specId and imageId info. (ex: {name: web-servers, specId: aws+ap-northeast-2+t2.small, imageId: aws+ap-northeast-2+ubuntu22.04, subGroupSize: 2})",
                        "name": "vmReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.CreateSubGroupDynamicReq"
                        }
                    },
                    {
                        "type": "string",
                        "description": "Custom request ID for tracking",
                        "name": "x-request-id",
                        "in": "header"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Comprehensive VM addition review result with validation status, cost estimation, and recommendations",
                        "schema": {
                            "$ref": "#/definitions/model.ReviewSubGroupDynamicReqInfo"
                        }
                    },
                    "400": {
                        "description": "Invalid request format or parameters",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Target MCI not found or namespace not found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal server error during validation",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/mci/{mciId}/subgroup": {
            "get": {
                "description": "List SubGroup IDs in a specified MCI",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Provisioning and Management"
                ],
                "summary": "List SubGroup IDs in a specified MCI",
                "operationId": "GetMciGroupIds",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.IdList"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/mci/{mciId}/subgroup/{subgroupId}": {
            "get": {
                "description": "List VMs with a SubGroup label in a specified MCI",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Provisioning and Management"
                ],
                "summary": "List VMs with a SubGroup label in a specified MCI",
                "operationId": "GetMciGroupVms",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "g1",
                        "description": "subGroup ID",
                        "name": "subgroupId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "enum": [
                            "id"
                        ],
                        "type": "string",
                        "description": "Option",
                        "name": "option",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.IdList"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "post": {
                "description": "Horizontally scale an existing VM subgroup by adding more identical instances for increased capacity.\nThis endpoint provides elastic scaling capabilities for running application tiers:\n\n**Scale-Out Process:**\n1. **SubGroup Validation**: Verifies target subgroup exists and is in scalable state\n2. **Template Replication**: Uses existing VM configuration as template for new instances\n3. **Resource Allocation**: Ensures sufficient CSP quotas and network resources\n4. **Parallel Deployment**: Deploys multiple new VMs simultaneously for faster scaling\n5. **Integration**: Seamlessly integrates new VMs into existing subgroup and MCI\n\n**Configuration Inheritance:**\n- **VM Specifications**: New VMs inherit exact specifications from existing subgroup members\n- **Network Settings**: Automatically placed in same VNet, subnet, and security groups\n- **SSH Keys**: Use same SSH key pairs for consistent access management\n- **Monitoring**: Inherit monitoring agent configuration and policies\n- **Labels and Metadata**: Propagate all labels and metadata from parent subgroup\n\n**Scaling Scenarios:**\n- **Traffic Spikes**: Quickly add capacity during high-demand periods\n- **Seasonal Scaling**: Scale out for predictable demand increases\n- **Performance Optimization**: Add instances to reduce per-VM resource utilization\n- **Geographic Expansion**: Scale existing workloads to handle broader user base\n- **Fault Tolerance**: Increase redundancy by adding more instances\n\n**Intelligent Scaling:**\n- **Sequential Naming**: New VMs follow established naming pattern (e.g., web-4, web-5, web-6)\n- **Load Distribution**: New VMs are distributed optimally across availability zones\n- **Resource Efficiency**: Reuses existing network and security infrastructure\n- **Minimal Disruption**: Scaling occurs without affecting existing VM operations\n- **Consistent Configuration**: Ensures all VMs in subgroup remain homogeneous\n\n**Operational Benefits:**\n- **Zero Downtime**: Existing VMs continue running during scale-out operation\n- **Immediate Availability**: New VMs are ready for traffic as soon as deployment completes\n- **Unified Management**: All VMs (old and new) managed through single subgroup\n- **Policy Consistency**: All scaling and management policies apply uniformly\n- **Monitoring Integration**: New VMs automatically included in existing monitoring dashboards\n\n**Scale-Out Considerations:**\n- **CSP Quotas**: Verifies sufficient instance, network, and storage quotas\n- **Region Capacity**: Ensures target region has capacity for requested instance types\n- **Network Limits**: Validates that VNet can accommodate additional VMs\n- **Cost Impact**: Additional VMs incur proportional CSP billing costs\n- **Application Readiness**: Applications should be designed to handle additional instances\n\n**Post-Scale Operations:**\n- New VMs immediately participate in subgroup operations\n- Can be individually managed while maintaining subgroup membership\n- Support for further scaling operations (scale-out or scale-in)\n- Ready for application deployment and load balancer integration\n\n**Best Practices:**\n- Monitor application performance before and after scaling\n- Ensure load balancers are configured to include new instances\n- Verify application clustering and session management handle new instances\n- Consider database connection limits and other resource constraints",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Provisioning and Management"
                ],
                "summary": "Scale Out Existing SubGroup in MCI",
                "operationId": "PostMciSubGroupScaleOut",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID containing the target MCI and subgroup",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID containing the subgroup to scale",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "g1",
                        "description": "SubGroup ID to scale out (must exist and contain at least one VM)",
                        "name": "subgroupId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Scale-out request specifying the number of additional VMs to create",
                        "name": "vmReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.ScaleOutSubGroupReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Updated MCI information with scaled subgroup showing all VMs including newly added instances",
                        "schema": {
                            "$ref": "#/definitions/model.MciInfo"
                        }
                    },
                    "400": {
                        "description": "Invalid scale-out request, insufficient quotas, or invalid VM count",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Target MCI or subgroup not found, or namespace inaccessible",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "409": {
                        "description": "SubGroup in incompatible state for scaling or resource conflicts detected",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "VM provisioning failed, network configuration error, or CSP capacity limitations",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/mci/{mciId}/vm": {
            "post": {
                "description": "Create and add a group of identical virtual machines (subgroup) to an existing MCI using detailed specifications.\nThis endpoint provides precise control over VM configuration and placement within existing infrastructure:\n\n**SubGroup Creation Process:**\n1. **MCI Integration**: Validates target MCI exists and can accommodate new VMs\n2. **Resource Validation**: Verifies all specified resources (specs, images, networks) exist and are accessible\n3. **Homogeneous Deployment**: Creates multiple identical VMs with consistent configuration\n4. **Network Integration**: Integrates new VMs with existing MCI networking and security policies\n5. **Group Management**: Establishes subgroup for collective management and operations\n\n**Detailed Configuration Control:**\n- **Specific Resource References**: Uses exact resource IDs rather than common specifications\n- **Network Placement**: Precise control over VNet, subnet, and security group assignment\n- **Storage Configuration**: Detailed disk configuration including type, size, and performance tiers\n- **Instance Customization**: Full control over VM specifications, images, and metadata\n- **Security Settings**: Explicit security group and SSH key configuration\n\n**SubGroup Benefits:**\n- **Collective Operations**: Perform operations on entire subgroup simultaneously\n- **Homogeneous Scaling**: All VMs in subgroup share identical configuration\n- **Simplified Management**: Single configuration template for multiple VMs\n- **Consistent Naming**: Automatic sequential naming (e.g., web-1, web-2, web-3)\n- **Group Policies**: Apply scaling, monitoring, and lifecycle policies at subgroup level\n\n**Use Cases:**\n- **Application Tiers**: Deploy multiple instances of web servers, application servers, or databases\n- **Load Distribution**: Create multiple identical VMs for load balancing scenarios\n- **High Availability**: Deploy redundant instances across availability zones\n- **Batch Processing**: Create worker nodes for distributed computing workloads\n- **Development Environments**: Provision identical development or testing instances\n\n**Configuration Requirements:**\n- **Resource IDs**: Must specify exact resource identifiers (not common specs)\n- **Network Configuration**: VNet, subnet, and security group must exist and be compatible\n- **SSH Keys**: Must specify valid SSH key pairs for access management\n- **Image Compatibility**: Specified image must be available in target region\n- **Quota Validation**: Sufficient CSP quotas must be available for all requested VMs\n\n**SubGroup Size Considerations:**\n- **Small Groups (1-5 VMs)**: Fast deployment, minimal resource contention\n- **Medium Groups (6-20 VMs)**: Optimized parallel deployment with resource batching\n- **Large Groups (21+ VMs)**: Advanced deployment strategies to avoid CSP rate limits\n- **Resource Limits**: Respects CSP quotas and CB-Tumblebug configuration limits\n\n**Post-Deployment Integration:**\n- SubGroup becomes integral part of parent MCI\n- All VMs inherit MCI-level monitoring and management policies\n- Can be scaled out further or individual VMs can be managed separately\n- Supports all standard CB-Tumblebug VM lifecycle operations",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Provisioning and Management"
                ],
                "summary": "Add Homogeneous VM SubGroup to Existing MCI",
                "operationId": "PostMciVm",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID containing the target MCI",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID to which the VM subgroup will be added",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Detailed VM subgroup specification including exact resource IDs, networking, and scaling parameters",
                        "name": "vmReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.CreateSubGroupReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Updated MCI information including newly created VM subgroup with individual VM details and status",
                        "schema": {
                            "$ref": "#/definitions/model.MciInfo"
                        }
                    },
                    "400": {
                        "description": "Invalid VM request, missing required resources, or configuration conflicts",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Target MCI not found, specified resources unavailable, or namespace inaccessible",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "409": {
                        "description": "SubGroup name conflicts, resource allocation conflicts, or MCI state incompatible with expansion",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "VM provisioning failed, network configuration error, or CSP API communication failure",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/mci/{mciId}/vm/{targetVmId}/bastion": {
            "get": {
                "description": "Get bastion nodes for a VM",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Remote Command"
                ],
                "summary": "Get bastion nodes for a VM",
                "operationId": "GetBastionNodes",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "g1-1",
                        "description": "Target VM ID",
                        "name": "targetVmId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/model.BastionNode"
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/mci/{mciId}/vm/{targetVmId}/bastion/{bastionVmId}": {
            "put": {
                "description": "Set bastion nodes for a VM",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Remote Command"
                ],
                "summary": "Set bastion nodes for a VM",
                "operationId": "SetBastionNodes",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "g1-1",
                        "description": "Target VM ID",
                        "name": "targetVmId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "g1-1",
                        "description": "Bastion VM ID",
                        "name": "bastionVmId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/mci/{mciId}/vm/{vmId}": {
            "get": {
                "description": "Get VM in specified MCI",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Provisioning and Management"
                ],
                "summary": "Get VM in specified MCI",
                "operationId": "GetMciVm",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "g1-1",
                        "description": "VM ID",
                        "name": "vmId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "enum": [
                            "default",
                            "status",
                            "idsInDetail",
                            "accessinfo"
                        ],
                        "type": "string",
                        "description": "Option for MCI",
                        "name": "option",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "(For option=accessinfo) accessInfoOption (showSshKey)",
                        "name": "accessInfoOption",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Different return structures by the given option param",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/infra.JSONResult"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "[DEFAULT]": {
                                            "$ref": "#/definitions/model.VmInfo"
                                        },
                                        "[IDNAME]": {
                                            "$ref": "#/definitions/model.IdNameInDetailInfo"
                                        },
                                        "[STATUS]": {
                                            "$ref": "#/definitions/model.VmStatusInfo"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete VM in specified MCI",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Provisioning and Management"
                ],
                "summary": "Delete VM in specified MCI",
                "operationId": "DelMciVm",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "g1-1",
                        "description": "VM ID",
                        "name": "vmId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "enum": [
                            "force"
                        ],
                        "type": "string",
                        "description": "Option for delete VM (support force delete)",
                        "name": "option",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/mci/{mciId}/vm/{vmId}/commandStatus": {
            "get": {
                "description": "List command status records for a VM with various filtering options",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Remote Command Status"
                ],
                "summary": "List command status records for a VM with filtering",
                "operationId": "ListVmCommandStatus",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "g1-1",
                        "description": "VM ID",
                        "name": "vmId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "array",
                        "items": {
                            "enum": [
                                "Queued",
                                "Handling",
                                "Completed",
                                "Failed",
                                "Timeout"
                            ],
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "description": "Filter by command execution status (can specify multiple)",
                        "name": "status",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter by X-Request-ID",
                        "name": "xRequestId",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter commands containing this text",
                        "name": "commandContains",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter commands started from this time (RFC3339 format)",
                        "name": "startTimeFrom",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter commands started until this time (RFC3339 format)",
                        "name": "startTimeTo",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Filter commands from this index (inclusive)",
                        "name": "indexFrom",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Filter commands to this index (inclusive)",
                        "name": "indexTo",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "default": 50,
                        "description": "Limit the number of results returned",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "default": 0,
                        "description": "Number of results to skip",
                        "name": "offset",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Custom request ID",
                        "name": "x-request-id",
                        "in": "header"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.CommandStatusListResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete multiple command status records for a VM based on filtering criteria",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Remote Command Status"
                ],
                "summary": "Delete multiple command status records by criteria for a VM",
                "operationId": "DeleteVmCommandStatusByCriteria",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "g1-1",
                        "description": "VM ID",
                        "name": "vmId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "array",
                        "items": {
                            "enum": [
                                "Queued",
                                "Handling",
                                "Completed",
                                "Failed",
                                "Timeout"
                            ],
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "description": "Filter by command execution status (can specify multiple)",
                        "name": "status",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter by X-Request-ID",
                        "name": "xRequestId",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter commands containing this text",
                        "name": "commandContains",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter commands started from this time (RFC3339 format)",
                        "name": "startTimeFrom",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter commands started until this time (RFC3339 format)",
                        "name": "startTimeTo",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Filter commands from this index (inclusive)",
                        "name": "indexFrom",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Filter commands to this index (inclusive)",
                        "name": "indexTo",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Custom request ID",
                        "name": "x-request-id",
                        "in": "header"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/mci/{mciId}/vm/{vmId}/commandStatus/{index}": {
            "get": {
                "description": "Get a specific command status record by index for a VM",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Remote Command Status"
                ],
                "summary": "Get a specific command status by index for a VM",
                "operationId": "GetVmCommandStatus",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "g1-1",
                        "description": "VM ID",
                        "name": "vmId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "default": 1,
                        "description": "Command Index",
                        "name": "index",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Custom request ID",
                        "name": "x-request-id",
                        "in": "header"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.CommandStatusInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete a specific command status record by index for a VM",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Remote Command Status"
                ],
                "summary": "Delete a specific command status by index for a VM",
                "operationId": "DeleteVmCommandStatus",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "g1-1",
                        "description": "VM ID",
                        "name": "vmId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "default": 1,
                        "description": "Command Index",
                        "name": "index",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Custom request ID",
                        "name": "x-request-id",
                        "in": "header"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/mci/{mciId}/vm/{vmId}/commandStatusAll": {
            "delete": {
                "description": "Delete all command status records for a VM",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Remote Command Status"
                ],
                "summary": "Clear all command status records for a VM",
                "operationId": "ClearAllVmCommandStatus",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "g1-1",
                        "description": "VM ID",
                        "name": "vmId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Custom request ID",
                        "name": "x-request-id",
                        "in": "header"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/mci/{mciId}/vm/{vmId}/dataDisk": {
            "get": {
                "description": "Get available dataDisks for a VM",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Data Disk Management"
                ],
                "summary": "Get available dataDisks for a VM",
                "operationId": "GetVmDataDisk",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "g1-1",
                        "description": "VM ID",
                        "name": "vmId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Different return structures by the given option param",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/resource.JSONResult"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "[DEFAULT]": {
                                            "$ref": "#/definitions/resource.RestGetAllDataDiskResponse"
                                        },
                                        "[ID]": {
                                            "$ref": "#/definitions/model.IdList"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "put": {
                "description": "Attach/Detach available dataDisk",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Data Disk Management"
                ],
                "summary": "Attach/Detach available dataDisk",
                "operationId": "PutVmDataDisk",
                "parameters": [
                    {
                        "description": "Request body to attach/detach dataDisk",
                        "name": "attachDetachDataDiskReq",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/model.AttachDetachDataDiskReq"
                        }
                    },
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "g1-1",
                        "description": "VM ID",
                        "name": "vmId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "enum": [
                            "attach",
                            "detach"
                        ],
                        "type": "string",
                        "description": "Option for MCI",
                        "name": "option",
                        "in": "query",
                        "required": true
                    },
                    {
                        "enum": [
                            "true",
                            "false"
                        ],
                        "type": "string",
                        "description": "Force to attach/detach even if VM info is not matched",
                        "name": "force",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.VmInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "post": {
                "description": "Provisioning (Create and attach) dataDisk",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Data Disk Management"
                ],
                "summary": "Provisioning (Create and attach) dataDisk",
                "operationId": "PostVmDataDisk",
                "parameters": [
                    {
                        "description": "Details for an Data Disk object",
                        "name": "dataDiskInfo",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.DataDiskVmReq"
                        }
                    },
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "g1-1",
                        "description": "VM ID",
                        "name": "vmId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.VmInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/mci/{mciId}/vm/{vmId}/handlingCount": {
            "get": {
                "description": "Get the number of commands currently in 'Handling' status for a specific VM. Optimized for frequent polling.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Remote Command Status"
                ],
                "summary": "Get count of currently handling commands for a VM",
                "operationId": "GetVmHandlingCommandCount",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "g1-1",
                        "description": "VM ID",
                        "name": "vmId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Custom request ID",
                        "name": "x-request-id",
                        "in": "header"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.HandlingCommandCountResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/mci/{mciId}/vm/{vmId}/snapshot": {
            "post": {
                "description": "Snapshot VM and create a Custom Image Object using the Snapshot",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Image Management"
                ],
                "summary": "Snapshot VM and create a Custom Image Object using the Snapshot",
                "operationId": "PostMciVmSnapshot",
                "parameters": [
                    {
                        "description": "Request body to create VM snapshot",
                        "name": "vmSnapshotReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.VmSnapshotReq"
                        }
                    },
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "g1-1",
                        "description": "VM ID",
                        "name": "vmId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.CustomImageInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/mci/{mciId}/vpn": {
            "get": {
                "description": "Get all site-to-site VPNs",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Site-to-site VPN Management (under development)"
                ],
                "summary": "Get all site-to-site VPNs",
                "operationId": "GetAllSiteToSiteVpn",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "enum": [
                            "InfoList",
                            "IdList"
                        ],
                        "type": "string",
                        "default": "IdList",
                        "description": "Option",
                        "name": "option",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.VpnIdList"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "503": {
                        "description": "Service Unavailable",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "post": {
                "description": "Create a site-to-site VPN\n\nThe supported CSP sets are as follows:\n\n- AWS and one of CSPs in Azure, GCP, Alibaba, Tencent, and IBM\n\n- Note: It will take about ` + "`" + `15 ~ 45 minutes` + "`" + `.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/x-json-stream"
                ],
                "tags": [
                    "[Infra Resource] Site-to-site VPN Management (under development)"
                ],
                "summary": "Create a site-to-site VPN",
                "operationId": "PostSiteToSiteVpn",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Sites info for VPN configuration",
                        "name": "vpnReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.RestPostVpnRequest"
                        }
                    },
                    {
                        "enum": [
                            "retry"
                        ],
                        "type": "string",
                        "description": "Action",
                        "name": "action",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "503": {
                        "description": "Service Unavailable",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/mci/{mciId}/vpn/{vpnId}": {
            "get": {
                "description": "Get resource info of a site-to-site VPN",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Site-to-site VPN Management (under development)"
                ],
                "summary": "Get resource info of a site-to-site VPN",
                "operationId": "GetSiteToSiteVpn",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "vpn01",
                        "description": "VPN ID",
                        "name": "vpnId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.VpnInfo"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "503": {
                        "description": "Service Unavailable",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete a site-to-site VPN",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/x-json-stream"
                ],
                "tags": [
                    "[Infra Resource] Site-to-site VPN Management (under development)"
                ],
                "summary": "Delete a site-to-site VPN",
                "operationId": "DeleteSiteToSiteVpn",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "vpn01",
                        "description": "VPN ID",
                        "name": "vpnId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "503": {
                        "description": "Service Unavailable",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/mci/{mciId}/vpn/{vpnId}/request/{requestId}": {
            "get": {
                "description": "Check the status of a specific request by its ID",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Site-to-site VPN Management (under development)"
                ],
                "summary": "Check the status of a specific request by its ID",
                "operationId": "GetRequestStatusOfSiteToSiteVpn",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "vpn01",
                        "description": "VPN ID",
                        "name": "vpnId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Request ID",
                        "name": "requestId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.Response"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "503": {
                        "description": "Service Unavailable",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/mciDynamic": {
            "post": {
                "description": "Create multi-cloud infrastructure dynamically using common specifications and images with automatic resource discovery and optimization.\nThis is the **recommended approach** for MCI creation, providing simplified configuration with powerful automation:\n\n**Dynamic Resource Creation:**\n1. **Automatic Resource Discovery**: Validates and selects optimal VM specifications and images from common namespace\n2. **Intelligent Network Setup**: Creates VNets, subnets, security groups, and SSH keys automatically per provider\n3. **Cross-Cloud Orchestration**: Coordinates VM provisioning across multiple cloud providers simultaneously\n4. **Dependency Management**: Handles resource creation order and inter-dependencies automatically\n5. **Failure Recovery**: Implements configurable failure policies for robust deployment\n\n**Key Advantages Over Static MCI:**\n- **Simplified Configuration**: Use common spec/image IDs instead of provider-specific resources\n- **Automatic Resource Management**: No need to pre-create VNets, security groups, or SSH keys\n- **Multi-Cloud Optimization**: Intelligent placement and configuration across providers\n- **Built-in Best Practices**: Security groups, network isolation, and access controls applied automatically\n- **Scalable Architecture**: Supports large-scale deployments with optimized resource utilization\n\n**Configuration Process:**\n1. **Resource Discovery**: Use ` + "`" + `/recommendSpec` + "`" + ` to find suitable VM specifications\n2. **Image Selection**: Use system namespace to discover compatible images\n3. **Request Validation**: Use ` + "`" + `/mciDynamicCheckRequest` + "`" + ` to validate configuration before deployment\n4. **Optional Preview**: Use ` + "`" + `/mciDynamicReview` + "`" + ` to estimate costs and review configuration\n5. **Deployment**: Submit MCI dynamic request with failure policy and deployment options\n\n**Failure Policies (PolicyOnPartialFailure):**\n- **` + "`" + `continue` + "`" + `** (default): Create MCI with successful VMs, failed VMs remain for manual refinement\n- **` + "`" + `rollback` + "`" + `**: Delete entire MCI if any VM fails (all-or-nothing deployment)\n- **` + "`" + `refine` + "`" + `**: Automatically clean up failed VMs, keep successful ones (recommended for large deployments)\n\n**Deployment Options:**\n- **` + "`" + `hold` + "`" + `**: Create MCI object but hold VM provisioning for manual approval\n- **Normal**: Proceed with immediate VM provisioning after resource creation\n\n**Multi-Cloud Example Configuration:**\n` + "`" + `` + "`" + `` + "`" + `json\n{\n\"name\": \"multi-cloud-web-tier\",\n\"description\": \"Web application across AWS, Azure, and GCP\",\n\"policyOnPartialFailure\": \"refine\",\n\"vm\": [\n{\n\"name\": \"aws-web-servers\",\n\"subGroupSize\": \"3\",\n\"specId\": \"aws+us-east-1+t3.medium\",\n\"imageId\": \"ami-0abcdef1234567890\",\n\"rootDiskSize\": \"100\",\n\"label\": {\"tier\": \"web\", \"provider\": \"aws\"}\n},\n{\n\"name\": \"azure-api-servers\",\n\"subGroupSize\": \"2\",\n\"specId\": \"azure+eastus+Standard_B2s\",\n\"imageId\": \"Canonical:0001-com-ubuntu-server-jammy:22_04-lts\",\n\"label\": {\"tier\": \"api\", \"provider\": \"azure\"}\n}\n]\n}\n` + "`" + `` + "`" + `` + "`" + `\n\n**Performance Considerations:**\n- VM provisioning occurs in parallel across providers\n- Network resources are created concurrently where possible\n- Large deployments (\u003e10 VMs) automatically use optimized batching\n- Built-in rate limiting prevents CSP API throttling\n\n**Monitoring and Post-Deployment:**\n- Optional CB-Dragonfly monitoring agent installation\n- Custom post-deployment command execution\n- Real-time status tracking and progress updates\n- Automatic resource labeling and metadata management",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Provisioning and Management"
                ],
                "summary": "Create MCI Dynamically with Intelligent Resource Selection",
                "operationId": "PostMciDynamic",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID for resource organization and isolation",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Dynamic MCI request with common specifications. Must include specId and imageId for each VM group. See description for detailed example.",
                        "name": "mciReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.MciDynamicReq"
                        }
                    },
                    {
                        "enum": [
                            "hold"
                        ],
                        "type": "string",
                        "description": "Deployment option: 'hold' to create MCI without immediate VM provisioning",
                        "name": "option",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Custom request ID for tracking and correlation across API calls",
                        "name": "x-request-id",
                        "in": "header"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successfully created MCI with VM deployment status, resource mappings, and configuration details",
                        "schema": {
                            "$ref": "#/definitions/model.MciInfo"
                        }
                    },
                    "400": {
                        "description": "Invalid request format, missing required fields, or unsupported configuration",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Namespace not found, specified specs/images unavailable, or CSP resources inaccessible",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "409": {
                        "description": "MCI name already exists or resource naming conflicts detected",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal deployment error, CSP API failures, or resource creation timeouts",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/mciDynamicReview": {
            "post": {
                "description": "Review and validate MCI dynamic request comprehensively before actual provisioning.\nThis endpoint performs comprehensive validation of MCI dynamic creation requests without actually creating resources.\nIt checks resource availability, validates specifications and images, estimates costs, and provides detailed recommendations.\n\n**Key Features:**\n- Validates all VM specifications and images against CSP availability\n- Provides cost estimation (including partial estimates when some costs are unknown)\n- Identifies potential configuration issues and warnings\n- Recommends optimization strategies\n- Shows provider and region distribution\n- Non-invasive validation (no resources are created)\n\n**Review Status:**\n- ` + "`" + `Ready` + "`" + `: All VMs can be created successfully\n- ` + "`" + `Warning` + "`" + `: VMs can be created but with configuration warnings\n- ` + "`" + `Error` + "`" + `: Critical errors prevent MCI creation\n\n**Use Cases:**\n- Pre-validation before expensive MCI creation\n- Cost estimation and planning\n- Configuration optimization\n- Multi-cloud resource planning",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Provisioning and Management"
                ],
                "summary": "Review and Validate MCI Dynamic Request",
                "operationId": "PostMciDynamicReview",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Request body to review MCI dynamic provisioning. Must include specId and imageId info of each VM request. Same format as /mciDynamic endpoint. (ex: {name: mci01, vm: [{imageId: aws+ap-northeast-2+ubuntu22.04, specId: aws+ap-northeast-2+t2.small}]})",
                        "name": "mciReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.MciDynamicReq"
                        }
                    },
                    {
                        "enum": [
                            "hold"
                        ],
                        "type": "string",
                        "description": "Option for MCI creation review (same as actual creation)",
                        "name": "option",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Custom request ID for tracking",
                        "name": "x-request-id",
                        "in": "header"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Comprehensive review result with validation status, cost estimation, and recommendations",
                        "schema": {
                            "$ref": "#/definitions/model.ReviewMciDynamicReqInfo"
                        }
                    },
                    "400": {
                        "description": "Invalid request format or parameters",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Namespace not found or invalid",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal server error during validation",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/monitoring/install/mci/{mciId}": {
            "post": {
                "description": "Install monitoring agent (CB-Dragonfly agent) to MCI",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Resource Monitor (for developer)"
                ],
                "summary": "Install monitoring agent (CB-Dragonfly agent) to MCI",
                "operationId": "PostInstallMonitorAgentToMci",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Details for an MCI object",
                        "name": "mciInfo",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.MciCmdReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.AgentInstallContentWrapper"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/monitoring/mci/{mciId}/metric/{metric}": {
            "get": {
                "description": "Get monitoring data of specified MCI for specified monitoring metric (cpu, memory, disk, network)",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Resource Monitor (for developer)"
                ],
                "summary": "Get monitoring data of specified MCI for specified monitoring metric (cpu, memory, disk, network)",
                "operationId": "GetMonitorData",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Metric type: cpu, memory, disk, network",
                        "name": "metric",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.MonResultSimpleResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/monitoring/status/mci/{mciId}/vm/{vmId}": {
            "put": {
                "description": "Set monitoring agent (CB-Dragonfly agent) installation status installed (for Windows VM only)",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Resource Monitor (for developer)"
                ],
                "summary": "Set monitoring agent (CB-Dragonfly agent) installation status installed (for Windows VM only)",
                "operationId": "PutMonitorAgentStatusInstalled",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "vm01",
                        "description": "VM ID",
                        "name": "vmId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.VmInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/policy/mci": {
            "get": {
                "description": "List all MCI policies",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Orchestration Management (WIP)"
                ],
                "summary": "List all MCI policies",
                "operationId": "GetAllMciPolicy",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/infra.RestGetAllMciPolicyResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete all MCI policies",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Orchestration Management (WIP)"
                ],
                "summary": "Delete all MCI policies",
                "operationId": "DelAllMciPolicy",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/policy/mci/{mciId}": {
            "get": {
                "description": "Get MCI Policy",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Orchestration Management (WIP)"
                ],
                "summary": "Get MCI Policy",
                "operationId": "GetMciPolicy",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.MciPolicyInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "post": {
                "description": "Create MCI Automation policy",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Orchestration Management (WIP)"
                ],
                "summary": "Create MCI Automation policy",
                "operationId": "PostMciPolicy",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Details for an MCI automation policy request",
                        "name": "mciPolicyReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.MciPolicyReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.MciPolicyInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete MCI Policy",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Orchestration Management (WIP)"
                ],
                "summary": "Delete MCI Policy",
                "operationId": "DelMciPolicy",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/registerCspResource/vNet": {
            "post": {
                "description": "Register the VNet, which was created in CSP",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Network Management"
                ],
                "summary": "Register VNet (created in CSP)",
                "operationId": "PostRegisterVNet",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Inforamation required to register the VNet created externally",
                        "name": "vNetRegisterReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.RegisterVNetReq"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/model.VNetInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/registerCspResource/vNet/{vNetId}/subnet": {
            "post": {
                "description": "Register Subnet, which was created in CSP",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Network Management"
                ],
                "summary": "Register Subnet (created in CSP)",
                "operationId": "PostRegisterSubnet",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "VNet ID",
                        "name": "vNetId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Details for an Subnet object",
                        "name": "subnetReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.RegisterSubnetReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SubnetInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/registerCspVm": {
            "post": {
                "description": "Import and register pre-existing virtual machines from cloud service providers into CB-Tumblebug management.\nThis endpoint allows you to bring existing CSP resources under CB-Tumblebug control without recreating them:\n\n**Registration Process:**\n1. **Discovery**: Validates that the specified VM exists in the target CSP\n2. **Metadata Import**: Retrieves VM configuration, network settings, and current status\n3. **Resource Mapping**: Creates CB-Tumblebug resource objects that reference the existing CSP resources\n4. **Status Synchronization**: Aligns CB-Tumblebug status with actual CSP VM state\n5. **Management Integration**: Enables CB-Tumblebug operations on the registered VMs\n\n**Supported VM States:**\n- Running VMs (most common use case)\n- Stopped VMs (will be registered with current state)\n- VMs with attached storage and network interfaces\n\n**Resource Compatibility:**\n- VM must exist in a supported CSP (AWS, Azure, GCP, etc.)\n- Network resources (VPC, subnets, security groups) will be discovered and mapped\n- Storage volumes and attached disks will be registered automatically\n- SSH keys and security configurations will be imported\n\n**Post-Registration Capabilities:**\n- Standard CB-Tumblebug VM lifecycle operations (start, stop, terminate)\n- Monitoring agent installation (if CB-Dragonfly is configured)\n- Command execution and automation\n- Integration with other CB-Tumblebug MCIs\n\n**Important Notes:**\n- Registration does not modify the existing VM configuration\n- Original CSP billing and resource management still applies\n- CB-Tumblebug provides additional management layer and automation\n- Ensure proper CSP credentials and permissions are configured",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Provisioning and Management"
                ],
                "summary": "Register Existing CSP VMs into Cloud-Barista MCI",
                "operationId": "PostRegisterCSPNativeVM",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID for organizing registered resources",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "MCI registration request containing existing CSP VM IDs and connection details",
                        "name": "mciReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.MciReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Registered MCI information with imported VM details and current status",
                        "schema": {
                            "$ref": "#/definitions/model.MciInfo"
                        }
                    },
                    "400": {
                        "description": "Invalid request format or missing required CSP VM identifiers",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Specified VMs not found in target CSP or namespace doesn't exist",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "409": {
                        "description": "VM already registered or MCI name conflicts",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "CSP communication error or registration process failure",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/resources/customImage": {
            "get": {
                "description": "List all customImages or customImages' ID",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Image Management"
                ],
                "summary": "List all customImages or customImages' ID",
                "operationId": "GetAllCustomImage",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "enum": [
                            "id"
                        ],
                        "type": "string",
                        "description": "Option",
                        "name": "option",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field key for filtering (ex:guestOS)",
                        "name": "filterKey",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field value for filtering (ex: Ubuntu18.04)",
                        "name": "filterVal",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Different return structures by the given option param",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/resource.JSONResult"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "[DEFAULT]": {
                                            "$ref": "#/definitions/resource.RestGetAllCustomImageResponse"
                                        },
                                        "[ID]": {
                                            "$ref": "#/definitions/model.IdList"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "post": {
                "description": "Register existing Custom Image in a CSP (option=register)",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Image Management"
                ],
                "summary": "Register existing Custom Image in a CSP",
                "operationId": "PostCustomImage",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "enum": [
                            "register"
                        ],
                        "type": "string",
                        "description": "Option: ",
                        "name": "option",
                        "in": "query",
                        "required": true
                    },
                    {
                        "description": "Request to Register existing Custom Image in a CSP",
                        "name": "customImageRegisterReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.CustomImageReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.CustomImageInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete all customImages",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Image Management"
                ],
                "summary": "Delete all customImages",
                "operationId": "DelAllCustomImage",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "",
                        "description": "Delete resources containing matched ID-substring only",
                        "name": "match",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.IdList"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/resources/customImage/{customImageId}": {
            "get": {
                "description": "Get customImage",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Image Management"
                ],
                "summary": "Get customImage",
                "operationId": "GetCustomImage",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "customImage ID",
                        "name": "customImageId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.CustomImageInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete customImage",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Image Management"
                ],
                "summary": "Delete customImage",
                "operationId": "DelCustomImage",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "customImage ID",
                        "name": "customImageId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/resources/dataDisk": {
            "get": {
                "description": "List all Data Disks or Data Disks' ID",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Data Disk Management"
                ],
                "summary": "List all Data Disks or Data Disks' ID",
                "operationId": "GetAllDataDisk",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "enum": [
                            "id"
                        ],
                        "type": "string",
                        "description": "Option",
                        "name": "option",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field key for filtering (ex: systemLabel)",
                        "name": "filterKey",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field value for filtering (ex: Registered from CSP resource)",
                        "name": "filterVal",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Different return structures by the given option param",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/resource.JSONResult"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "[DEFAULT]": {
                                            "$ref": "#/definitions/resource.RestGetAllDataDiskResponse"
                                        },
                                        "[ID]": {
                                            "$ref": "#/definitions/model.IdList"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "post": {
                "description": "Create Data Disk",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Data Disk Management"
                ],
                "summary": "Create Data Disk",
                "operationId": "PostDataDisk",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "enum": [
                            "register"
                        ],
                        "type": "string",
                        "description": "Option: ",
                        "name": "option",
                        "in": "query"
                    },
                    {
                        "description": "Details for an Data Disk object",
                        "name": "dataDiskInfo",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.DataDiskReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.DataDiskInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete all Data Disks",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Data Disk Management"
                ],
                "summary": "Delete all Data Disks",
                "operationId": "DelAllDataDisk",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "",
                        "description": "Delete resources containing matched ID-substring only",
                        "name": "match",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.IdList"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/resources/dataDisk/{dataDiskId}": {
            "get": {
                "description": "Get Data Disk",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Data Disk Management"
                ],
                "summary": "Get Data Disk",
                "operationId": "GetDataDisk",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Data Disk ID",
                        "name": "dataDiskId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.DataDiskInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "put": {
                "description": "Upsize Data Disk",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Data Disk Management"
                ],
                "summary": "Upsize Data Disk",
                "operationId": "PutDataDisk",
                "parameters": [
                    {
                        "description": "Request body to upsize the dataDisk",
                        "name": "dataDiskUpsizeReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.DataDiskUpsizeReq"
                        }
                    },
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "DataDisk ID",
                        "name": "dataDiskId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.DataDiskInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete Data Disk",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Data Disk Management"
                ],
                "summary": "Delete Data Disk",
                "operationId": "DelDataDisk",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Data Disk ID",
                        "name": "dataDiskId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/resources/filterSpecsByRange": {
            "post": {
                "description": "Filter specs by range. Use limit field to control the maximum number of results. If limit is 0 or not specified, returns all matching results.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Spec Management"
                ],
                "summary": "Filter specs by range",
                "operationId": "FilterSpecsByRange",
                "parameters": [
                    {
                        "type": "string",
                        "default": "system",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Filter for range-filtering specs (limit: 0 for all results, \u003e0 for limited results)",
                        "name": "specRangeFilter",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/model.FilterSpecsByRangeRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/resource.RestFilterSpecsResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/resources/image": {
            "get": {
                "description": "List all images or images' ID",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Image Management"
                ],
                "summary": "List all images or images' ID",
                "operationId": "GetAllImage",
                "parameters": [
                    {
                        "type": "string",
                        "default": "system",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "enum": [
                            "id"
                        ],
                        "type": "string",
                        "description": "Option",
                        "name": "option",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field key for filtering (ex:guestOS)",
                        "name": "filterKey",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field value for filtering (ex: Ubuntu18.04)",
                        "name": "filterVal",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Different return structures by the given option param",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/resource.JSONResult"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "[DEFAULT]": {
                                            "$ref": "#/definitions/model.SearchImageResponse"
                                        },
                                        "[ID]": {
                                            "$ref": "#/definitions/model.IdList"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "post": {
                "description": "Register image",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Image Management"
                ],
                "summary": "Register image",
                "operationId": "PostImage",
                "parameters": [
                    {
                        "enum": [
                            "registerWithInfo",
                            "registerWithId"
                        ],
                        "type": "string",
                        "description": "registeringMethod",
                        "name": "action",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "system",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Specify details of a image object (cspResourceName, guestOS, description, ...) manually",
                        "name": "imageInfo",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/model.ImageInfo"
                        }
                    },
                    {
                        "description": "Specify (name, connectionName, cspImageName) to register an image object automatically",
                        "name": "imageReq",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/model.ImageReq"
                        }
                    },
                    {
                        "type": "boolean",
                        "default": false,
                        "description": "Force update to existing image object",
                        "name": "update",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.ImageInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete all images",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Image Management"
                ],
                "summary": "Delete all images",
                "operationId": "DelAllImage",
                "parameters": [
                    {
                        "type": "string",
                        "default": "system",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "",
                        "description": "Delete resources containing matched ID-substring only",
                        "name": "match",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.IdList"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/resources/image/{imageId}": {
            "get": {
                "description": "GetImage returns an image object if there are matched images for the given namespace and imageKey(imageId)",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Image Management"
                ],
                "summary": "Get image",
                "operationId": "GetImage",
                "parameters": [
                    {
                        "type": "string",
                        "default": "system",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "(Note: imageId param will be refined in next release, enabled for temporal support) This param accepts several input forms: 1) provider+imageId, 2) provider+region+imageId, 3) imageId. For exact matching, use provider+imageId form.",
                        "name": "imageId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.ImageInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "put": {
                "description": "Update image",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Image Management"
                ],
                "summary": "Update image",
                "operationId": "PutImage",
                "parameters": [
                    {
                        "description": "Details for an image object",
                        "name": "imageInfo",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.ImageInfo"
                        }
                    },
                    {
                        "type": "string",
                        "default": "system",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Image ID ({providerName}+{regionName}+{cspImageName})",
                        "name": "imageId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.ImageInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete image",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Image Management"
                ],
                "summary": "Delete image",
                "operationId": "DelImage",
                "parameters": [
                    {
                        "type": "string",
                        "default": "system",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Image ID ({providerName}+{regionName}+{cspImageName})",
                        "name": "imageId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/resources/searchImage": {
            "post": {
                "description": "Search image",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Provisioning and Management"
                ],
                "summary": "Search image",
                "operationId": "SearchImage",
                "parameters": [
                    {
                        "type": "string",
                        "default": "system",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "condition",
                        "name": "condition",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.SearchImageRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SearchImageResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/resources/searchImageOptions": {
            "get": {
                "description": "Get all available options for image search fields",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Provisioning and Management"
                ],
                "operationId": "SearchImageOptions",
                "parameters": [
                    {
                        "type": "string",
                        "default": "system",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SearchImageRequestOptions"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/resources/securityGroup": {
            "get": {
                "description": "List all Security Groups or Security Groups' ID",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Security Group Management"
                ],
                "summary": "List all Security Groups or Security Groups' ID",
                "operationId": "GetAllSecurityGroup",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "enum": [
                            "id"
                        ],
                        "type": "string",
                        "description": "Option",
                        "name": "option",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field key for filtering (ex: systemLabel)",
                        "name": "filterKey",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field value for filtering (ex: Registered from CSP resource)",
                        "name": "filterVal",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Different return structures by the given option param",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/resource.JSONResult"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "[DEFAULT]": {
                                            "$ref": "#/definitions/resource.RestGetAllSecurityGroupResponse"
                                        },
                                        "[ID]": {
                                            "$ref": "#/definitions/model.IdList"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "post": {
                "description": "Create Security Group",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Security Group Management"
                ],
                "summary": "Create Security Group",
                "operationId": "PostSecurityGroup",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "enum": [
                            "register"
                        ],
                        "type": "string",
                        "description": "Option: [required params for register] connectionName, name, vNetId, cspResourceId",
                        "name": "option",
                        "in": "query"
                    },
                    {
                        "description": "Details for an securityGroup object",
                        "name": "securityGroupReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.SecurityGroupReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SecurityGroupInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete all Security Groups",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Security Group Management"
                ],
                "summary": "Delete all Security Groups",
                "operationId": "DelAllSecurityGroup",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "",
                        "description": "Delete resources containing matched ID-substring only",
                        "name": "match",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.IdList"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/resources/securityGroup/{securityGroupId}": {
            "get": {
                "description": "Get Security Group",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Security Group Management"
                ],
                "summary": "Get Security Group",
                "operationId": "GetSecurityGroup",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Security Group ID",
                        "name": "securityGroupId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SecurityGroupInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "put": {
                "description": "Update Security Group: Synchronize the firewall rules of the specified Security Group to match the requested list exactly.\nThis API will add missing rules and delete extra rules so that the Security Group's rules become identical to the requested set.\nOnly firewall rules are updated; other metadata (name, description, etc.) is not changed.\n\nUsage:\nUse this API to update (synchronize) the firewall rules of a Security Group. The rules in the request body will become the only rules in the Security Group after the operation.\n- All existing rules not present in the request will be deleted.\n- All rules in the request that do not exist will be added.\n- If a rule exists but differs in CIDR or port range, it will be replaced.\n- Special protocols (ICMP, etc.) are handled in the same way.\n\nNotes:\n- \"Ports\" field supports single port (\"22\"), port range (\"80-100\"), and multiple ports/ranges (\"22,80-100,443\").\n- The valid port number range is 0 to 65535 (inclusive).\n- \"Protocol\" can be TCP, UDP, ICMP, etc. (as supported by the cloud provider).\n- \"Direction\" must be either \"inbound\" or \"outbound\".\n- \"CIDR\" is the allowed IP range.\n- All existing rules not in the request (including default ICMP, etc.) will be deleted.\n- Metadata (name, description, etc.) is not changed.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Security Group Management"
                ],
                "summary": "Update Security Group (Synchronize Firewall Rules)",
                "operationId": "PutSecurityGroup",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Security Group ID",
                        "name": "securityGroupId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Details for an securityGroup object (only firewallRules field is used for update)",
                        "name": "securityGroupInfo",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.SecurityGroupUpdateReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Updated Security Group info with synchronized firewall rules",
                        "schema": {
                            "$ref": "#/definitions/model.SecurityGroupUpdateResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete Security Group",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Security Group Management"
                ],
                "summary": "Delete Security Group",
                "operationId": "DelSecurityGroup",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Security Group ID",
                        "name": "securityGroupId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/resources/securityGroup/{securityGroupId}/rules": {
            "post": {
                "description": "Add new FirewallRules: Add the provided firewall rules to the existing rules in the Security Group.\nThis API will only add new rules without deleting or modifying existing ones.\nIf a rule with identical properties already exists, it will be skipped to avoid duplicates.\n\nUsage:\nUse this API to add new firewall rules to a Security Group while preserving existing rules.\n- Only new rules that don't already exist will be added.\n- Existing rules remain unchanged.\n- If an identical rule already exists, it will be skipped.\n\nNotes:\n- \"Ports\" field supports single port (\"22\"), port range (\"80-100\"), and multiple ports/ranges (\"22,80-100,443\").\n- The valid port number range is 0 to 65535 (inclusive).\n- \"Protocol\" can be TCP, UDP, ICMP, ALL, etc. (as supported by the cloud provider).\n- \"Direction\" must be either \"inbound\" or \"outbound\".\n- \"CIDR\" is the allowed IP range.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Security Group Management"
                ],
                "summary": "Add new FirewallRules to existing rules",
                "operationId": "PostFirewallRules",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Security Group ID",
                        "name": "securityGroupId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "FirewallRules to add (only firewallRules field is used)",
                        "name": "firewallRuleReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.SecurityGroupUpdateReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Updated Security Group info with added firewall rules",
                        "schema": {
                            "$ref": "#/definitions/model.SecurityGroupUpdateResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete specific FirewallRules: Remove specified rules from the Security Group while keeping other existing rules.\nThis API will remove only the specified rules from the Security Group, leaving all other rules intact.\n\nUsage:\nUse this API to remove specific firewall rules from a Security Group. Only the rules matching the provided criteria will be deleted.\n- Rules that exactly match the provided Direction, Protocol, Port, and CIDR will be removed.\n- All other existing rules will remain unchanged.\n\nNotes:\n- \"Ports\" field supports single port (\"22\"), port range (\"80-100\"), and multiple ports/ranges (\"22,80-100,443\").\n- \"Protocol\" can be TCP, UDP, ICMP, ALL, etc. (as supported by the cloud provider).\n- \"Direction\" must be either \"inbound\" or \"outbound\".\n- \"CIDR\" is the allowed IP range.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Security Group Management"
                ],
                "summary": "Delete specific FirewallRules (Replace with remaining rules)",
                "operationId": "DelFirewallRules",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Security Group ID",
                        "name": "securityGroupId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "FirewallRules to delete (only firewallRules field is used)",
                        "name": "firewallRuleReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.SecurityGroupUpdateReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Updated Security Group info after rule deletion",
                        "schema": {
                            "$ref": "#/definitions/model.SecurityGroupUpdateResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/resources/spec": {
            "post": {
                "description": "Register spec",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Spec Management"
                ],
                "summary": "Register spec",
                "operationId": "PostSpec",
                "parameters": [
                    {
                        "enum": [
                            "registerWithInfo",
                            "registerWithCspResourceId"
                        ],
                        "type": "string",
                        "description": "registeringMethod",
                        "name": "action",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "system",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Specify details of a spec object (vCPU, memoryGiB, ...) manually",
                        "name": "specInfo",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/model.SpecInfo"
                        }
                    },
                    {
                        "description": "Specify n(ame, connectionName, cspSpecName) to register a spec object automatically",
                        "name": "specReq",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/model.SpecReq"
                        }
                    },
                    {
                        "type": "boolean",
                        "default": false,
                        "description": "Force update to existing spec object",
                        "name": "update",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SpecInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/resources/spec/{specId}": {
            "get": {
                "description": "Get spec",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Spec Management"
                ],
                "summary": "Get spec",
                "operationId": "GetSpec",
                "parameters": [
                    {
                        "type": "string",
                        "default": "system",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Spec ID ({providerName}+{regionName}+{cspSpecName})",
                        "name": "specId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SpecInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "put": {
                "description": "Update spec",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Spec Management"
                ],
                "summary": "Update spec",
                "operationId": "PutSpec",
                "parameters": [
                    {
                        "description": "Details for an spec object",
                        "name": "specInfo",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.SpecInfo"
                        }
                    },
                    {
                        "type": "string",
                        "default": "system",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Spec ID ({providerName}+{regionName}+{cspSpecName})",
                        "name": "specId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SpecInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete spec",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Spec Management"
                ],
                "summary": "Delete spec",
                "operationId": "DelSpec",
                "parameters": [
                    {
                        "type": "string",
                        "default": "system",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Spec ID ({providerName}+{regionName}+{cspSpecName})",
                        "name": "specId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/resources/sqlDb": {
            "get": {
                "description": "Get all SQL Databases (TBD)",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] SQL Database Management (under development)"
                ],
                "summary": "Get all SQL Databases (TBD)",
                "operationId": "GetAllSqlDb",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "enum": [
                            "InfoList",
                            "IdList"
                        ],
                        "type": "string",
                        "default": "IdList",
                        "description": "Option",
                        "name": "option",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK\" /////////////",
                        "schema": {
                            "$ref": "#/definitions/model.VpnIdList"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "503": {
                        "description": "Service Unavailable",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "post": {
                "description": "Create a SQL Databases\n\nSupported CSPs: AWS, Azure, GCP, NCP\n- Note - ` + "`" + `connectionName` + "`" + ` example: aws-ap-northeast-2, azure-koreacentral, gcp-asia-northeast3, ncp-kr\n\n- Note - Please check the ` + "`" + `requiredCSPResource` + "`" + ` property which includes CSP specific values.\n\n- Note - You can find the API usage examples on this link, https://github.com/cloud-barista/mc-terrarium/discussions/110\n",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] SQL Database Management (under development)"
                ],
                "summary": "Create a SQL Databases",
                "operationId": "PostSqlDb",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Request body to create a SQL database",
                        "name": "sqlDbReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.RestPostSqlDBRequest"
                        }
                    },
                    {
                        "enum": [
                            "retry"
                        ],
                        "type": "string",
                        "description": "Action",
                        "name": "action",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SqlDBInfo"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "503": {
                        "description": "Service Unavailable",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/resources/sqlDb/{sqlDbId}": {
            "get": {
                "description": "Get resource info of a SQL datatbase",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] SQL Database Management (under development)"
                ],
                "summary": "Get resource info of a SQL datatbase",
                "operationId": "GetSqlDb",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "sqldb01",
                        "description": "SQL DB ID",
                        "name": "sqlDbId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "refined",
                        "description": "Resource info by detail (refined, raw)",
                        "name": "detail",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SqlDBInfo"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "503": {
                        "description": "Service Unavailable",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete a SQL datatbase",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] SQL Database Management (under development)"
                ],
                "summary": "Delete a SQL datatbase",
                "operationId": "DeleteSqlDb",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "sqldb01",
                        "description": "SQL DB ID",
                        "name": "sqlDbId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "503": {
                        "description": "Service Unavailable",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/resources/sshKey": {
            "get": {
                "description": "List all SSH Keys or SSH Keys' ID",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Access Key Management"
                ],
                "summary": "List all SSH Keys or SSH Keys' ID",
                "operationId": "GetAllSshKey",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "enum": [
                            "id"
                        ],
                        "type": "string",
                        "description": "Option",
                        "name": "option",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field key for filtering (ex: systemLabel)",
                        "name": "filterKey",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field value for filtering (ex: Registered from CSP resource)",
                        "name": "filterVal",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Different return structures by the given option param",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/resource.JSONResult"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "[DEFAULT]": {
                                            "$ref": "#/definitions/resource.RestGetAllSshKeyResponse"
                                        },
                                        "[ID]": {
                                            "$ref": "#/definitions/model.IdList"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "post": {
                "description": "Create SSH Key",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Access Key Management"
                ],
                "summary": "Create SSH Key",
                "operationId": "PostSshKey",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "enum": [
                            "register"
                        ],
                        "type": "string",
                        "description": "Option: [required params for register] connectionName, name, cspResourceId, fingerprint, username, publicKey, privateKey",
                        "name": "option",
                        "in": "query"
                    },
                    {
                        "description": "Details for an SSH Key object",
                        "name": "sshKeyInfo",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.SshKeyReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SshKeyInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete all SSH Keys",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Access Key Management"
                ],
                "summary": "Delete all SSH Keys",
                "operationId": "DelAllSshKey",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "",
                        "description": "Delete resources containing matched ID-substring only",
                        "name": "match",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.IdList"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/resources/sshKey/{sshKeyId}": {
            "get": {
                "description": "Get SSH Key",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Access Key Management"
                ],
                "summary": "Get SSH Key",
                "operationId": "GetSshKey",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "SSH Key ID",
                        "name": "sshKeyId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SshKeyInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "put": {
                "description": "Update SSH Key",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Access Key Management"
                ],
                "summary": "Update SSH Key",
                "operationId": "PutSshKey",
                "parameters": [
                    {
                        "description": "Details for an SSH Key object",
                        "name": "sshKeyInfo",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.SshKeyInfo"
                        }
                    },
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "SshKey ID",
                        "name": "sshKeyId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SshKeyInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete SSH Key",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Access Key Management"
                ],
                "summary": "Delete SSH Key",
                "operationId": "DelSshKey",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "SSH Key ID",
                        "name": "sshKeyId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/resources/vNet": {
            "get": {
                "description": "List all VNets or VNets' ID",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Network Management"
                ],
                "summary": "List all VNets or VNets' ID",
                "operationId": "GetAllVNet",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "enum": [
                            "id"
                        ],
                        "type": "string",
                        "description": "Option",
                        "name": "option",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field key for filtering (ex: cspResourceName)",
                        "name": "filterKey",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Field value for filtering (ex: default-alibaba-ap-northeast-1-vpc)",
                        "name": "filterVal",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Different return structures by the given option param",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/resource.JSONResult"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "[DEFAULT]": {
                                            "$ref": "#/definitions/resource.RestGetAllVNetResponse"
                                        },
                                        "[ID]": {
                                            "$ref": "#/definitions/model.IdList"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "post": {
                "description": "Create a new VNet",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Network Management"
                ],
                "summary": "Create VNet",
                "operationId": "PostVNet",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Details for an VNet object",
                        "name": "vNetReq",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/model.VNetReq"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/model.VNetInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete all VNets",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Network Management"
                ],
                "summary": "Delete all VNets",
                "operationId": "DelAllVNet",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "",
                        "description": "Delete resources containing matched ID-substring only",
                        "name": "match",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.IdList"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/resources/vNet/{vNetId}": {
            "get": {
                "description": "Get VNet",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Network Management"
                ],
                "summary": "Get VNet",
                "operationId": "GetVNet",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "VNet ID",
                        "name": "vNetId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.VNetInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete VNet\n- withsubnets: delete VNet and its subnets\n- refine: delete information of VNet and its subnets if there's no info/resource in Spider/CSP\n- force: delete VNet and its subnets regardless of the status of info/resource in Spider/CSP",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Network Management"
                ],
                "summary": "Delete VNet (supporting actions: withsubnet, refine, force)",
                "operationId": "DelVNet",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "VNet ID",
                        "name": "vNetId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "enum": [
                            "withsubnets",
                            "refine",
                            "force"
                        ],
                        "type": "string",
                        "description": "Action",
                        "name": "action",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/resources/vNet/{vNetId}/subnet": {
            "get": {
                "description": "List all subnets",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Network Management"
                ],
                "summary": "List all subnets",
                "operationId": "GetAllSubnet",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "VNet ID",
                        "name": "vNetId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/resource.RestGetAllSubnetResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "post": {
                "description": "Create Subnet",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Network Management"
                ],
                "summary": "Create Subnet",
                "operationId": "PostSubnet",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "VNet ID",
                        "name": "vNetId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Details for an Subnet object",
                        "name": "subnetReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.SubnetReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SubnetInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/resources/vNet/{vNetId}/subnet/{subnetId}": {
            "get": {
                "description": "Get Subnet",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Network Management"
                ],
                "summary": "Get Subnet",
                "operationId": "GetSubnet",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "VNet ID",
                        "name": "vNetId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Subnet ID",
                        "name": "subnetId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SubnetInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete Subnet\n- refine: delete a subnet ` + "`" + `object` + "`" + ` if there's no resource on CSP or no inforamation on Spider\n- force: force: delete a subnet ` + "`" + `resource` + "`" + ` on a CSP regardless of the current resource status (e.g., attempt to delete even if in use)",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Network Management"
                ],
                "summary": "Delete Subnet (supporting actions: refine, force)",
                "operationId": "DelSubnet",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "VNet ID",
                        "name": "vNetId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Subnet ID",
                        "name": "subnetId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "enum": [
                            "refine",
                            "force"
                        ],
                        "type": "string",
                        "description": "Action",
                        "name": "action",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/sharedResource": {
            "post": {
                "description": "Create shared resources for MC-Infra",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Common Utility"
                ],
                "summary": "Create shared resources for MC-Infra",
                "operationId": "CreateSharedResource",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "enum": [
                            "all",
                            "vnet",
                            "sg",
                            "sshkey"
                        ],
                        "type": "string",
                        "description": "Option",
                        "name": "option",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "",
                        "description": "connectionName of cloud for designated resource",
                        "name": "connectionName",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/sharedResources": {
            "delete": {
                "description": "Delete all Default Resource Objects in the given namespace",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Common Utility"
                ],
                "summary": "Delete all Default Resource Objects in the given namespace",
                "operationId": "DelAllSharedResources",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.IdList"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/transferFile/k8sCluster/{k8sClusterId}": {
            "post": {
                "description": "Transfer a file to specified Container in K8sCluster. The tar command is required in the container.\n[note] This feature is not intended for general use\nThis API is provided as an exceptional and limited function for specific purposes such as migration.\nKubernetes resource information required as input for this API is not currently provided, and its availability in the future is uncertain.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Kubernetes] Cluster's Container Remote Command"
                ],
                "summary": "Transfer a file to specified Container in K8sCluster",
                "operationId": "PostFileToK8sCluster",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "k8scluster01",
                        "description": "K8sCluster ID",
                        "name": "k8sClusterId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace in K8sCluster to apply the command",
                        "name": "k8sClusterNamespace",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mypod",
                        "description": "Pod Name in K8sCluster to apply the command",
                        "name": "k8sClusterPodName",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Container Name in K8sCluster to apply the command",
                        "name": "k8sClusterContainerName",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "default": "/tmp",
                        "description": "Target path where the file will be stored",
                        "name": "path",
                        "in": "formData",
                        "required": true
                    },
                    {
                        "type": "file",
                        "description": "The file to be uploaded (Max 10MB)",
                        "name": "file",
                        "in": "formData",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Custom request ID",
                        "name": "x-request-id",
                        "in": "header"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.K8sClusterContainerCmdResults"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/transferFile/mci/{mciId}": {
            "post": {
                "description": "Transfer a file to specified MCI to the specified path.\nThe file size should be less than 10MB.\nNot for gerneral file transfer but for specific purpose (small configuration files).",
                "consumes": [
                    "multipart/form-data"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Remote Command"
                ],
                "summary": "Transfer a file to specified MCI",
                "operationId": "PostFileToMci",
                "parameters": [
                    {
                        "type": "string",
                        "default": "default",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "mci01",
                        "description": "MCI ID",
                        "name": "mciId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "g1",
                        "description": "subGroupId to apply the file transfer only for VMs in subGroup of MCI",
                        "name": "subGroupId",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "default": "g1-1",
                        "description": "vmId to apply the file transfer only for a VM in MCI",
                        "name": "vmId",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "default": "/home/cb-user/",
                        "description": "Target path where the file will be stored",
                        "name": "path",
                        "in": "formData",
                        "required": true
                    },
                    {
                        "type": "file",
                        "description": "The file to be uploaded (Max 10MB)",
                        "name": "file",
                        "in": "formData",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Custom request ID",
                        "name": "x-request-id",
                        "in": "header"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.MciSshCmdResultForAPI"
                        }
                    },
                    "400": {
                        "description": "Invalid request",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/ns/{nsId}/updateExistingSpecListByAvailableRegionZones": {
            "post": {
                "description": "Query all specs for a specific provider across all regions, check their availability, and remove specs that are not available in their respective regions",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Spec Management"
                ],
                "summary": "Clean up unavailable specs from database",
                "operationId": "UpdateExistingSpecListByAvailableRegionZones",
                "parameters": [
                    {
                        "type": "string",
                        "default": "system",
                        "description": "Namespace ID",
                        "name": "nsId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Spec cleanup request",
                        "name": "cleanupReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.UpdateSpecListByAvailabilityRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SpecCleanupResult"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/object": {
            "get": {
                "description": "Get value of an object",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Admin] System Management"
                ],
                "summary": "Get value of an object",
                "operationId": "GetObject",
                "parameters": [
                    {
                        "type": "string",
                        "description": "get object value by key",
                        "name": "key",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete an object",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Admin] System Management"
                ],
                "summary": "Delete an object",
                "operationId": "DeleteObject",
                "parameters": [
                    {
                        "type": "string",
                        "description": "delete object value by key",
                        "name": "key",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/objects": {
            "get": {
                "description": "List all objects for a given key",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Admin] System Management"
                ],
                "summary": "List all objects for a given key",
                "operationId": "GetObjects",
                "parameters": [
                    {
                        "type": "string",
                        "description": "retrieve objects by key",
                        "name": "key",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete child objects along with the given object",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Admin] System Management"
                ],
                "summary": "Delete child objects along with the given object",
                "operationId": "DeleteObjects",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Delete child objects based on the given key string",
                        "name": "key",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/provider": {
            "get": {
                "description": "List all registered Providers",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Admin] Multi-Cloud Information"
                ],
                "summary": "List all registered Providers",
                "operationId": "GetProviderList",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.IdList"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/provider/{providerName}/region": {
            "get": {
                "description": "Get registered region info",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Admin] Multi-Cloud Information"
                ],
                "summary": "Get registered region info",
                "operationId": "GetRegions",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Name of the CSP to retrieve",
                        "name": "providerName",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.RegionList"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/provider/{providerName}/region/{regionName}": {
            "get": {
                "description": "Get registered region info",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Admin] Multi-Cloud Information"
                ],
                "summary": "Get registered region info",
                "operationId": "GetRegion",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Name of the CSP to retrieve",
                        "name": "providerName",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Name of region to retrieve",
                        "name": "regionName",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.RegionDetail"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/provisioning/event": {
            "post": {
                "description": "Manually record a provisioning success or failure event for historical tracking and analysis.\nThis endpoint allows external systems or manual processes to contribute to provisioning history:\n\n**Use Cases:**\n- **External Provisioning Tools**: Record events from non-CB-Tumblebug provisioning systems\n- **Manual Testing**: Log results from manual deployment tests\n- **Migration**: Import historical data from other systems\n- **Integration**: Connect with CI/CD pipelines for comprehensive tracking\n\n**Event Types:**\n- **Success Events**: Only recorded if previous failures exist for the spec\n- **Failure Events**: Always recorded to build failure pattern database\n\n**Data Quality:**\n- Provide accurate timestamps for proper chronological analysis\n- Include detailed error messages for failure events\n- Use consistent spec ID and image name formats\n\n**Impact on System:**\n- Contributes to risk analysis algorithms\n- Affects future MCI review recommendations\n- Builds historical baseline for reliability metrics",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] Provisioning History and Analytics"
                ],
                "summary": "Record Manual Provisioning Event",
                "operationId": "RecordProvisioningEvent",
                "parameters": [
                    {
                        "description": "Provisioning event details with success/failure information",
                        "name": "provisioningEvent",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.ProvisioningEvent"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Provisioning event successfully recorded",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "400": {
                        "description": "Invalid event data or missing required fields",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal server error while recording event",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/provisioning/log/{specId}": {
            "get": {
                "description": "Retrieve detailed provisioning history for a specific VM specification including success/failure patterns and risk analysis.\nThis endpoint provides comprehensive insights into provisioning reliability:\n\n**Historical Data Includes:**\n- Success and failure counts with timestamps\n- CSP-specific error messages and failure patterns\n- Image compatibility tracking across different attempts\n- Failure rate analysis and risk assessment\n- Regional and provider-specific reliability metrics\n\n**Use Cases:**\n- **Pre-deployment Risk Assessment**: Check if a spec has historical failures before creating MCI\n- **Troubleshooting**: Analyze failure patterns to identify root causes\n- **Capacity Planning**: Understand reliability patterns for different specs and regions\n- **Cost Optimization**: Avoid specs with high failure rates that waste resources\n\n**Response Details:**\n- ` + "`" + `failureCount` + "`" + `: Total number of provisioning failures\n- ` + "`" + `successCount` + "`" + `: Number of successes (only tracked after failures occur)\n- ` + "`" + `failureImages` + "`" + `: List of CSP images that failed with this spec\n- ` + "`" + `successImages` + "`" + `: List of CSP images that succeeded with this spec\n- ` + "`" + `failureMessages` + "`" + `: Detailed error messages from CSP\n- ` + "`" + `lastUpdated` + "`" + `: Timestamp of most recent provisioning attempt",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] Provisioning History and Analytics"
                ],
                "summary": "Get Provisioning History Log for VM Specification",
                "operationId": "GetProvisioningLog",
                "parameters": [
                    {
                        "type": "string",
                        "description": "VM Specification ID (format: provider+region+spec_name, e.g., aws+ap-northeast-2+t2.micro)",
                        "name": "specId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Provisioning history log with success/failure statistics and detailed analytics",
                        "schema": {
                            "$ref": "#/definitions/model.ProvisioningLog"
                        }
                    },
                    "204": {
                        "description": "No provisioning history found for the specified VM specification"
                    },
                    "400": {
                        "description": "Invalid specification ID format or missing required parameters",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal server error while retrieving provisioning history",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "delete": {
                "description": "Remove all provisioning history data for a specific VM specification.\nThis operation permanently deletes historical failure and success records:\n\n**Warning**: This action is irreversible and will remove:\n- All failure and success statistics\n- Historical error messages and troubleshooting data\n- Risk analysis baseline for future deployments\n- Failure pattern analysis data\n\n**When to Use:**\n- **Data Cleanup**: Remove outdated or irrelevant provisioning history\n- **Fresh Start**: Clear history after infrastructure changes that resolve previous issues\n- **Privacy Compliance**: Remove logs containing sensitive error information\n- **Storage Management**: Clean up logs to manage kvstore space\n\n**Impact on System:**\n- Future risk analysis for this spec will have no historical baseline\n- MCI review process will not show historical warnings for this spec\n- Provisioning reliability metrics will be reset to zero",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] Provisioning History and Analytics"
                ],
                "summary": "Delete Provisioning History Log",
                "operationId": "DeleteProvisioningLog",
                "parameters": [
                    {
                        "type": "string",
                        "description": "VM Specification ID to delete history for (format: provider+region+spec_name)",
                        "name": "specId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Provisioning history successfully deleted",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "204": {
                        "description": "No provisioning history found to delete"
                    },
                    "400": {
                        "description": "Invalid specification ID format",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal server error while deleting provisioning history",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/provisioning/risk/{specId}": {
            "get": {
                "description": "Evaluate the likelihood of provisioning failure based on historical data for a specific VM specification and image combination.\nThis endpoint provides intelligent risk assessment to help prevent deployment failures:\n\n**Risk Analysis Factors:**\n- Historical failure rate for the VM specification\n- Image-specific compatibility with the spec\n- Recent failure patterns and trends\n- Cross-reference of spec+image combination success rates\n\n**Risk Levels:**\n- ` + "`" + `high` + "`" + `: Very likely to fail (\u003e80% failure rate or image-specific failures)\n- ` + "`" + `medium` + "`" + `: Moderate risk (50-80% failure rate or mixed results)\n- ` + "`" + `low` + "`" + `: Low risk (\u003c50% failure rate or no previous failures)\n- ` + "`" + `unknown` + "`" + `: Insufficient data for analysis\n\n**Recommended Actions by Risk Level:**\n- **High Risk**: Consider alternative specs or images, verify CSP quotas and permissions\n- **Medium Risk**: Proceed with caution, have backup plans ready\n- **Low Risk**: Safe to proceed with normal deployment\n\n**Integration Points:**\n- Automatically called during MCI review process\n- Can be used in CI/CD pipelines for deployment validation\n- Helpful for capacity planning and resource selection",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] Provisioning History and Analytics"
                ],
                "summary": "Analyze Provisioning Risk for Spec and Image Combination",
                "operationId": "AnalyzeProvisioningRisk",
                "parameters": [
                    {
                        "type": "string",
                        "description": "VM Specification ID (format: provider+region+spec_name)",
                        "name": "specId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "CSP-specific image name/ID to analyze compatibility",
                        "name": "cspImageName",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Risk analysis result with level, message, and detailed analysis",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "analysis": {
                                    "type": "object"
                                },
                                "riskLevel": {
                                    "type": "string"
                                },
                                "riskMessage": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Invalid parameters or missing required query parameters",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal server error during risk analysis",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/readyz": {
            "get": {
                "description": "Check Tumblebug is ready",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Admin] System Management"
                ],
                "summary": "Check Tumblebug is ready",
                "operationId": "GetReadyz",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "503": {
                        "description": "Service Unavailable",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/recommendSpec": {
            "post": {
                "description": "Recommend specs for configuring an infrastructure (filter and priority)\nFind details from https://github.com/cloud-barista/cb-tumblebug/discussions/1234\nGet available options by /recommendSpecOptions for filtering and prioritizing specs in RecommendSpec API",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Provisioning and Management"
                ],
                "summary": "Recommend specs for configuring an infrastructure (filter and priority)",
                "operationId": "RecommendSpec",
                "parameters": [
                    {
                        "description": "Conditions for recommending specs (filter and priority)",
                        "name": "recommendSpecReq",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/model.RecommendSpecReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/model.SpecInfo"
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/recommendSpecOptions": {
            "get": {
                "description": "Get available options for filtering and prioritizing specs in RecommendSpec API",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Provisioning and Management"
                ],
                "summary": "Get options for RecommendSpec API",
                "operationId": "RecommendSpecOptions",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.RecommendSpecRequestOptions"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/regionFromCsp": {
            "get": {
                "description": "RetrieveR all region lists from CSPs",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Admin] Multi-Cloud Information"
                ],
                "summary": "RetrieveR all region lists from CSPs",
                "operationId": "RetrieveRegionListFromCsp",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.RetrievedRegionList"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/registerCspResources": {
            "post": {
                "description": "Register CSP Native Resources (vNet, securityGroup, sshKey, vm) to CB-Tumblebug",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Admin] System Management"
                ],
                "summary": "Register CSP Native Resources (vNet, securityGroup, sshKey, vm) to CB-Tumblebug",
                "operationId": "RegisterCspNativeResources",
                "parameters": [
                    {
                        "description": "Specify connectionName, NS Id, and MCI Name",
                        "name": "Request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/common.RestRegisterCspNativeResourcesRequest"
                        }
                    },
                    {
                        "enum": [
                            "onlyVm",
                            "exceptVm"
                        ],
                        "type": "string",
                        "description": "Option to specify resourceType",
                        "name": "option",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "y",
                            "n"
                        ],
                        "type": "string",
                        "default": "y",
                        "description": "Flag to show VMs in a collective MCI form (y,n)",
                        "name": "mciFlag",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.RegisterResourceResult"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/registerCspResourcesAll": {
            "post": {
                "description": "Register CSP Native Resources (vNet, securityGroup, sshKey, vm) from all Clouds to CB-Tumblebug",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Admin] System Management"
                ],
                "summary": "Register CSP Native Resources (vNet, securityGroup, sshKey, vm) from all Clouds to CB-Tumblebug",
                "operationId": "RegisterCspNativeResourcesAll",
                "parameters": [
                    {
                        "description": "Specify NS Id and MCI Name",
                        "name": "Request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/common.RestRegisterCspNativeResourcesRequestAll"
                        }
                    },
                    {
                        "enum": [
                            "onlyVm",
                            "exceptVm"
                        ],
                        "type": "string",
                        "description": "Option to specify resourceType",
                        "name": "option",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "y",
                            "n"
                        ],
                        "type": "string",
                        "default": "y",
                        "description": "Flag to show VMs in a collective MCI form (y,n)",
                        "name": "mciFlag",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.RegisterResourceAllResult"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/request/{reqId}": {
            "get": {
                "description": "Get details of a specific request",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Admin] API Request Management"
                ],
                "summary": "Get request details",
                "operationId": "GetRequest",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Request ID acquired from X-Request-ID header",
                        "name": "reqId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/client.RequestDetails"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete details of a specific request",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Admin] API Request Management"
                ],
                "summary": "Delete a specific request's details",
                "operationId": "DeleteRequest",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Request ID to delete",
                        "name": "reqId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/requests": {
            "get": {
                "description": "Get details of all requests with optional filters.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Admin] API Request Management"
                ],
                "summary": "Get all requests",
                "operationId": "GetAllRequests",
                "parameters": [
                    {
                        "enum": [
                            "Handling",
                            "Error",
                            "Success"
                        ],
                        "type": "string",
                        "default": "",
                        "description": "Filter by request status (Handling, Error, Success)",
                        "name": "status",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "GET",
                            "POST",
                            "PUT",
                            "DELETE"
                        ],
                        "type": "string",
                        "default": "",
                        "description": "Filter by HTTP method (GET, POST, PUT, DELETE, etc.)",
                        "name": "method",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter by request URL",
                        "name": "url",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter by time in minutes from now (to get recent requests)",
                        "name": "time",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "true",
                            "false"
                        ],
                        "type": "string",
                        "default": "false",
                        "description": "Option to save the results to a file (set 'true' to activate)",
                        "name": "savefile",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "array",
                                "items": {
                                    "$ref": "#/definitions/client.RequestDetails"
                                }
                            }
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete details of all requests",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Admin] API Request Management"
                ],
                "summary": "Delete all requests' details",
                "operationId": "DeleteAllRequests",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/requiredK8sSubnetCount": {
            "get": {
                "description": "Get the required subnet count to create a K8sCluster",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Kubernetes] Cluster Management"
                ],
                "summary": "Get the required subnet count to create a K8sCluster",
                "operationId": "GetRequiredK8sSubnetCount",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Name of the CSP to retrieve",
                        "name": "providerName",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.K8sClusterRequiredSubnetCount"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/resources/objectStorage": {
            "get": {
                "description": "Get the list of all object storages (buckets)\n\n**Important Notes:**\n- The actual response will be XML format with root element ` + "`" + `ListAllMyBucketsResult` + "`" + `\n- The response includes xmlns attribute: ` + "`" + `xmlns=\"http://s3.amazonaws.com/doc/2006-03-01/\"` + "`" + `\n- Swagger UI may show ` + "`" + `resource.ListAllMyBucketsResult` + "`" + ` due to rendering limitations\n\n**Actual XML Response Example:**\n` + "`" + `` + "`" + `` + "`" + `xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003cListAllMyBucketsResult xmlns=\"http://s3.amazonaws.com/doc/2006-03-01/\"\u003e\n\u003cOwner\u003e\n\u003cID\u003eaws-ap-northeast-2\u003c/ID\u003e\n\u003cDisplayName\u003eaws-ap-northeast-2\u003c/DisplayName\u003e\n\u003c/Owner\u003e\n\u003cBuckets\u003e\n\u003c/Buckets\u003e\n\u003c/ListAllMyBucketsResult\u003e\n` + "`" + `` + "`" + `` + "`" + `",
                "consumes": [
                    "text/xml"
                ],
                "produces": [
                    "text/xml"
                ],
                "tags": [
                    "[Resource] Object Storage Management"
                ],
                "summary": "List object storages (buckets)",
                "operationId": "ListObjectStorages",
                "parameters": [
                    {
                        "type": "string",
                        "default": "aws-ap-northeast-2",
                        "description": "This represents a credential or an access key ID. The required format is ` + "`" + `{csp-region}` + "`" + ` (i.e., the connection name).",
                        "name": "credential",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/resource.ListAllMyBucketsResult"
                        }
                    }
                }
            }
        },
        "/resources/objectStorage/presigned/download/{objectStorageName}/{objectKey}": {
            "get": {
                "description": "Generate a presigned URL for downloading an object from a bucket\n\n**Important Notes:**\n- The actual response will be XML format with root element ` + "`" + `PresignedURLResult` + "`" + `\n- The ` + "`" + `expires` + "`" + ` query parameter specifies the expiration time in seconds for the presigned URL (default: 3600 seconds)\n- The generated presigned URL can be used to download the object directly without further authentication\n\n**Actual XML Response Example:**\n` + "`" + `` + "`" + `` + "`" + `xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003cPresignedURLResult xmlns=\"http://s3.amazonaws.com/doc/2006-03-01/\"\u003e\n\u003cPresignedURL\u003ehttps://globally-unique-bucket-hctdx3.s3.dualstack.ap-southeast-2.amazonaws.com/test-file.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256\u0026X-Amz-Credential=AKIA***EXAMPLE%2F20250904%2Fap-southeast-2%2Fs3%2Faws4_request\u0026X-Amz-Date=20250904T061448Z\u0026X-Amz-Expires=3600\u0026X-Amz-SignedHeaders=host\u0026X-Amz-Signature=***-signature\u003c/PresignedURL\u003e\n\u003cExpires\u003e3600\u003c/Expires\u003e\n\u003cMethod\u003eGET\u003c/Method\u003e\n\u003c/PresignedURLResult\u003e\n` + "`" + `` + "`" + `` + "`" + `",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Resource] Object Storage Management"
                ],
                "summary": "Generate a presigned URL for downloading an object from a bucket",
                "operationId": "GeneratePresignedDownloadURL",
                "parameters": [
                    {
                        "type": "string",
                        "default": "globally-unique-bucket-hctdx3",
                        "description": "Object Storage Name",
                        "name": "objectStorageName",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "test-object.txt",
                        "description": "Object Name",
                        "name": "objectKey",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "aws-ap-northeast-2",
                        "description": "This represents a credential or an access key ID. The required format is ` + "`" + `{csp-region}` + "`" + ` (i.e., the connection name).",
                        "name": "credential",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "default": 3600,
                        "description": "Expiration time in seconds for the presigned URL",
                        "name": "expires",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/resource.PresignedURLResult"
                        }
                    }
                }
            }
        },
        "/resources/objectStorage/presigned/upload/{objectStorageName}/{objectKey}": {
            "get": {
                "description": "Generate a presigned URL for uploading an object to a bucket\n\n**Important Notes:**\n- The actual response will be XML format with root element ` + "`" + `PresignedURLResult` + "`" + `\n- The ` + "`" + `expires` + "`" + ` query parameter specifies the expiration time in seconds for the presigned URL (default: 3600 seconds)\n- The generated presigned URL can be used to upload the object directly without further authentication\n\n**Actual XML Response Example:**\n` + "`" + `` + "`" + `` + "`" + `xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003cPresignedURLResult xmlns=\"http://s3.amazonaws.com/doc/2006-03-01/\"\u003e\n\u003cPresignedURL\u003ehttps://globally-unique-bucket-hctdx3.s3.dualstack.ap-southeast-2.amazonaws.com/test-file.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256\u0026X-Amz-Credential=AKIA***EXAMPLE%2F20250904%2Fap-southeast-2%2Fs3%2Faws4_request\u0026X-Amz-Date=20250904T061448Z\u0026X-Amz-Expires=3600\u0026X-Amz-SignedHeaders=host\u0026X-Amz-Signature=***-signature\u003c/PresignedURL\u003e\n\u003cExpires\u003e3600\u003c/Expires\u003e\n\u003cMethod\u003ePUT\u003c/Method\u003e\n\u003c/PresignedURLResult\u003e\n` + "`" + `` + "`" + `` + "`" + `",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Resource] Object Storage Management"
                ],
                "summary": "Generate a presigned URL for uploading an object to a bucket",
                "operationId": "GeneratePresignedUploadURL",
                "parameters": [
                    {
                        "type": "string",
                        "default": "globally-unique-bucket-hctdx3",
                        "description": "Object Storage Name",
                        "name": "objectStorageName",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "test-object.txt",
                        "description": "Object Name",
                        "name": "objectKey",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "aws-ap-northeast-2",
                        "description": "This represents a credential or an access key ID. The required format is ` + "`" + `{csp-region}` + "`" + ` (i.e., the connection name).",
                        "name": "credential",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "default": 3600,
                        "description": "Expiration time in seconds for the presigned URL",
                        "name": "expires",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/resource.PresignedURLResult"
                        }
                    }
                }
            }
        },
        "/resources/objectStorage/{objectStorageName}": {
            "get": {
                "description": "Get details of an object storage (bucket)\n\n**Important Notes:**\n- The actual response will be XML format with root element ` + "`" + `ListBucketResult` + "`" + `\n\n**Actual XML Response Example:**\n` + "`" + `` + "`" + `` + "`" + `xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003cListBucketResult xmlns=\"http://s3.amazonaws.com/doc/2006-03-01/\"\u003e\n\u003cName\u003espider-test-bucket\u003c/Name\u003e\n\u003cPrefix\u003e\u003c/Prefix\u003e\n\u003cMarker\u003e\u003c/Marker\u003e\n\u003cMaxKeys\u003e1000\u003c/MaxKeys\u003e\n\u003cIsTruncated\u003efalse\u003c/IsTruncated\u003e\n\u003c/ListBucketResult\u003e\n` + "`" + `` + "`" + `` + "`" + `",
                "consumes": [
                    "text/xml"
                ],
                "produces": [
                    "text/xml"
                ],
                "tags": [
                    "[Resource] Object Storage Management"
                ],
                "summary": "Get details of an object storage (bucket)",
                "operationId": "GetObjectStorage",
                "parameters": [
                    {
                        "type": "string",
                        "default": "globally-unique-bucket-hctdx3",
                        "description": "Object Storage Name",
                        "name": "objectStorageName",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "aws-ap-northeast-2",
                        "description": "This represents a credential or an access key ID. The required format is ` + "`" + `{csp-region}` + "`" + ` (i.e., the connection name).",
                        "name": "credential",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/resource.ListBucketResult"
                        }
                    }
                }
            },
            "put": {
                "description": "Create an object storage (bucket)\n\n**Important Notes:**\n- The ` + "`" + `objectStorageName` + "`" + ` must be globally unique across all existing buckets in the S3 compatible storage.\n- The bucket namespace is shared by all users of the system.",
                "consumes": [
                    "text/xml"
                ],
                "produces": [
                    "text/xml"
                ],
                "tags": [
                    "[Resource] Object Storage Management"
                ],
                "summary": "Create an object storage (bucket)",
                "operationId": "CreateObjectStorage",
                "parameters": [
                    {
                        "type": "string",
                        "default": "globally-unique-bucket-hctdx3",
                        "description": "Object Storage Name",
                        "name": "objectStorageName",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "aws-ap-northeast-2",
                        "description": "This represents a credential or an access key ID. The required format is ` + "`" + `{csp-region}` + "`" + ` (i.e., the connection name).",
                        "name": "credential",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            },
            "post": {
                "description": "` + "`" + `Delete` + "`" + ` multiple objects from a bucket\n\n**Important Notes:**\n- The request body must contain the list of objects to delete in XML format\n- The ` + "`" + `delete` + "`" + ` query parameter must be set to ` + "`" + `true` + "`" + `\n\n**Request Body Example:**\n` + "`" + `` + "`" + `` + "`" + `xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003cDelete xmlns=\"http://s3.amazonaws.com/doc/2006-03-01/\"\u003e\n\u003cObject\u003e\n\u003cKey\u003etest-object1.txt\u003c/Key\u003e\n\u003c/Object\u003e\n\u003cObject\u003e\n\u003cKey\u003etest-object2.txt\u003c/Key\u003e\n\u003c/Object\u003e\n\u003c/Delete\u003e\n` + "`" + `` + "`" + `` + "`" + `\n\n**Actual XML Response Example:**\n` + "`" + `` + "`" + `` + "`" + `xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003cDeleteResult xmlns=\"http://s3.amazonaws.com/doc/2006-03-01/\"\u003e\n\u003cDeleted\u003e\n\u003cKey\u003etest-object1.txt\u003c/Key\u003e\n\u003c/Deleted\u003e\n\u003cDeleted\u003e\n\u003cKey\u003etest-object2.txt\u003c/Key\u003e\n\u003c/Deleted\u003e\n\u003c/DeleteResult\u003e\n` + "`" + `` + "`" + `` + "`" + `",
                "consumes": [
                    "text/xml"
                ],
                "produces": [
                    "text/xml"
                ],
                "tags": [
                    "[Resource] Object Storage Management"
                ],
                "summary": "**Delete** multiple objects from a bucket",
                "operationId": "DeleteMultipleDataObjects",
                "parameters": [
                    {
                        "type": "string",
                        "default": "globally-unique-bucket-hctdx3",
                        "description": "Object Storage Name",
                        "name": "objectStorageName",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "boolean",
                        "default": true,
                        "description": "Delete",
                        "name": "delete",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "aws-ap-northeast-2",
                        "description": "This represents a credential or an access key ID. The required format is ` + "`" + `{csp-region}` + "`" + ` (i.e., the connection name).",
                        "name": "credential",
                        "in": "header",
                        "required": true
                    },
                    {
                        "description": "List of objects to delete",
                        "name": "reqBody",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/resource.Delete"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/resource.DeleteResult"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete an object storage (bucket)",
                "consumes": [
                    "text/xml"
                ],
                "produces": [
                    "text/xml"
                ],
                "tags": [
                    "[Resource] Object Storage Management"
                ],
                "summary": "Delete an object storage (bucket)",
                "operationId": "DeleteObjectStorage",
                "parameters": [
                    {
                        "type": "string",
                        "default": "globally-unique-bucket-hctdx3",
                        "description": "Object Storage Name",
                        "name": "objectStorageName",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "aws-ap-northeast-2",
                        "description": "This represents a credential or an access key ID. The required format is ` + "`" + `{csp-region}` + "`" + ` (i.e., the connection name).",
                        "name": "credential",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    }
                }
            },
            "head": {
                "description": "Check existence of an object storage (bucket)",
                "consumes": [
                    "text/xml"
                ],
                "produces": [
                    "text/xml"
                ],
                "tags": [
                    "[Resource] Object Storage Management"
                ],
                "summary": "Check existence of an object storage (bucket)",
                "operationId": "ExistObjectStorage",
                "parameters": [
                    {
                        "type": "string",
                        "default": "globally-unique-bucket-hctdx3",
                        "description": "Object Storage Name",
                        "name": "objectStorageName",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "aws-ap-northeast-2",
                        "description": "This represents a credential or an access key ID. The required format is ` + "`" + `{csp-region}` + "`" + ` (i.e., the connection name).",
                        "name": "credential",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/resources/objectStorage/{objectStorageName}/cors": {
            "get": {
                "description": "Get CORS configuration of an object storage (bucket)\n\n**Important Notes:**\n- The actual response will be XML format with root element ` + "`" + `CORSConfiguration` + "`" + `\n\n**Actual XML Response Example:**\n` + "`" + `` + "`" + `` + "`" + `xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003cCORSConfiguration xmlns=\"http://s3.amazonaws.com/doc/2006-03-01/\"\u003e\n\u003cCORSRule\u003e\n\u003cAllowedOrigin\u003e*\u003c/AllowedOrigin\u003e\n\u003cAllowedMethod\u003eGET\u003c/AllowedMethod\u003e\n\u003cAllowedMethod\u003ePUT\u003c/AllowedMethod\u003e\n\u003cAllowedMethod\u003ePOST\u003c/AllowedMethod\u003e\n\u003cAllowedMethod\u003eDELETE\u003c/AllowedMethod\u003e\n\u003cAllowedHeader\u003e*\u003c/AllowedHeader\u003e\n\u003cExposeHeader\u003eETag\u003c/ExposeHeader\u003e\n\u003cExposeHeader\u003ex-amz-server-side-encryption\u003c/ExposeHeader\u003e\n\u003cExposeHeader\u003ex-amz-request-id\u003c/ExposeHeader\u003e\n\u003cExposeHeader\u003ex-amz-id-2\u003c/ExposeHeader\u003e\n\u003cMaxAgeSeconds\u003e3000\u003c/MaxAgeSeconds\u003e\n\u003c/CORSRule\u003e\n\u003c/CORSConfiguration\u003e\n` + "`" + `` + "`" + `` + "`" + `\n\n**Error Response Example (if CORS not configured):**\n` + "`" + `` + "`" + `` + "`" + `xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003cError\u003e\n\u003cCode\u003eNoSuchCORSConfiguration\u003c/Code\u003e\n\u003cMessage\u003eThe CORS configuration does not exist\u003c/Message\u003e\n\u003cResource\u003e/example-bucket\u003c/Resource\u003e\n\u003cRequestId\u003e656c76696e6727732072657175657374\u003c/RequestId\u003e\n\u003c/Error\u003e\n` + "`" + `` + "`" + `` + "`" + `",
                "consumes": [
                    "text/xml"
                ],
                "produces": [
                    "text/xml"
                ],
                "tags": [
                    "[Resource] Object Storage Management"
                ],
                "summary": "Get CORS configuration of an object storage (bucket)",
                "operationId": "GetObjectStorageCORS",
                "parameters": [
                    {
                        "type": "string",
                        "default": "globally-unique-bucket-hctdx3",
                        "description": "Object Storage Name",
                        "name": "objectStorageName",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "aws-ap-northeast-2",
                        "description": "This represents a credential or an access key ID. The required format is ` + "`" + `{csp-region}` + "`" + ` (i.e., the connection name).",
                        "name": "credential",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/resource.CORSConfiguration"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/resource.Error"
                        }
                    }
                }
            },
            "put": {
                "description": "Set CORS configuration of an object storage (bucket)\n\n**Important Notes:**\n- The CORS configuration must be provided in the request body in XML format.\n- The actual request body should have root element ` + "`" + `CORSConfiguration` + "`" + `\n\n**Actual XML Request Body Example:**\n` + "`" + `` + "`" + `` + "`" + `xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003cCORSConfiguration\u003e\n\u003cCORSRule\u003e\n\u003cAllowedOrigin\u003ehttps://example.com\u003c/AllowedOrigin\u003e\n\u003cAllowedOrigin\u003ehttps://app.example.com\u003c/AllowedOrigin\u003e\n\u003cAllowedMethod\u003eGET\u003c/AllowedMethod\u003e\n\u003cAllowedMethod\u003ePUT\u003c/AllowedMethod\u003e\n\u003cAllowedHeader\u003eContent-Type\u003c/AllowedHeader\u003e\n\u003cAllowedHeader\u003eAuthorization\u003c/AllowedHeader\u003e\n\u003cExposeHeader\u003eETag\u003c/ExposeHeader\u003e\n\u003cMaxAgeSeconds\u003e1800\u003c/MaxAgeSeconds\u003e\n\u003c/CORSRule\u003e\n\u003cCORSRule\u003e\n\u003cAllowedOrigin\u003e*\u003c/AllowedOrigin\u003e\n\u003cAllowedMethod\u003eGET\u003c/AllowedMethod\u003e\n\u003cMaxAgeSeconds\u003e300\u003c/MaxAgeSeconds\u003e\n\u003c/CORSRule\u003e\n\u003c/CORSConfiguration\u003e\n` + "`" + `` + "`" + `` + "`" + `",
                "consumes": [
                    "text/xml"
                ],
                "produces": [
                    "text/xml"
                ],
                "tags": [
                    "[Resource] Object Storage Management"
                ],
                "summary": "Set CORS configuration of an object storage (bucket)",
                "operationId": "SetObjectStorageCORS",
                "parameters": [
                    {
                        "type": "string",
                        "default": "globally-unique-bucket-hctdx3",
                        "description": "Object Storage Name",
                        "name": "objectStorageName",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "aws-ap-northeast-2",
                        "description": "This represents a credential or an access key ID. The required format is ` + "`" + `{csp-region}` + "`" + ` (i.e., the connection name).",
                        "name": "credential",
                        "in": "header",
                        "required": true
                    },
                    {
                        "description": "CORS Configuration in XML format",
                        "name": "reqBody",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/resource.CORSConfiguration"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            },
            "delete": {
                "description": "Delete CORS configuration of an object storage (bucket)",
                "consumes": [
                    "text/xml"
                ],
                "produces": [
                    "text/xml"
                ],
                "tags": [
                    "[Resource] Object Storage Management"
                ],
                "summary": "Delete CORS configuration of an object storage (bucket)",
                "operationId": "DeleteObjectStorageCORS",
                "parameters": [
                    {
                        "type": "string",
                        "default": "globally-unique-bucket-hctdx3",
                        "description": "Object Storage Name",
                        "name": "objectStorageName",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "aws-ap-northeast-2",
                        "description": "This represents a credential or an access key ID. The required format is ` + "`" + `{csp-region}` + "`" + ` (i.e., the connection name).",
                        "name": "credential",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    }
                }
            }
        },
        "/resources/objectStorage/{objectStorageName}/location": {
            "get": {
                "description": "Get the location of an object storage (bucket)\n\n**Important Notes:**\n- The actual response will be XML format with root element ` + "`" + `LocationConstraint` + "`" + `\n\n**Actual XML Response Example:**\n` + "`" + `` + "`" + `` + "`" + `xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003cLocationConstraint xmlns=\"http://s3.amazonaws.com/doc/2006-03-01/\"\u003eap-northeast-2\u003c/LocationConstraint\u003e\n` + "`" + `` + "`" + `` + "`" + `",
                "consumes": [
                    "text/xml"
                ],
                "produces": [
                    "text/xml"
                ],
                "tags": [
                    "[Resource] Object Storage Management"
                ],
                "summary": "Get the location of an object storage (bucket)",
                "operationId": "GetObjectStorageLocation",
                "parameters": [
                    {
                        "type": "string",
                        "default": "globally-unique-bucket-hctdx3",
                        "description": "Object Storage Name",
                        "name": "objectStorageName",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "aws-ap-northeast-2",
                        "description": "This represents a credential or an access key ID. The required format is ` + "`" + `{csp-region}` + "`" + ` (i.e., the connection name).",
                        "name": "credential",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/resource.LocationConstraint"
                        }
                    }
                }
            }
        },
        "/resources/objectStorage/{objectStorageName}/versioning": {
            "get": {
                "description": "Get versioning status of an object storage (bucket)\n\n**Important Notes:**\n- The actual response will be XML format with root element ` + "`" + `VersioningConfiguration` + "`" + `\n\n**Actual XML Response Example:**\n` + "`" + `` + "`" + `` + "`" + `xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003cVersioningConfiguration xmlns=\"http://s3.amazonaws.com/doc/2006-03-01/\"\u003e\n\u003cStatus\u003eEnabled\u003c/Status\u003e\n\u003c/VersioningConfiguration\u003e\n` + "`" + `` + "`" + `` + "`" + `",
                "consumes": [
                    "text/xml"
                ],
                "produces": [
                    "text/xml"
                ],
                "tags": [
                    "[Resource] Object Storage Management"
                ],
                "summary": "Get versioning status of an object storage (bucket)",
                "operationId": "GetObjectStorageVersioning",
                "parameters": [
                    {
                        "type": "string",
                        "default": "globally-unique-bucket-hctdx3",
                        "description": "Object Storage Name",
                        "name": "objectStorageName",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "aws-ap-northeast-2",
                        "description": "This represents a credential or an access key ID. The required format is ` + "`" + `{csp-region}` + "`" + ` (i.e., the connection name).",
                        "name": "credential",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/resource.VersioningConfiguration"
                        }
                    }
                }
            },
            "put": {
                "description": "Set versioning status of an object storage (bucket)\n\n**Important Notes:**\n- The request body must be XML format with root element ` + "`" + `VersioningConfiguration` + "`" + `\n- The ` + "`" + `Status` + "`" + ` field can be either ` + "`" + `Enabled` + "`" + ` or ` + "`" + `Suspended` + "`" + `\n\n**Request Body Example:**\n` + "`" + `` + "`" + `` + "`" + `xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003cVersioningConfiguration xmlns=\"http://s3.amazonaws.com/doc/2006-03-01/\"\u003e\n\u003cStatus\u003eEnabled\u003c/Status\u003e\n\u003c/VersioningConfiguration\u003e\n` + "`" + `` + "`" + `` + "`" + `",
                "consumes": [
                    "text/xml"
                ],
                "produces": [
                    "text/xml"
                ],
                "tags": [
                    "[Resource] Object Storage Management"
                ],
                "summary": "Set versioning status of an object storage (bucket)",
                "operationId": "SetObjectStorageVersioning",
                "parameters": [
                    {
                        "type": "string",
                        "default": "globally-unique-bucket-hctdx3",
                        "description": "Object Storage Name",
                        "name": "objectStorageName",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "aws-ap-northeast-2",
                        "description": "This represents a credential or an access key ID. The required format is ` + "`" + `{csp-region}` + "`" + ` (i.e., the connection name).",
                        "name": "credential",
                        "in": "header",
                        "required": true
                    },
                    {
                        "description": "Versioning Configuration",
                        "name": "reqBody",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/resource.VersioningConfiguration"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/resources/objectStorage/{objectStorageName}/versions": {
            "get": {
                "description": "List object versions in an object storage (bucket)\n\n**Important Notes:**\n- The actual response will be XML format with root element ` + "`" + `ListVersionsResult` + "`" + `\n\n**Actual XML Response Example:**\n` + "`" + `` + "`" + `` + "`" + `xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003cListVersionsResult xmlns=\"http://s3.amazonaws.com/doc/2006-03-01/\"\u003e\n\u003cName\u003espider-test-bucket\u003c/Name\u003e\n\u003cPrefix\u003e\u003c/Prefix\u003e\n\u003cKeyMarker\u003e\u003c/KeyMarker\u003e\n\u003cVersionIdMarker\u003e\u003c/VersionIdMarker\u003e\n\u003cNextKeyMarker\u003e\u003c/NextKeyMarker\u003e\n\u003cNextVersionIdMarker\u003e\u003c/NextVersionIdMarker\u003e\n\u003cMaxKeys\u003e1000\u003c/MaxKeys\u003e\n\u003cIsTruncated\u003efalse\u003c/IsTruncated\u003e\n\u003cVersion\u003e\n\u003cKey\u003etest-file.txt\u003c/Key\u003e\n\u003cVersionId\u003eyb4PgjnFVD2LfRZHXBjjsHBkQRHlu.TZ\u003c/VersionId\u003e\n\u003cIsLatest\u003etrue\u003c/IsLatest\u003e\n\u003cLastModified\u003e2025-09-04T04:24:12Z\u003c/LastModified\u003e\n\u003cETag\u003e23228a38faecd0591107818c7281cece\u003c/ETag\u003e\n\u003cSize\u003e23\u003c/Size\u003e\n\u003cStorageClass\u003eSTANDARD\u003c/StorageClass\u003e\n\u003cOwner\u003e\n\u003cID\u003eaws-config01\u003c/ID\u003e\n\u003cDisplayName\u003eaws-config01\u003c/DisplayName\u003e\n\u003c/Owner\u003e\n\u003c/Version\u003e\n\u003c/ListVersionsResult\u003e\n` + "`" + `` + "`" + `` + "`" + `",
                "consumes": [
                    "text/xml"
                ],
                "produces": [
                    "text/xml"
                ],
                "tags": [
                    "[Resource] Object Storage Management"
                ],
                "summary": "List object versions in an object storage (bucket)",
                "operationId": "ListObjectVersions",
                "parameters": [
                    {
                        "type": "string",
                        "default": "globally-unique-bucket-hctdx3",
                        "description": "Object Storage Name",
                        "name": "objectStorageName",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "aws-ap-northeast-2",
                        "description": "This represents a credential or an access key ID. The required format is ` + "`" + `{csp-region}` + "`" + ` (i.e., the connection name).",
                        "name": "credential",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/resource.ListVersionsResult"
                        }
                    }
                }
            }
        },
        "/resources/objectStorage/{objectStorageName}/versions/{objectKey}": {
            "delete": {
                "description": "Delete a specific version of an object in an object storage (bucket)",
                "consumes": [
                    "text/xml"
                ],
                "produces": [
                    "text/xml"
                ],
                "tags": [
                    "[Resource] Object Storage Management"
                ],
                "summary": "Delete a specific version of an object in an object storage (bucket)",
                "operationId": "DeleteVersionedObject",
                "parameters": [
                    {
                        "type": "string",
                        "default": "globally-unique-bucket-hctdx3",
                        "description": "Object Storage Name",
                        "name": "objectStorageName",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "test-file.txt",
                        "description": "Object Key",
                        "name": "objectKey",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "yb4PgjnFVD2LfRZHXBjjsHBkQRHlu.TZ",
                        "description": "Version ID",
                        "name": "versionId",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "aws-ap-northeast-2",
                        "description": "This represents a credential or an access key ID. The required format is ` + "`" + `{csp-region}` + "`" + ` (i.e., the connection name).",
                        "name": "credential",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    }
                }
            }
        },
        "/resources/objectStorage/{objectStorageName}/{objectKey}": {
            "delete": {
                "description": "Delete an object from a bucket",
                "consumes": [
                    "text/xml"
                ],
                "produces": [
                    "text/xml"
                ],
                "tags": [
                    "[Resource] Object Storage Management"
                ],
                "summary": "Delete an object from a bucket",
                "operationId": "DeleteDataObject",
                "parameters": [
                    {
                        "type": "string",
                        "default": "globally-unique-bucket-hctdx3",
                        "description": "Object Storage Name",
                        "name": "objectStorageName",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "test-object.txt",
                        "description": "Object Name",
                        "name": "objectKey",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "aws-ap-northeast-2",
                        "description": "This represents a credential or an access key ID. The required format is ` + "`" + `{csp-region}` + "`" + ` (i.e., the connection name).",
                        "name": "credential",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    }
                }
            },
            "head": {
                "description": "Get an object info from a bucket\n\n**Important Notes:**\n- The generated ` + "`" + `Download file` + "`" + ` link in Swagger UI may not work because this API get the object metadata only.",
                "consumes": [
                    "text/xml"
                ],
                "produces": [
                    "application/octet-stream"
                ],
                "tags": [
                    "[Resource] Object Storage Management"
                ],
                "summary": "Get an object info from a bucket",
                "operationId": "GetObjectInfoGetDataObjectInfo",
                "parameters": [
                    {
                        "type": "string",
                        "default": "globally-unique-bucket-hctdx3",
                        "description": "Object Storage Name",
                        "name": "objectStorageName",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "test-object.txt",
                        "description": "Object Name",
                        "name": "objectKey",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "aws-ap-northeast-2",
                        "description": "This represents a credential or an access key ID. The required format is ` + "`" + `{csp-region}` + "`" + ` (i.e., the connection name).",
                        "name": "credential",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/resources/{labelType}": {
            "get": {
                "description": "Get resources based on a label selector. The label selector supports the following operators:\n- ` + "`" + `=` + "`" + ` : Selects resources where the label key equals the specified value (e.g., ` + "`" + `env=production` + "`" + `).\n- ` + "`" + `!=` + "`" + ` : Selects resources where the label key does not equal the specified value (e.g., ` + "`" + `tier!=frontend` + "`" + `).\n- ` + "`" + `in` + "`" + ` : Selects resources where the label key is in the specified set of values (e.g., ` + "`" + `region in (us-west, us-east)` + "`" + `).\n- ` + "`" + `notin` + "`" + ` : Selects resources where the label key is not in the specified set of values (e.g., ` + "`" + `env notin (production, staging)` + "`" + `).\n- ` + "`" + `exists` + "`" + ` : Selects resources where the label key exists (e.g., ` + "`" + `env exists` + "`" + `).\n- ` + "`" + `!exists` + "`" + ` : Selects resources where the label key does not exist (e.g., ` + "`" + `env !exists` + "`" + `).",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Common Utility"
                ],
                "summary": "Get resources by label selector",
                "operationId": "GetResourcesByLabelSelector",
                "parameters": [
                    {
                        "enum": [
                            "ns",
                            "mci",
                            "subGroup",
                            "vm",
                            "k8s",
                            "vNet",
                            "subnet",
                            "vpn",
                            "securityGroup",
                            "sshKey",
                            "dataDisk",
                            "sqlDb",
                            "objectStorage"
                        ],
                        "type": "string",
                        "description": "Label Type",
                        "name": "labelType",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Label selector query. Example: env=production,tier=backend",
                        "name": "labelSelector",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Matched resources",
                        "schema": {
                            "$ref": "#/definitions/label.ResourcesResponse"
                        }
                    },
                    "400": {
                        "description": "Invalid request",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/systemMci": {
            "post": {
                "description": "Create specialized MCI instances for CB-Tumblebug system operations and infrastructure probing.\nThis endpoint provisions system-level infrastructure that supports CB-Tumblebug's internal functions:\n\n**System MCI Types:**\n- ` + "`" + `probe` + "`" + `: Creates lightweight VMs for network connectivity testing and CSP capability discovery\n- ` + "`" + `monitor` + "`" + `: Deploys monitoring infrastructure for system health and performance tracking\n- ` + "`" + `test` + "`" + `: Provisions test environments for validating CSP integrations and features\n\n**Probe MCI Features:**\n- **Connectivity Testing**: Validates network paths between different CSP regions\n- **Latency Measurement**: Measures inter-region and inter-provider network performance\n- **Feature Discovery**: Tests CSP-specific capabilities and service availability\n- **Resource Validation**: Verifies that CB-Tumblebug can successfully provision resources\n\n**System Namespace:**\n- All system MCIs are created in the special ` + "`" + `system` + "`" + ` namespace\n- Isolated from user workloads and regular MCI operations\n- Managed automatically by CB-Tumblebug internal processes\n- May be used for background maintenance and monitoring tasks\n\n**Automatic Configuration:**\n- Uses optimized VM specifications for system tasks (typically minimal resources)\n- Automatically selects appropriate regions and providers based on probe requirements\n- Configures necessary network access and security policies\n- Deploys with minimal attack surface and security hardening\n\n**Lifecycle Management:**\n- System MCIs may be automatically created, updated, or destroyed by CB-Tumblebug\n- Typically short-lived for specific system tasks\n- Resource cleanup is handled automatically\n- Status and results are logged for system administrators\n\n**Use Cases:**\n- Infrastructure health checks and validation\n- Performance benchmarking across cloud providers\n- Automated testing of new CSP integrations\n- Network topology discovery and optimization",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MC-Infra] MCI Provisioning and Management"
                ],
                "summary": "Create System MCI for CB-Tumblebug Internal Operations",
                "operationId": "PostSystemMci",
                "parameters": [
                    {
                        "enum": [
                            "probe",
                            "monitor",
                            "test"
                        ],
                        "type": "string",
                        "description": "System MCI type: 'probe' for connectivity testing, 'monitor' for system monitoring",
                        "name": "option",
                        "in": "query"
                    },
                    {
                        "description": "Optional MCI configuration. If not provided, system defaults will be used",
                        "name": "mciReq",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/model.MciDynamicReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Created system MCI with specialized configuration and status",
                        "schema": {
                            "$ref": "#/definitions/model.MciInfo"
                        }
                    },
                    "400": {
                        "description": "Invalid system option or malformed request",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "403": {
                        "description": "Insufficient permissions for system MCI creation",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "System MCI creation failed or CSP integration error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/testStreamResponse": {
            "post": {
                "description": "Receives a number and streams the decrementing number every second until zero",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/x-json-stream"
                ],
                "tags": [
                    "[Test] Stream Response"
                ],
                "summary": "Stream response of a number decrement",
                "operationId": "PostTestStreamResponse",
                "parameters": [
                    {
                        "description": "Number input",
                        "name": "number",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/common.NumberRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "currentNumber",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "integer"
                            }
                        }
                    },
                    "400": {
                        "description": "Invalid input",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "500": {
                        "description": "Stream failed",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/tumblebug/provisioning/risk/detailed": {
            "get": {
                "description": "Provides comprehensive risk analysis with separate assessments for VM specification and image risks, plus actionable recommendations.\nThis endpoint offers enhanced risk analysis by separating spec-level and image-level risk factors:\n\n**Risk Analysis Breakdown:**\n- **Spec Risk**: Analyzes whether the VM specification itself has compatibility or resource issues\n- **Image Risk**: Evaluates the track record of the specific image with this spec\n- **Overall Risk**: Combines both factors to determine the primary risk source\n- **Recommendations**: Provides actionable guidance based on risk analysis\n\n**Spec Risk Factors:**\n- Number of different images that failed with this spec (indicates spec-level issues)\n- Overall failure rate across all images\n- Success/failure ratio with various images\n\n**Image Risk Factors:**\n- Previous success/failure history of this specific image with this spec\n- Whether this is a new, untested combination\n\n**Recommendation Types:**\n- Change VM specification (when spec is the primary risk factor)\n- Try different image (when image is the primary risk factor)\n- Monitor deployment closely (for new combinations or medium risk)\n- Proceed with confidence (for low-risk combinations)",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[MCI] Provisioning History"
                ],
                "summary": "Analyze Detailed Provisioning Risk with Spec and Image Breakdown",
                "operationId": "AnalyzeProvisioningRiskDetailed",
                "parameters": [
                    {
                        "type": "string",
                        "description": "VM specification ID (e.g., 'gcp+europe-north1+f1-micro')",
                        "name": "specId",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "CSP-specific image name (e.g., 'ami-0c02fb55956c7d316' for AWS)",
                        "name": "cspImageName",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Detailed risk analysis with spec, image, and overall risk assessments plus recommendations",
                        "schema": {
                            "$ref": "#/definitions/model.RiskAnalysis"
                        }
                    },
                    "400": {
                        "description": "Bad Request - Missing or invalid parameters",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/updateImagesFromAsset": {
            "post": {
                "description": "Update image information based on the cloudimage.csv asset file",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Image Management"
                ],
                "summary": "Update images from cloudimage.csv asset file",
                "operationId": "UpdateImagesFromAsset",
                "responses": {
                    "202": {
                        "description": "Accepted",
                        "schema": {
                            "$ref": "#/definitions/resource.FetchImagesAsyncResult"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/util/net/design": {
            "post": {
                "description": "Design a hierarchical network configuration of a VPC network or multi-cloud network consisting of multiple VPC networks",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Network Management"
                ],
                "summary": "Design a multi-cloud network configuration",
                "operationId": "PostUtilToDesignNetwork",
                "parameters": [
                    {
                        "description": "A root/main network CIDR block and subnetting rules",
                        "name": "subnettingReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/netutil.RestPostUtilToDesignNetworkRequest"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/netutil.RestPostUtilToDesignNetworkReponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/util/net/validate": {
            "post": {
                "description": "Validate a hierarchical configuration of a VPC network or multi-cloud network consisting of multiple VPC networks",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Network Management"
                ],
                "summary": "Validate a multi-cloud network configuration",
                "operationId": "PostUtilToValidateNetwork",
                "parameters": [
                    {
                        "description": "A hierarchical network configuration",
                        "name": "subnettingReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/netutil.RestPostUtilToValidateNetworkRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        },
        "/util/vNet/design": {
            "post": {
                "description": "Design VNet and subnets based on user-friendly properties",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "[Infra Resource] Network Management"
                ],
                "summary": "Design VNet and subnets based on user-friendly properties",
                "operationId": "PostUtilToDesignVNet",
                "parameters": [
                    {
                        "description": "User-friendly properties to design VNet and subnets",
                        "name": "vNetDesignReq",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/netutil.RestPostUtilToDesignVNetRequest"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/netutil.RestPostUtilToDesignVNetReponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/model.SimpleMsg"
                        }
                    }
                }
            }
        }
    },
    "definitions": {
        "auth.AuthsInfo": {
            "type": "object",
            "properties": {
                "authenticated": {
                    "type": "boolean"
                },
                "expired-time": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "role": {
                    "type": "string"
                },
                "token": {
                    "type": "string"
                }
            }
        },
        "client.RequestDetails": {
            "type": "object",
            "properties": {
                "endTime": {
                    "description": "The time when the request was fully processed.",
                    "type": "string"
                },
                "errorResponse": {
                    "description": "A message describing any error that occurred during request processing.",
                    "type": "string"
                },
                "requestInfo": {
                    "description": "Extracted information about the request.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/client.RequestInfo"
                        }
                    ]
                },
                "responseData": {
                    "description": "The data sent back in response to the request."
                },
                "startTime": {
                    "description": "The time when the request was received by the server.",
                    "type": "string"
                },
                "status": {
                    "description": "The current status of the request (e.g., \"Handling\", \"Error\", \"Success\").",
                    "type": "string"
                }
            }
        },
        "client.RequestInfo": {
            "type": "object",
            "properties": {
                "body": {
                    "description": "Optional: request body"
                },
                "header": {
                    "description": "Key-value pairs of the request headers.",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "method": {
                    "description": "HTTP method (GET, POST, etc.), indicating the request's action type.",
                    "type": "string"
                },
                "url": {
                    "description": "The URL the request is made to.",
                    "type": "string"
                }
            }
        },
        "common.JSONResult": {
            "type": "object"
        },
        "common.NumberRequest": {
            "type": "object",
            "properties": {
                "number": {
                    "type": "integer",
                    "example": 100
                }
            }
        },
        "common.RestGetAllConfigResponse": {
            "type": "object",
            "properties": {
                "config": {
                    "description": "Name string     ` + "`" + `json:\"name\"` + "`" + `",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.ConfigInfo"
                    }
                }
            }
        },
        "common.RestGetAllNsResponse": {
            "type": "object",
            "properties": {
                "ns": {
                    "description": "Name string     ` + "`" + `json:\"name\"` + "`" + `",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.NsInfo"
                    }
                }
            }
        },
        "common.RestRegisterCspNativeResourcesRequest": {
            "type": "object",
            "properties": {
                "connectionName": {
                    "type": "string",
                    "example": "aws-ap-southeast-1"
                },
                "mciName": {
                    "type": "string",
                    "example": "csp"
                },
                "nsId": {
                    "type": "string",
                    "example": "default"
                }
            }
        },
        "common.RestRegisterCspNativeResourcesRequestAll": {
            "type": "object",
            "properties": {
                "mciName": {
                    "type": "string",
                    "example": "csp"
                },
                "nsId": {
                    "type": "string",
                    "example": "default"
                }
            }
        },
        "common.TbConnectionName": {
            "type": "object",
            "properties": {
                "connectionName": {
                    "type": "string"
                }
            }
        },
        "infra.JSONResult": {
            "type": "object"
        },
        "infra.RestGetAllBenchmarkRequest": {
            "type": "object",
            "properties": {
                "host": {
                    "type": "string"
                }
            }
        },
        "infra.RestGetAllMciPolicyResponse": {
            "type": "object",
            "properties": {
                "mciPolicy": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.MciPolicyInfo"
                    }
                }
            }
        },
        "infra.RestGetAllMciResponse": {
            "type": "object",
            "properties": {
                "mci": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.MciInfo"
                    }
                }
            }
        },
        "infra.RestGetAllMciStatusResponse": {
            "type": "object",
            "properties": {
                "mci": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.MciStatusInfo"
                    }
                }
            }
        },
        "infra.RestGetAllNLBResponse": {
            "type": "object",
            "properties": {
                "nlb": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.NLBInfo"
                    }
                }
            }
        },
        "infra.RestGetBenchmarkRequest": {
            "type": "object",
            "properties": {
                "host": {
                    "type": "string"
                }
            }
        },
        "label.ResourcesResponse": {
            "type": "object",
            "properties": {
                "results": {
                    "type": "array",
                    "items": {}
                }
            }
        },
        "model.AgentInstallContent": {
            "type": "object",
            "properties": {
                "mciId": {
                    "type": "string"
                },
                "result": {
                    "type": "string"
                },
                "vmId": {
                    "type": "string"
                },
                "vmIp": {
                    "type": "string"
                }
            }
        },
        "model.AgentInstallContentWrapper": {
            "type": "object",
            "properties": {
                "resultArray": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.AgentInstallContent"
                    }
                }
            }
        },
        "model.AlibabaSpecificProperty": {
            "type": "object",
            "properties": {
                "bgpAsn": {
                    "type": "string",
                    "default": "65532",
                    "example": "65532"
                }
            }
        },
        "model.AttachDetachDataDiskReq": {
            "type": "object",
            "required": [
                "dataDiskId"
            ],
            "properties": {
                "dataDiskId": {
                    "type": "string"
                }
            }
        },
        "model.AutoAction": {
            "type": "object",
            "properties": {
                "actionType": {
                    "type": "string",
                    "enum": [
                        "ScaleOut",
                        "ScaleIn"
                    ],
                    "example": "ScaleOut"
                },
                "placementAlgo": {
                    "type": "string",
                    "example": "random"
                },
                "postCommand": {
                    "description": "PostCommand is field for providing command to VMs after its creation. example:\"wget https://raw.githubusercontent.com/cloud-barista/cb-tumblebug/main/scripts/setweb.sh -O ~/setweb.sh; chmod +x ~/setweb.sh; sudo ~/setweb.sh\"",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.MciCmdReq"
                        }
                    ]
                },
                "subGroupDynamicReq": {
                    "$ref": "#/definitions/model.CreateSubGroupDynamicReq"
                }
            }
        },
        "model.AutoCondition": {
            "type": "object",
            "properties": {
                "evaluationPeriod": {
                    "type": "string",
                    "example": "10"
                },
                "evaluationValue": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "metric": {
                    "type": "string",
                    "example": "cpu"
                },
                "operand": {
                    "type": "string",
                    "example": "80"
                },
                "operator": {
                    "type": "string",
                    "enum": [
                        "\u003c",
                        "\u003c=",
                        "\u003e",
                        "\u003e="
                    ],
                    "example": "\u003e="
                }
            }
        },
        "model.AwsSpecificProperty": {
            "type": "object",
            "properties": {
                "bgpAsn": {
                    "type": "string",
                    "default": "64512",
                    "example": "64512"
                }
            }
        },
        "model.AzureSpecificProperty": {
            "type": "object",
            "properties": {
                "bgpAsn": {
                    "type": "string",
                    "default": "65531",
                    "example": "65531"
                },
                "gatewaySubnetCidr": {
                    "type": "string",
                    "example": "xxx.xxx.xxx.xxx/xx"
                },
                "vpnSku": {
                    "type": "string",
                    "default": "VpnGw1AZ",
                    "example": "VpnGw1AZ"
                }
            }
        },
        "model.BastionNode": {
            "type": "object",
            "properties": {
                "mciId": {
                    "type": "string"
                },
                "vmId": {
                    "type": "string"
                }
            }
        },
        "model.BenchmarkInfo": {
            "type": "object",
            "properties": {
                "desc": {
                    "type": "string"
                },
                "elapsed": {
                    "type": "string"
                },
                "regionName": {
                    "type": "string"
                },
                "result": {
                    "type": "string"
                },
                "resultarray": {
                    "description": "struct-element cycle ?",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.BenchmarkInfo"
                    }
                },
                "specid": {
                    "type": "string"
                },
                "unit": {
                    "type": "string"
                }
            }
        },
        "model.BenchmarkInfoArray": {
            "type": "object",
            "properties": {
                "resultarray": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.BenchmarkInfo"
                    }
                }
            }
        },
        "model.CSPDetail": {
            "type": "object",
            "properties": {
                "description": {
                    "type": "string"
                },
                "driver": {
                    "type": "string"
                },
                "links": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "regions": {
                    "type": "object",
                    "additionalProperties": {
                        "$ref": "#/definitions/model.RegionDetail"
                    }
                }
            }
        },
        "model.ChangeK8sNodeGroupAutoscaleSizeReq": {
            "type": "object",
            "properties": {
                "desiredNodeSize": {
                    "type": "string",
                    "example": "1"
                },
                "maxNodeSize": {
                    "type": "string",
                    "example": "3"
                },
                "minNodeSize": {
                    "type": "string",
                    "example": "1"
                }
            }
        },
        "model.ChangeK8sNodeGroupAutoscaleSizeRes": {
            "type": "object",
            "properties": {
                "cspResourceId": {
                    "description": "CspResourceId is resource identifier managed by CSP",
                    "type": "string",
                    "example": "csp-06eb41e14121c550a"
                },
                "cspResourceName": {
                    "description": "CspResourceName is name assigned to the CSP resource. This name is internally used to handle the resource.",
                    "type": "string",
                    "example": "we12fawefadf1221edcf"
                },
                "desiredNodeSize": {
                    "type": "integer"
                },
                "id": {
                    "description": "Id is unique identifier for the object",
                    "type": "string",
                    "example": "aws-ap-southeast-1"
                },
                "imageId": {
                    "type": "string"
                },
                "k8sNodes": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.K8sNodeInfo"
                    }
                },
                "keyValueList": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.KeyValue"
                    }
                },
                "maxNodeSize": {
                    "type": "integer"
                },
                "minNodeSize": {
                    "type": "integer"
                },
                "name": {
                    "description": "Name is human-readable string to represent the object",
                    "type": "string",
                    "example": "aws-ap-southeast-1"
                },
                "onAutoScaling": {
                    "type": "boolean"
                },
                "rootDiskSize": {
                    "type": "string"
                },
                "rootDiskType": {
                    "type": "string"
                },
                "specId": {
                    "type": "string"
                },
                "spiderViewK8sNodeGroupDetail": {
                    "$ref": "#/definitions/model.SpiderNodeGroupInfo"
                },
                "sshKeyId": {
                    "type": "string"
                },
                "status": {
                    "description": "Creating, Active, Inactive, Updating, Deleting",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.K8sNodeGroupStatus"
                        }
                    ],
                    "example": "Active"
                }
            }
        },
        "model.CheckK8sClusterDynamicReqInfo": {
            "type": "object",
            "required": [
                "reqCheck"
            ],
            "properties": {
                "reqCheck": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.CheckNodeDynamicReqInfo"
                    }
                }
            }
        },
        "model.CheckMciDynamicReqInfo": {
            "type": "object",
            "required": [
                "reqCheck"
            ],
            "properties": {
                "reqCheck": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.CheckSubGroupDynamicReqInfo"
                    }
                }
            }
        },
        "model.CheckNodeDynamicReqInfo": {
            "type": "object",
            "properties": {
                "connectionConfigCandidates": {
                    "description": "ConnectionConfigCandidates will provide ConnectionConfig options",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "image": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.ImageInfo"
                    }
                },
                "region": {
                    "$ref": "#/definitions/model.RegionDetail"
                },
                "spec": {
                    "$ref": "#/definitions/model.SpecInfo"
                },
                "systemMessage": {
                    "description": "Latest system message such as error message",
                    "type": "string",
                    "example": "Failed because ..."
                }
            }
        },
        "model.CheckSubGroupDynamicReqInfo": {
            "type": "object",
            "properties": {
                "connectionConfigCandidates": {
                    "description": "ConnectionConfigCandidates will provide ConnectionConfig options",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "image": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.ImageInfo"
                    }
                },
                "region": {
                    "$ref": "#/definitions/model.RegionDetail"
                },
                "spec": {
                    "$ref": "#/definitions/model.SpecInfo"
                },
                "systemMessage": {
                    "description": "Latest system message such as error message",
                    "type": "string",
                    "example": "Failed because ..."
                }
            }
        },
        "model.CloudInfo": {
            "type": "object",
            "properties": {
                "csps": {
                    "type": "object",
                    "additionalProperties": {
                        "$ref": "#/definitions/model.CSPDetail"
                    }
                }
            }
        },
        "model.CommandExecutionStatus": {
            "type": "string",
            "enum": [
                "Queued",
                "Handling",
                "Completed",
                "Failed",
                "Timeout"
            ],
            "x-enum-varnames": [
                "CommandStatusQueued",
                "CommandStatusHandling",
                "CommandStatusCompleted",
                "CommandStatusFailed",
                "CommandStatusTimeout"
            ]
        },
        "model.CommandStatusInfo": {
            "type": "object",
            "properties": {
                "commandExecuted": {
                    "description": "CommandExecuted is the actual SSH command executed on the VM (may be adjusted)",
                    "type": "string",
                    "example": "ls -la"
                },
                "commandRequested": {
                    "description": "CommandRequested is the original command as requested by the user",
                    "type": "string",
                    "example": "ls -la"
                },
                "completedTime": {
                    "description": "CompletedTime is when the command execution completed (success or failure)",
                    "type": "string",
                    "example": "2024-01-15 10:30:05"
                },
                "elapsedTime": {
                    "description": "ElapsedTime is the duration of command execution in milliseconds",
                    "type": "integer",
                    "example": 5000
                },
                "errorMessage": {
                    "description": "ErrorMessage contains error details if the execution failed",
                    "type": "string",
                    "example": "SSH connection failed"
                },
                "index": {
                    "description": "Index is sequential identifier for this command execution (1, 2, 3, ...)",
                    "type": "integer",
                    "example": 1
                },
                "resultSummary": {
                    "description": "ResultSummary provides a brief summary of the execution result",
                    "type": "string",
                    "example": "Command executed successfully"
                },
                "startedTime": {
                    "description": "StartedTime is when the command execution started",
                    "type": "string",
                    "example": "2024-01-15 10:30:00"
                },
                "status": {
                    "description": "Status represents the current status of the command execution",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.CommandExecutionStatus"
                        }
                    ],
                    "example": "Completed"
                },
                "stderr": {
                    "description": "Stderr contains the standard error from command execution (truncated for history)",
                    "type": "string",
                    "example": ""
                },
                "stdout": {
                    "description": "Stdout contains the standard output from command execution (truncated for history)",
                    "type": "string",
                    "example": "total 8\ndrwxr-xr-x 2 user user 4096 Jan 15 10:30 ."
                },
                "xRequestId": {
                    "description": "XRequestId is the request ID from X-Request-ID header when the command was executed",
                    "type": "string",
                    "example": "req-12345678-abcd-1234-efgh-123456789012"
                }
            }
        },
        "model.CommandStatusListResponse": {
            "type": "object",
            "properties": {
                "commands": {
                    "description": "Commands is the list of command status info matching the filter criteria",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.CommandStatusInfo"
                    }
                },
                "limit": {
                    "description": "Limit is the limit applied to the query",
                    "type": "integer",
                    "example": 50
                },
                "offset": {
                    "description": "Offset is the offset applied to the query",
                    "type": "integer",
                    "example": 0
                },
                "total": {
                    "description": "Total is the total number of commands matching the criteria (before limit/offset)",
                    "type": "integer",
                    "example": 25
                }
            }
        },
        "model.ConfigInfo": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "string",
                    "example": "TB_SPIDER_REST_URL"
                },
                "name": {
                    "type": "string",
                    "example": "TB_SPIDER_REST_URL"
                },
                "value": {
                    "type": "string",
                    "example": "http://localhost:1024/spider"
                }
            }
        },
        "model.ConfigReq": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string",
                    "example": "TB_SPIDER_REST_URL"
                },
                "value": {
                    "type": "string",
                    "example": "http://localhost:1024/spider"
                }
            }
        },
        "model.ConnConfig": {
            "type": "object",
            "properties": {
                "configName": {
                    "type": "string"
                },
                "credentialHolder": {
                    "type": "string"
                },
                "credentialName": {
                    "type": "string"
                },
                "driverName": {
                    "type": "string"
                },
                "providerName": {
                    "type": "string"
                },
                "regionDetail": {
                    "$ref": "#/definitions/model.RegionDetail"
                },
                "regionRepresentative": {
                    "type": "boolean"
                },
                "regionZoneInfo": {
                    "$ref": "#/definitions/model.RegionZoneInfo"
                },
                "regionZoneInfoName": {
                    "type": "string"
                },
                "verified": {
                    "type": "boolean"
                }
            }
        },
        "model.ConnConfigList": {
            "type": "object",
            "properties": {
                "connectionconfig": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.ConnConfig"
                    }
                }
            }
        },
        "model.CreateSubGroupDynamicReq": {
            "type": "object",
            "required": [
                "imageId",
                "specId"
            ],
            "properties": {
                "connectionName": {
                    "description": "if ConnectionName is given, the VM tries to use associtated credential.\nif not, it will use predefined ConnectionName in Spec objects",
                    "type": "string",
                    "example": "aws-ap-northeast-2"
                },
                "description": {
                    "type": "string",
                    "example": "Created via CB-Tumblebug"
                },
                "imageId": {
                    "description": "ImageId is field for id of a image in common namespace",
                    "type": "string",
                    "example": "ami-01f71f215b23ba262"
                },
                "label": {
                    "description": "Label is for describing the object by keywords",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "example": {
                        "\"env\"": "\"test\"}",
                        "{\"role\"": "\"worker\""
                    }
                },
                "name": {
                    "description": "SubGroup name, actual VM name will be generated with -N postfix.",
                    "type": "string",
                    "example": "g1"
                },
                "rootDiskSize": {
                    "description": "\"default\", Integer (GB): [\"50\", ..., \"1000\"]",
                    "type": "string",
                    "default": "default",
                    "example": "50"
                },
                "rootDiskType": {
                    "description": "\"\", \"default\", \"TYPE1\", AWS: [\"standard\", \"gp2\", \"gp3\"], Azure: [\"PremiumSSD\", \"StandardSSD\", \"StandardHDD\"], GCP: [\"pd-standard\", \"pd-balanced\", \"pd-ssd\", \"pd-extreme\"], ALIBABA: [\"cloud_efficiency\", \"cloud\", \"cloud_essd\"], TENCENT: [\"CLOUD_PREMIUM\", \"CLOUD_SSD\"]",
                    "type": "string",
                    "default": "default",
                    "example": "gp3"
                },
                "specId": {
                    "description": "SpecId is field for id of a spec in common namespace",
                    "type": "string",
                    "example": "aws+ap-northeast-2+t3.nano"
                },
                "subGroupSize": {
                    "description": "if subGroupSize is (not empty) \u0026\u0026 (\u003e 0), subGroup will be generated. VMs will be created accordingly.",
                    "type": "string",
                    "default": "1",
                    "example": "3"
                },
                "vmUserPassword": {
                    "type": "string",
                    "example": ""
                }
            }
        },
        "model.CreateSubGroupReq": {
            "type": "object",
            "required": [
                "connectionName",
                "imageId",
                "name",
                "securityGroupIds",
                "specId",
                "sshKeyId",
                "subnetId",
                "vNetId"
            ],
            "properties": {
                "connectionName": {
                    "type": "string",
                    "example": "testcloud01-seoul"
                },
                "cspResourceId": {
                    "description": "CspResourceId is resource identifier managed by CSP (required for option=register)",
                    "type": "string",
                    "example": "i-014fa6ede6ada0b2c"
                },
                "dataDiskIds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "description": {
                    "type": "string",
                    "example": "Description"
                },
                "imageId": {
                    "description": "ImageType        string   ` + "`" + `json:\"imageType\"` + "`" + `",
                    "type": "string"
                },
                "label": {
                    "description": "Label is for describing the object by keywords",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "name": {
                    "description": "SubGroup name of VMs. Actual VM name will be generated with -N postfix.",
                    "type": "string",
                    "example": "g1-1"
                },
                "rootDiskSize": {
                    "description": "\"default\", Integer (GB): [\"50\", ..., \"1000\"]",
                    "type": "string",
                    "example": "default, 30, 42, ..."
                },
                "rootDiskType": {
                    "description": "\"\", \"default\", \"TYPE1\", AWS: [\"standard\", \"gp2\", \"gp3\"], Azure: [\"PremiumSSD\", \"StandardSSD\", \"StandardHDD\"], GCP: [\"pd-standard\", \"pd-balanced\", \"pd-ssd\", \"pd-extreme\"], ALIBABA: [\"cloud_efficiency\", \"cloud\", \"cloud_ssd\"], TENCENT: [\"CLOUD_PREMIUM\", \"CLOUD_SSD\"]",
                    "type": "string",
                    "example": "default, TYPE1, ..."
                },
                "securityGroupIds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "specId": {
                    "type": "string"
                },
                "sshKeyId": {
                    "type": "string"
                },
                "subGroupSize": {
                    "description": "if subGroupSize is (not empty) \u0026\u0026 (\u003e 0), subGroup will be generated. VMs will be created accordingly.",
                    "type": "string",
                    "example": "3"
                },
                "subnetId": {
                    "type": "string"
                },
                "vNetId": {
                    "type": "string"
                },
                "vmUserName": {
                    "type": "string"
                },
                "vmUserPassword": {
                    "type": "string"
                }
            }
        },
        "model.CredentialInfo": {
            "type": "object",
            "properties": {
                "allConnections": {
                    "$ref": "#/definitions/model.ConnConfigList"
                },
                "credentialHolder": {
                    "type": "string"
                },
                "credentialName": {
                    "type": "string"
                },
                "keyValueInfoList": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.KeyValue"
                    }
                },
                "providerName": {
                    "type": "string"
                }
            }
        },
        "model.CredentialReq": {
            "description": "CredentialReq contains the necessary information to register a credential. This includes the AES key encrypted with the RSA public key, which is then used to decrypt the AES key on the server side.",
            "type": "object",
            "properties": {
                "credentialHolder": {
                    "description": "CredentialHolder is the entity or user that holds the credential.",
                    "type": "string",
                    "example": "admin"
                },
                "credentialKeyValueList": {
                    "description": "CredentialKeyValueList contains key-(encrypted)value pairs that include the sensitive credential data.",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.KeyWithEncryptedValue"
                    }
                },
                "encryptedClientAesKeyByPublicKey": {
                    "description": "EncryptedClientAesKeyByPublicKey is the client temporary AES key encrypted with the RSA public key.",
                    "type": "string",
                    "example": "ZzXL27hbAUDT0ohglf2Gwr60sAqdPw3+CnCsn0RJXeiZxXnHfW03mFx5RaSfbwtPYCq1h6wwv7XsiWzfFmr02..."
                },
                "providerName": {
                    "description": "ProviderName specifies the cloud provider associated with the credential (e.g., AWS, GCP).",
                    "type": "string",
                    "example": "aws"
                },
                "publicKeyTokenId": {
                    "description": "PublicKeyTokenId is the unique token ID used to retrieve the corresponding private key for decryption.",
                    "type": "string",
                    "example": "cr31av30uphc738d7h0g"
                }
            }
        },
        "model.CspSpecificProperty": {
            "type": "object",
            "properties": {
                "alibaba": {
                    "$ref": "#/definitions/model.AlibabaSpecificProperty"
                },
                "aws": {
                    "$ref": "#/definitions/model.AwsSpecificProperty"
                },
                "azure": {
                    "$ref": "#/definitions/model.AzureSpecificProperty"
                },
                "gcp": {
                    "$ref": "#/definitions/model.GcpSpecificProperty"
                }
            }
        },
        "model.CustomImageInfo": {
            "type": "object",
            "properties": {
                "associatedObjectList": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "connectionConfig": {
                    "$ref": "#/definitions/model.ConnConfig"
                },
                "connectionName": {
                    "type": "string",
                    "example": "aws-ap-southeast-1"
                },
                "creationDate": {
                    "type": "string",
                    "example": "2022-10-18T08:12:48Z"
                },
                "cspResourceId": {
                    "description": "CspResourceId is resource identifier managed by CSP",
                    "type": "string",
                    "example": "csp-06eb41e14121c550a"
                },
                "cspResourceName": {
                    "description": "CspResourceName is name assigned to the CSP resource. This name is internally used to handle the resource.",
                    "type": "string",
                    "example": "we12fawefadf1221edcf"
                },
                "description": {
                    "type": "string"
                },
                "guestOS": {
                    "description": "Windows7, Ubuntu etc.",
                    "type": "string"
                },
                "id": {
                    "description": "Id is unique identifier for the object",
                    "type": "string",
                    "example": "aws-ap-southeast-1"
                },
                "isAutoGenerated": {
                    "type": "boolean"
                },
                "keyValueList": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.KeyValue"
                    }
                },
                "name": {
                    "description": "Name is human-readable string to represent the object",
                    "type": "string",
                    "example": "aws-ap-southeast-1"
                },
                "namespace": {
                    "description": "required to save in RDB",
                    "type": "string",
                    "example": "default"
                },
                "resourceType": {
                    "description": "ResourceType is the type of the resource",
                    "type": "string"
                },
                "sourceVmId": {
                    "type": "string",
                    "example": "aws-ap-southeast-1-1"
                },
                "status": {
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.CustomImageStatus"
                        }
                    ],
                    "example": "Available"
                },
                "systemLabel": {
                    "description": "SystemLabel is for describing the Resource in a keyword (any string can be used) for special System purpose",
                    "type": "string",
                    "example": "Managed by CB-Tumblebug"
                },
                "uid": {
                    "description": "Uid is universally unique identifier for the object, used for labelSelector",
                    "type": "string",
                    "example": "wef12awefadf1221edcf"
                }
            }
        },
        "model.CustomImageReq": {
            "type": "object",
            "required": [
                "name"
            ],
            "properties": {
                "connectionName": {
                    "type": "string"
                },
                "cspResourceId": {
                    "description": "This field is for 'Register existing custom image'",
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "sourceVmId": {
                    "type": "string"
                }
            }
        },
        "model.CustomImageStatus": {
            "type": "string",
            "enum": [
                "Available",
                "Unavailable"
            ],
            "x-enum-varnames": [
                "MyImageAvailable",
                "MyImageUnavailable"
            ]
        },
        "model.DataDiskInfo": {
            "type": "object",
            "properties": {
                "associatedObjectList": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "/ns/default/mci/mci01/vm/aws-ap-southeast-1-1"
                    ]
                },
                "connectionConfig": {
                    "$ref": "#/definitions/model.ConnConfig"
                },
                "connectionName": {
                    "type": "string",
                    "example": "aws-ap-southeast-1"
                },
                "createdTime": {
                    "type": "string",
                    "example": "2022-10-12T05:09:51.05Z"
                },
                "cspResourceId": {
                    "description": "CspResourceId is resource identifier managed by CSP",
                    "type": "string",
                    "example": "csp-06eb41e14121c550a"
                },
                "cspResourceName": {
                    "description": "CspResourceName is name assigned to the CSP resource. This name is internally used to handle the resource.",
                    "type": "string",
                    "example": "we12fawefadf1221edcf"
                },
                "description": {
                    "type": "string",
                    "example": "Available"
                },
                "diskSize": {
                    "type": "string",
                    "example": "77"
                },
                "diskType": {
                    "type": "string",
                    "example": "standard"
                },
                "id": {
                    "description": "Id is unique identifier for the object",
                    "type": "string",
                    "example": "aws-ap-southeast-1"
                },
                "isAutoGenerated": {
                    "type": "boolean"
                },
                "keyValueList": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.KeyValue"
                    }
                },
                "name": {
                    "description": "Name is human-readable string to represent the object",
                    "type": "string",
                    "example": "aws-ap-southeast-1"
                },
                "resourceType": {
                    "description": "ResourceType is the type of the resource",
                    "type": "string"
                },
                "status": {
                    "description": "Available, Unavailable, Attached, ...",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.DiskStatus"
                        }
                    ],
                    "example": "Available"
                },
                "systemLabel": {
                    "description": "SystemLabel is for describing the Resource in a keyword (any string can be used) for special System purpose",
                    "type": "string",
                    "example": "Managed by CB-Tumblebug"
                },
                "systemMessage": {
                    "description": "Latest system message such as error message",
                    "type": "string",
                    "example": "Failed because ..."
                },
                "uid": {
                    "description": "Uid is universally unique identifier for the object, used for labelSelector",
                    "type": "string",
                    "example": "wef12awefadf1221edcf"
                }
            }
        },
        "model.DataDiskReq": {
            "type": "object",
            "required": [
                "connectionName",
                "diskSize",
                "name"
            ],
            "properties": {
                "connectionName": {
                    "type": "string",
                    "example": "aws-ap-southeast-1"
                },
                "cspResourceId": {
                    "description": "Fields for \"Register existing dataDisk\" feature\nCspResourceId is required to register object from CSP (option=register)",
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "diskSize": {
                    "type": "string",
                    "default": "100",
                    "example": "77"
                },
                "diskType": {
                    "type": "string",
                    "example": "default"
                },
                "name": {
                    "type": "string",
                    "example": "aws-ap-southeast-1-datadisk"
                }
            }
        },
        "model.DataDiskUpsizeReq": {
            "type": "object",
            "required": [
                "diskSize"
            ],
            "properties": {
                "description": {
                    "type": "string"
                },
                "diskSize": {
                    "type": "string"
                }
            }
        },
        "model.DataDiskVmReq": {
            "type": "object",
            "required": [
                "diskSize",
                "name"
            ],
            "properties": {
                "description": {
                    "type": "string"
                },
                "diskSize": {
                    "type": "string",
                    "default": "100",
                    "example": "77"
                },
                "diskType": {
                    "type": "string",
                    "example": "default"
                },
                "name": {
                    "type": "string",
                    "example": "aws-ap-southeast-1-datadisk"
                }
            }
        },
        "model.DiskStatus": {
            "type": "string",
            "enum": [
                "Creating",
                "Available",
                "Attached",
                "Deleting",
                "Error"
            ],
            "x-enum-varnames": [
                "DiskCreating",
                "DiskAvailable",
                "DiskAttached",
                "DiskDeleting",
                "DiskError"
            ]
        },
        "model.FilterAvailableValues": {
            "type": "object",
            "properties": {
                "acceleratorModel": {
                    "description": "Accelerator information",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "acceleratorType": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "architecture": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "connectionName": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "cspSpecName": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "description": {
                    "description": "Additional fields",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "evaluationStatus": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "id": {
                    "description": "Basic identification fields",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "infraType": {
                    "description": "Infrastructure specifications",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "name": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "osType": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "providerName": {
                    "description": "Provider and region information",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "regionName": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "model.FilterCondition": {
            "type": "object",
            "properties": {
                "condition": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.Operation"
                    }
                },
                "metric": {
                    "type": "string",
                    "enum": [
                        "vCPU",
                        "memoryGiB",
                        "costPerHour"
                    ],
                    "example": "vCPU"
                }
            }
        },
        "model.FilterConditionExample": {
            "type": "object",
            "properties": {
                "condition": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.OperationExample"
                    }
                },
                "description": {
                    "type": "string",
                    "example": "Filter specs with 2-8 vCPUs"
                },
                "metric": {
                    "type": "string",
                    "example": "vCPU"
                }
            }
        },
        "model.FilterInfo": {
            "type": "object",
            "properties": {
                "policy": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.FilterCondition"
                    }
                }
            }
        },
        "model.FilterOptionsInfo": {
            "type": "object",
            "properties": {
                "availableMetrics": {
                    "description": "Available metrics for filtering",
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "vCPU",
                        "memoryGiB",
                        "costPerHour",
                        "providerName",
                        "regionName",
                        "architecture"
                    ]
                },
                "availableValues": {
                    "description": "Available values for each metric (for select fields)",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.FilterAvailableValues"
                        }
                    ]
                },
                "examplePolicies": {
                    "description": "Example filter policies",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.FilterConditionExample"
                    }
                },
                "limitExamples": {
                    "description": "Example limit values for performance optimization",
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "0",
                        "50",
                        "100",
                        "200",
                        "500"
                    ]
                }
            }
        },
        "model.FilterSpecsByRangeRequest": {
            "type": "object",
            "properties": {
                "acceleratorCount": {
                    "$ref": "#/definitions/model.Range"
                },
                "acceleratorMemoryGB": {
                    "$ref": "#/definitions/model.Range"
                },
                "acceleratorModel": {
                    "type": "string"
                },
                "acceleratorType": {
                    "type": "string"
                },
                "architecture": {
                    "type": "string"
                },
                "connectionName": {
                    "type": "string"
                },
                "costPerHour": {
                    "$ref": "#/definitions/model.Range"
                },
                "cspSpecName": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "diskSizeGB": {
                    "$ref": "#/definitions/model.Range"
                },
                "evaluationScore01": {
                    "$ref": "#/definitions/model.Range"
                },
                "evaluationScore02": {
                    "$ref": "#/definitions/model.Range"
                },
                "evaluationScore03": {
                    "$ref": "#/definitions/model.Range"
                },
                "evaluationScore04": {
                    "$ref": "#/definitions/model.Range"
                },
                "evaluationScore05": {
                    "$ref": "#/definitions/model.Range"
                },
                "evaluationScore06": {
                    "$ref": "#/definitions/model.Range"
                },
                "evaluationScore07": {
                    "$ref": "#/definitions/model.Range"
                },
                "evaluationScore08": {
                    "$ref": "#/definitions/model.Range"
                },
                "evaluationScore09": {
                    "$ref": "#/definitions/model.Range"
                },
                "evaluationScore10": {
                    "$ref": "#/definitions/model.Range"
                },
                "evaluationStatus": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "infraType": {
                    "type": "string"
                },
                "limit": {
                    "type": "integer",
                    "example": 0
                },
                "maxTotalStorageTiB": {
                    "$ref": "#/definitions/model.Range"
                },
                "memoryGiB": {
                    "$ref": "#/definitions/model.Range"
                },
                "name": {
                    "type": "string"
                },
                "netBwGbps": {
                    "$ref": "#/definitions/model.Range"
                },
                "osType": {
                    "type": "string"
                },
                "providerName": {
                    "type": "string"
                },
                "regionLatitude": {
                    "type": "number"
                },
                "regionLongitude": {
                    "type": "number"
                },
                "regionName": {
                    "type": "string"
                },
                "vCPU": {
                    "$ref": "#/definitions/model.Range"
                }
            }
        },
        "model.FirewallRuleInfo": {
            "type": "object",
            "required": [
                "Direction",
                "Protocol"
            ],
            "properties": {
                "CIDR": {
                    "description": "CIDR is the allowed IP range (e.g. 0.0.0.0/0, 10.0.0/8)",
                    "type": "string",
                    "example": "0.0.0.0/0"
                },
                "Direction": {
                    "description": "Direction is the direction of the rule (inbound or outbound)",
                    "type": "string",
                    "enum": [
                        "inbound",
                        "outbound"
                    ],
                    "example": "inbound"
                },
                "Port": {
                    "description": "Port is the single port (e.g. \"22\") or port range (e.g. \"1-65535\") for the rule",
                    "type": "string",
                    "example": "1-65535"
                },
                "Protocol": {
                    "description": "Protocol is the protocol type for the rule (TCP, UDP, ICMP, ALL)",
                    "type": "string",
                    "enum": [
                        "TCP",
                        "UDP",
                        "ICMP",
                        "ALL"
                    ],
                    "example": "TCP"
                }
            }
        },
        "model.FirewallRuleReq": {
            "type": "object",
            "required": [
                "Direction",
                "Protocol"
            ],
            "properties": {
                "CIDR": {
                    "description": "CIDR is the allowed IP range (e.g. 0.0.0.0/0, 10.0.0/8)",
                    "type": "string",
                    "example": "0.0.0.0/0"
                },
                "Direction": {
                    "description": "Direction is the direction of the rule (inbound or outbound)",
                    "type": "string",
                    "enum": [
                        "inbound",
                        "outbound"
                    ],
                    "example": "inbound"
                },
                "Ports": {
                    "description": "Ports is to get multiple ports or port ranges as a string (e.g. \"22,900-1000,2000-3000\")\nThis allows flexibility in specifying single ports or ranges in a comma-separated format.\nThis field is used to handle both single ports and port ranges in a unified way.\nIt can accept a single port (e.g. \"22\"), a range (e.g. \"900-1000\"), or multiple ports/ranges (e.g. \"22,900-1000,2000-3000\").",
                    "type": "string",
                    "example": "22,900-1000,2000-3000"
                },
                "Protocol": {
                    "description": "Protocol is the protocol type for the rule (TCP, UDP, ICMP). Don't use ALL here.",
                    "type": "string",
                    "enum": [
                        "TCP",
                        "UDP",
                        "ICMP"
                    ],
                    "example": "TCP"
                }
            }
        },
        "model.GcpSpecificProperty": {
            "type": "object",
            "properties": {
                "bgpAsn": {
                    "type": "string",
                    "default": "65530",
                    "example": "65530"
                }
            }
        },
        "model.GetAvailableRegionZonesListRequest": {
            "type": "object",
            "required": [
                "cspSpecNames",
                "provider"
            ],
            "properties": {
                "cspSpecNames": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "ecs.t5.large",
                        "ecs.t5.medium"
                    ]
                },
                "provider": {
                    "type": "string",
                    "example": "alibaba"
                }
            }
        },
        "model.GetAvailableRegionZonesRequest": {
            "type": "object",
            "required": [
                "cspSpecName",
                "provider"
            ],
            "properties": {
                "cspSpecName": {
                    "type": "string",
                    "example": "ecs.t5.large"
                },
                "provider": {
                    "type": "string",
                    "example": "alibaba"
                }
            }
        },
        "model.HandlingCommandCountResponse": {
            "type": "object",
            "properties": {
                "handlingCount": {
                    "description": "HandlingCount is the number of commands currently in 'Handling' status",
                    "type": "integer",
                    "example": 3
                },
                "vmId": {
                    "description": "VmId is the VM identifier",
                    "type": "string",
                    "example": "g1-1"
                }
            }
        },
        "model.IID": {
            "type": "object",
            "required": [
                "NameId",
                "SystemId"
            ],
            "properties": {
                "NameId": {
                    "type": "string",
                    "example": "user-defined-name"
                },
                "SystemId": {
                    "type": "string",
                    "example": "csp-defined-id"
                }
            }
        },
        "model.IdList": {
            "type": "object",
            "properties": {
                "output": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "model.IdNameInDetailInfo": {
            "type": "object",
            "properties": {
                "idInCsp": {
                    "type": "string"
                },
                "idInSp": {
                    "type": "string"
                },
                "idInTb": {
                    "type": "string"
                },
                "nameInCsp": {
                    "type": "string"
                }
            }
        },
        "model.ImageFetchOption": {
            "type": "object",
            "properties": {
                "excludedProviders": {
                    "description": "providers need to be excluded from the image fetching operation (ex: [\"azure\"])",
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "azure"
                    ]
                },
                "regionAgnosticProviders": {
                    "description": "providers that are not region-specific (ex: [\"gcp\"])",
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "gcp",
                        "tencent"
                    ]
                }
            }
        },
        "model.ImageInfo": {
            "type": "object",
            "properties": {
                "connectionName": {
                    "type": "string"
                },
                "creationDate": {
                    "type": "string"
                },
                "cspImageName": {
                    "type": "string",
                    "example": "csp-06eb41e14121c550a"
                },
                "description": {
                    "type": "string"
                },
                "details": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.KeyValue"
                    }
                },
                "fetchedTime": {
                    "type": "string"
                },
                "id": {
                    "type": "string",
                    "example": "aws-ap-southeast-1"
                },
                "imageStatus": {
                    "description": "Available, Deprecated, NA",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.ImageStatus"
                        }
                    ],
                    "example": "Available"
                },
                "infraType": {
                    "description": "vm|k8s|kubernetes|container, etc.",
                    "type": "string"
                },
                "isBasicImage": {
                    "type": "boolean",
                    "default": false
                },
                "isGPUImage": {
                    "type": "boolean",
                    "default": false
                },
                "isKubernetesImage": {
                    "type": "boolean",
                    "default": false
                },
                "name": {
                    "type": "string",
                    "example": "aws-ap-southeast-1"
                },
                "namespace": {
                    "description": "Composite primary key",
                    "type": "string",
                    "example": "default"
                },
                "osArchitecture": {
                    "description": "arm64, x86_64 etc.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.OSArchitecture"
                        }
                    ],
                    "example": "x86_64"
                },
                "osDiskSizeGB": {
                    "description": "10, 50, 100 etc.",
                    "type": "number",
                    "example": 50
                },
                "osDiskType": {
                    "description": "ebs, HDD, etc.",
                    "type": "string",
                    "example": "HDD"
                },
                "osDistribution": {
                    "description": "Ubuntu 22.04~, CentOS 8 etc.",
                    "type": "string",
                    "example": "Ubuntu 22.04~"
                },
                "osPlatform": {
                    "description": "Linux/UNIX, Windows, NA",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.OSPlatform"
                        }
                    ],
                    "example": "Linux/UNIX"
                },
                "osType": {
                    "type": "string",
                    "example": "ubuntu 22.04"
                },
                "providerName": {
                    "type": "string"
                },
                "regionList": {
                    "description": "Array field for supporting multiple regions",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "systemLabel": {
                    "type": "string",
                    "example": "Managed by CB-Tumblebug"
                },
                "uid": {
                    "type": "string",
                    "example": "wef12awefadf1221edcf"
                }
            }
        },
        "model.ImageReq": {
            "type": "object",
            "required": [
                "connectionName",
                "cspImageName",
                "name"
            ],
            "properties": {
                "connectionName": {
                    "type": "string"
                },
                "cspImageName": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "model.ImageRiskInfo": {
            "type": "object",
            "properties": {
                "hasFailedWithSpec": {
                    "description": "HasFailedWithSpec indicates if this image has failed with this spec before",
                    "type": "boolean"
                },
                "hasSucceededWithSpec": {
                    "description": "HasSucceededWithSpec indicates if this image has succeeded with this spec before",
                    "type": "boolean"
                },
                "isNewCombination": {
                    "description": "IsNewCombination indicates if this spec+image combination has never been tried",
                    "type": "boolean"
                },
                "level": {
                    "description": "Level is the risk level: \"low\", \"medium\", \"high\"",
                    "type": "string"
                },
                "message": {
                    "description": "Message explains the image-specific risk reasoning",
                    "type": "string"
                }
            }
        },
        "model.ImageStatus": {
            "type": "string",
            "enum": [
                "Available",
                "Unavailable",
                "Deprecated",
                "NA"
            ],
            "x-enum-varnames": [
                "ImageAvailable",
                "ImageUnavailable",
                "ImageDeprecated",
                "ImageNA"
            ]
        },
        "model.InspectResource": {
            "type": "object",
            "properties": {
                "connectionName": {
                    "type": "string"
                },
                "resourceOverview": {
                    "$ref": "#/definitions/model.ResourceCountOverview"
                },
                "resourceType": {
                    "type": "string"
                },
                "resources": {
                    "$ref": "#/definitions/model.ResourcesByManageType"
                },
                "systemMessage": {
                    "type": "string"
                }
            }
        },
        "model.InspectResourceAllResult": {
            "type": "object",
            "properties": {
                "availableConnection": {
                    "type": "integer"
                },
                "cspOnlyOverview": {
                    "$ref": "#/definitions/model.inspectOverview"
                },
                "elapsedTime": {
                    "type": "integer"
                },
                "inspectResult": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.InspectResourceResult"
                    }
                },
                "registeredConnection": {
                    "type": "integer"
                },
                "tumblebugOverview": {
                    "$ref": "#/definitions/model.inspectOverview"
                }
            }
        },
        "model.InspectResourceResult": {
            "type": "object",
            "properties": {
                "connectionName": {
                    "type": "string"
                },
                "cspOnlyOverview": {
                    "$ref": "#/definitions/model.inspectOverview"
                },
                "elapsedTime": {
                    "type": "integer"
                },
                "systemMessage": {
                    "type": "string"
                },
                "tumblebugOverview": {
                    "$ref": "#/definitions/model.inspectOverview"
                }
            }
        },
        "model.InspectResourcesRequest": {
            "type": "object",
            "properties": {
                "connectionName": {
                    "type": "string",
                    "example": "aws-ap-southeast-1"
                },
                "resourceType": {
                    "type": "string",
                    "enum": [
                        "vNet",
                        "subnet",
                        "securityGroup",
                        "sshKey",
                        "vm"
                    ],
                    "example": "vNet"
                }
            }
        },
        "model.K8sAccessInfo": {
            "type": "object",
            "properties": {
                "endpoint": {
                    "type": "string",
                    "example": "http://1.2.3.4:6443"
                },
                "kubeconfig": {
                    "type": "string",
                    "example": "apiVersion: v1\nclusters:\n- cluster:\n certificate-authority-data: LS0..."
                }
            }
        },
        "model.K8sAddonsInfo": {
            "type": "object",
            "properties": {
                "keyValueList": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.KeyValue"
                    }
                }
            }
        },
        "model.K8sClusterAssetInfo": {
            "type": "object",
            "properties": {
                "k8s_cluster": {
                    "type": "object",
                    "additionalProperties": {
                        "$ref": "#/definitions/model.K8sClusterDetail"
                    }
                }
            }
        },
        "model.K8sClusterConnectionConfigCandidatesReq": {
            "type": "object",
            "required": [
                "specId"
            ],
            "properties": {
                "specId": {
                    "description": "SpecId is field for id of a spec in common namespace",
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "tencent+ap-seoul+S2.MEDIUM4"
                    ]
                }
            }
        },
        "model.K8sClusterContainerCmdReq": {
            "type": "object",
            "required": [
                "command"
            ],
            "properties": {
                "command": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "echo hello"
                    ]
                }
            }
        },
        "model.K8sClusterContainerCmdResult": {
            "type": "object",
            "properties": {
                "command": {
                    "type": "string"
                },
                "err": {},
                "stderr": {
                    "type": "string"
                },
                "stdout": {
                    "type": "string"
                }
            }
        },
        "model.K8sClusterContainerCmdResults": {
            "type": "object",
            "properties": {
                "results": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.K8sClusterContainerCmdResult"
                    }
                }
            }
        },
        "model.K8sClusterDetail": {
            "type": "object",
            "properties": {
                "node_image_designation": {
                    "type": "boolean"
                },
                "node_images": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.K8sClusterNodeImageDetail"
                    }
                },
                "nodegroup_naming_rule": {
                    "type": "string"
                },
                "nodegroups_on_creation": {
                    "type": "boolean"
                },
                "required_subnet_count": {
                    "type": "integer"
                },
                "root_disks": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.K8sClusterRootDiskDetail"
                    }
                },
                "versions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.K8sClusterVersionDetail"
                    }
                }
            }
        },
        "model.K8sClusterDynamicReq": {
            "type": "object",
            "required": [
                "imageId",
                "name",
                "specId"
            ],
            "properties": {
                "connectionName": {
                    "description": "if ConnectionName is given, the VM tries to use associtated credential.\nif not, it will use predefined ConnectionName in Spec objects",
                    "type": "string",
                    "default": "tencent-ap-seoul"
                },
                "description": {
                    "type": "string",
                    "example": "Description"
                },
                "desiredNodeSize": {
                    "type": "string",
                    "default": "1",
                    "example": "1"
                },
                "imageId": {
                    "description": "ImageId is field for id of a image in common namespace",
                    "type": "string",
                    "example": "default, tencent+ap-seoul+ubuntu20.04"
                },
                "label": {
                    "description": "Label is for describing the object by keywords",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "maxNodeSize": {
                    "type": "string",
                    "default": "2",
                    "example": "3"
                },
                "minNodeSize": {
                    "type": "string",
                    "default": "1",
                    "example": "1"
                },
                "name": {
                    "description": "K8sCluster name if it is not empty.",
                    "type": "string",
                    "example": "k8scluster01"
                },
                "nodeGroupName": {
                    "description": "NodeGroup name if it is not empty",
                    "type": "string",
                    "example": "k8sng01"
                },
                "onAutoScaling": {
                    "type": "string",
                    "default": "true",
                    "example": "true"
                },
                "rootDiskSize": {
                    "description": "\"default\", Integer (GB): [\"50\", ..., \"1000\"]",
                    "type": "string",
                    "default": "default",
                    "example": "default, 30, 42, ..."
                },
                "rootDiskType": {
                    "description": "\"\", \"default\", \"TYPE1\", AWS: [\"standard\", \"gp2\", \"gp3\"], Azure: [\"PremiumSSD\", \"StandardSSD\", \"StandardHDD\"], GCP: [\"pd-standard\", \"pd-balanced\", \"pd-ssd\", \"pd-extreme\"], ALIBABA: [\"cloud_efficiency\", \"cloud\", \"cloud_essd\"], TENCENT: [\"CLOUD_PREMIUM\", \"CLOUD_SSD\"]",
                    "type": "string",
                    "default": "default",
                    "example": "default, TYPE1, ..."
                },
                "specId": {
                    "description": "SpecId is field for id of a spec in common namespace",
                    "type": "string",
                    "example": "tencent+ap-seoul+S2.MEDIUM4"
                },
                "version": {
                    "description": "K8s Clsuter version",
                    "type": "string",
                    "example": "1.29"
                }
            }
        },
        "model.K8sClusterInfo": {
            "type": "object",
            "properties": {
                "accessInfo": {
                    "$ref": "#/definitions/model.K8sAccessInfo"
                },
                "addons": {
                    "$ref": "#/definitions/model.K8sAddonsInfo"
                },
                "connectionConfig": {
                    "description": "ConnectionConfig shows connection info to cloud service provider",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.ConnConfig"
                        }
                    ]
                },
                "connectionName": {
                    "type": "string",
                    "example": "alibaba-ap-northeast-2"
                },
                "createdTime": {
                    "type": "string",
                    "example": "1970-01-01T00:00:00.00Z"
                },
                "cspResourceId": {
                    "description": "CspResourceId is resource identifier managed by CSP",
                    "type": "string",
                    "example": "csp-06eb41e14121c550a"
                },
                "cspResourceName": {
                    "description": "CspResourceName is name assigned to the CSP resource. This name is internally used to handle the resource.",
                    "type": "string",
                    "example": "we12fawefadf1221edcf"
                },
                "description": {
                    "type": "string",
                    "example": "My K8sCluster"
                },
                "id": {
                    "description": "Id is unique identifier for the object, same as Name",
                    "type": "string",
                    "example": "k8scluster01"
                },
                "k8sNodeGroupList": {
                    "description": "K8sNodeGroupList is for describing network information about the cluster",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.K8sNodeGroupInfo"
                    }
                },
                "keyValueList": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.KeyValue"
                    }
                },
                "label": {
                    "description": "Label is for describing the object by keywords",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "name": {
                    "description": "Name is human-readable string to represent the object",
                    "type": "string",
                    "example": "k8scluster01"
                },
                "network": {
                    "description": "Network is for describing network information about the cluster",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.K8sClusterNetworkInfo"
                        }
                    ]
                },
                "resourceType": {
                    "description": "ResourceType is the type of the resource",
                    "type": "string"
                },
                "spiderViewK8sClusterDetail": {
                    "$ref": "#/definitions/model.SpiderClusterInfo"
                },
                "status": {
                    "description": "Creating, Active, Inactive, Updating, Deleting",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.K8sClusterStatus"
                        }
                    ],
                    "example": "Active"
                },
                "systemLabel": {
                    "description": "SystemLabel is for describing the Resource in a keyword (any string can be used) for special System purpose",
                    "type": "string",
                    "example": "Managed by CB-Tumblebug"
                },
                "systemMessage": {
                    "description": "Latest system message such as error message",
                    "type": "string",
                    "example": "Failed because ..."
                },
                "uid": {
                    "description": "Uid is universally unique identifier for the object, used for labelSelector",
                    "type": "string",
                    "example": "wef12awefadf1221edcf"
                },
                "version": {
                    "description": "Version is for kubernetes version",
                    "type": "string",
                    "example": "1.30.1"
                }
            }
        },
        "model.K8sClusterNetworkInfo": {
            "type": "object",
            "properties": {
                "keyValueList": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.KeyValue"
                    }
                },
                "securityGroupIds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "sg-01"
                    ]
                },
                "subnetIds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "subnet-01"
                    ]
                },
                "vNetId": {
                    "type": "string",
                    "example": "vpc-01"
                }
            }
        },
        "model.K8sClusterNodeGroupsOnCreation": {
            "type": "object",
            "properties": {
                "result": {
                    "type": "string",
                    "example": "true"
                }
            }
        },
        "model.K8sClusterNodeImageDesignation": {
            "type": "object",
            "properties": {
                "result": {
                    "type": "string",
                    "example": "true"
                }
            }
        },
        "model.K8sClusterNodeImageDetail": {
            "type": "object",
            "properties": {
                "availables": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.K8sClusterNodeImageDetailAvailable"
                    }
                },
                "region": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "model.K8sClusterNodeImageDetailAvailable": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "model.K8sClusterReq": {
            "type": "object",
            "required": [
                "connectionName",
                "name",
                "securityGroupIds",
                "subnetIds",
                "vNetId"
            ],
            "properties": {
                "connectionName": {
                    "description": "Namespace      string ` + "`" + `json:\"namespace\" validate:\"required\" example:\"default\"` + "`" + `",
                    "type": "string",
                    "example": "alibaba-ap-northeast-2"
                },
                "cspResourceId": {
                    "description": "Fields for \"Register existing K8sCluster\" feature\n@description CspResourceId is required to register a k8s cluster from CSP (option=register)",
                    "type": "string",
                    "example": "required when option is register"
                },
                "description": {
                    "type": "string",
                    "example": "My K8sCluster"
                },
                "k8sNodeGroupList": {
                    "description": "(3) NodeGroupInfo List",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.K8sNodeGroupReq"
                    }
                },
                "label": {
                    "description": "Label is for describing the object by keywords",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "name": {
                    "description": "(1) K8sCluster Info",
                    "type": "string",
                    "example": "k8scluster01"
                },
                "securityGroupIds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "sg-01"
                    ]
                },
                "subnetIds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "subnet-01"
                    ]
                },
                "systemLabel": {
                    "description": "SystemLabel is for describing the k8scluster in a keyword (any string can be used) for special System purpose",
                    "type": "string",
                    "example": ""
                },
                "vNetId": {
                    "description": "(2) Network Info",
                    "type": "string",
                    "example": "vpc-01"
                },
                "version": {
                    "type": "string",
                    "example": "1.30.1-aliyun.1"
                }
            }
        },
        "model.K8sClusterRequiredSubnetCount": {
            "type": "object",
            "properties": {
                "result": {
                    "type": "string",
                    "example": "1"
                }
            }
        },
        "model.K8sClusterRootDiskDetail": {
            "type": "object",
            "properties": {
                "region": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "size": {
                    "$ref": "#/definitions/model.K8sClusterRootDiskDetailSize"
                },
                "type": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.K8sClusterRootDiskDetailType"
                    }
                }
            }
        },
        "model.K8sClusterRootDiskDetailSize": {
            "type": "object",
            "properties": {
                "max": {
                    "type": "integer"
                },
                "min": {
                    "type": "integer"
                }
            }
        },
        "model.K8sClusterRootDiskDetailType": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "model.K8sClusterStatus": {
            "type": "string",
            "enum": [
                "Creating",
                "Active",
                "Inactive",
                "Updating",
                "Deleting"
            ],
            "x-enum-varnames": [
                "K8sClusterCreating",
                "K8sClusterActive",
                "K8sClusterInactive",
                "K8sClusterUpdating",
                "K8sClusterDeleting"
            ]
        },
        "model.K8sClusterVersionDetail": {
            "type": "object",
            "properties": {
                "availables": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.K8sClusterVersionDetailAvailable"
                    }
                },
                "region": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "model.K8sClusterVersionDetailAvailable": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "string",
                    "example": "1.30.1-aliyun.1"
                },
                "name": {
                    "type": "string",
                    "example": "1.30"
                }
            }
        },
        "model.K8sNodeGroupDynamicReq": {
            "type": "object",
            "required": [
                "imageId",
                "name",
                "specId"
            ],
            "properties": {
                "description": {
                    "type": "string",
                    "example": "Description"
                },
                "desiredNodeSize": {
                    "type": "string",
                    "default": "1",
                    "example": "1"
                },
                "imageId": {
                    "description": "ImageId is field for id of a image in common namespace",
                    "type": "string",
                    "example": "default, tencent+ap-seoul+ubuntu20.04"
                },
                "label": {
                    "description": "Label is for describing the object by keywords",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "maxNodeSize": {
                    "type": "string",
                    "default": "2",
                    "example": "3"
                },
                "minNodeSize": {
                    "type": "string",
                    "default": "1",
                    "example": "1"
                },
                "name": {
                    "description": "K8sNodeGroup name if it is not empty.",
                    "type": "string",
                    "example": "k8sng01"
                },
                "onAutoScaling": {
                    "type": "string",
                    "default": "true",
                    "example": "true"
                },
                "rootDiskSize": {
                    "description": "\"default\", Integer (GB): [\"50\", ..., \"1000\"]",
                    "type": "string",
                    "default": "default",
                    "example": "default, 30, 42, ..."
                },
                "rootDiskType": {
                    "description": "\"\", \"default\", \"TYPE1\", AWS: [\"standard\", \"gp2\", \"gp3\"], Azure: [\"PremiumSSD\", \"StandardSSD\", \"StandardHDD\"], GCP: [\"pd-standard\", \"pd-balanced\", \"pd-ssd\", \"pd-extreme\"], ALIBABA: [\"cloud_efficiency\", \"cloud\", \"cloud_essd\"], TENCENT: [\"CLOUD_PREMIUM\", \"CLOUD_SSD\"]",
                    "type": "string",
                    "default": "default",
                    "example": "default, TYPE1, ..."
                },
                "specId": {
                    "description": "SpecId is field for id of a spec in common namespace",
                    "type": "string",
                    "example": "tencent+ap-seoul+S2.MEDIUM4"
                }
            }
        },
        "model.K8sNodeGroupInfo": {
            "type": "object",
            "properties": {
                "cspResourceId": {
                    "description": "CspResourceId is resource identifier managed by CSP",
                    "type": "string",
                    "example": "csp-06eb41e14121c550a"
                },
                "cspResourceName": {
                    "description": "CspResourceName is name assigned to the CSP resource. This name is internally used to handle the resource.",
                    "type": "string",
                    "example": "we12fawefadf1221edcf"
                },
                "desiredNodeSize": {
                    "type": "integer"
                },
                "id": {
                    "description": "Id is unique identifier for the object",
                    "type": "string",
                    "example": "aws-ap-southeast-1"
                },
                "imageId": {
                    "type": "string"
                },
                "k8sNodes": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.K8sNodeInfo"
                    }
                },
                "keyValueList": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.KeyValue"
                    }
                },
                "maxNodeSize": {
                    "type": "integer"
                },
                "minNodeSize": {
                    "type": "integer"
                },
                "name": {
                    "description": "Name is human-readable string to represent the object",
                    "type": "string",
                    "example": "aws-ap-southeast-1"
                },
                "onAutoScaling": {
                    "type": "boolean"
                },
                "rootDiskSize": {
                    "type": "string"
                },
                "rootDiskType": {
                    "type": "string"
                },
                "specId": {
                    "type": "string"
                },
                "spiderViewK8sNodeGroupDetail": {
                    "$ref": "#/definitions/model.SpiderNodeGroupInfo"
                },
                "sshKeyId": {
                    "type": "string"
                },
                "status": {
                    "description": "Creating, Active, Inactive, Updating, Deleting",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.K8sNodeGroupStatus"
                        }
                    ],
                    "example": "Active"
                }
            }
        },
        "model.K8sNodeGroupReq": {
            "type": "object",
            "properties": {
                "description": {
                    "type": "string",
                    "example": "Description"
                },
                "desiredNodeSize": {
                    "type": "string",
                    "example": "1"
                },
                "imageId": {
                    "type": "string",
                    "example": "image-01"
                },
                "label": {
                    "description": "Label is for describing the object by keywords",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "maxNodeSize": {
                    "type": "string",
                    "example": "3"
                },
                "minNodeSize": {
                    "type": "string",
                    "example": "1"
                },
                "name": {
                    "type": "string",
                    "example": "k8sng01"
                },
                "onAutoScaling": {
                    "description": "autoscale config.",
                    "type": "string",
                    "example": "true"
                },
                "rootDiskSize": {
                    "description": "\"default\", Integer (GB): [\"50\", ..., \"1000\"]",
                    "type": "string",
                    "example": "40"
                },
                "rootDiskType": {
                    "description": "\"\", \"default\", \"TYPE1\", AWS: [\"standard\", \"gp2\", \"gp3\"], Azure: [\"PremiumSSD\", \"StandardSSD\", \"StandardHDD\"], GCP: [\"pd-standard\", \"pd-balanced\", \"pd-ssd\", \"pd-extreme\"], ALIBABA: [\"cloud_efficiency\", \"cloud\", \"cloud_ssd\"], TENCENT: [\"CLOUD_PREMIUM\", \"CLOUD_SSD\"]",
                    "type": "string",
                    "example": "cloud_essd"
                },
                "specId": {
                    "type": "string",
                    "example": "spec-01"
                },
                "sshKeyId": {
                    "type": "string",
                    "example": "sshkey-01"
                }
            }
        },
        "model.K8sNodeGroupStatus": {
            "type": "string",
            "enum": [
                "Creating",
                "Active",
                "Inactive",
                "Updating",
                "Deleting"
            ],
            "x-enum-varnames": [
                "K8sNodeGroupCreating",
                "K8sNodeGroupActive",
                "K8sNodeGroupInactive",
                "K8sNodeGroupUpdating",
                "K8sNodeGroupDeleting"
            ]
        },
        "model.K8sNodeInfo": {
            "type": "object",
            "properties": {
                "cspResourceId": {
                    "description": "CspResourceId is resource identifier managed by CSP",
                    "type": "string",
                    "example": "csp-06eb41e14121c550a"
                },
                "cspResourceName": {
                    "description": "CspResourceName is name assigned to the CSP resource. This name is internally used to handle the resource.",
                    "type": "string",
                    "example": "we12fawefadf1221edcf"
                }
            }
        },
        "model.KeyValue": {
            "type": "object",
            "properties": {
                "key": {
                    "type": "string"
                },
                "value": {
                    "type": "string"
                }
            }
        },
        "model.KeyWithEncryptedValue": {
            "type": "object",
            "properties": {
                "key": {
                    "description": "Key for the value",
                    "type": "string"
                },
                "value": {
                    "description": "Should be encrypted by the public key issued by GET /credential/publicKey",
                    "type": "string"
                }
            }
        },
        "model.Label": {
            "type": "object",
            "properties": {
                "labels": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                }
            }
        },
        "model.LabelInfo": {
            "type": "object",
            "properties": {
                "labels": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "resourceKey": {
                    "type": "string"
                }
            }
        },
        "model.Location": {
            "type": "object",
            "properties": {
                "display": {
                    "type": "string"
                },
                "latitude": {
                    "type": "number"
                },
                "longitude": {
                    "type": "number"
                }
            }
        },
        "model.McNetConfigurationDetails": {
            "type": "object",
            "properties": {
                "csp": {
                    "type": "string"
                },
                "regions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.RegionDetails"
                    }
                }
            }
        },
        "model.McNlbInfo": {
            "type": "object",
            "properties": {
                "deploymentLog": {
                    "$ref": "#/definitions/model.MciSshCmdResult"
                },
                "mcNlbHostInfo": {
                    "$ref": "#/definitions/model.MciInfo"
                },
                "mciAccessInfo": {
                    "$ref": "#/definitions/model.MciAccessInfo"
                }
            }
        },
        "model.MciAccessInfo": {
            "type": "object",
            "properties": {
                "mciId": {
                    "type": "string"
                },
                "mciNlbListener": {
                    "$ref": "#/definitions/model.MciAccessInfo"
                },
                "mciSubGroupAccessInfo": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.MciSubGroupAccessInfo"
                    }
                }
            }
        },
        "model.MciAssociatedResourceList": {
            "type": "object",
            "properties": {
                "connectionNames": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "cspSubnetIds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "cspVNetIds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "cspVmIds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "cspVmNames": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "dataDiskIds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "imageIds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "providerNames": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "securityGroupIds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "specIds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "sshKeyIds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "subGroupIds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "subnetIds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "vNetIds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "vmIds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "model.MciCmdReq": {
            "type": "object",
            "required": [
                "command"
            ],
            "properties": {
                "command": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "client_ip=$(echo $SSH_CLIENT | awk '{print $1}'); echo SSH client IP is: $client_ip"
                    ]
                },
                "userName": {
                    "type": "string",
                    "example": "cb-user"
                }
            }
        },
        "model.MciConnectionConfigCandidatesReq": {
            "type": "object",
            "required": [
                "specId"
            ],
            "properties": {
                "specId": {
                    "description": "SpecId is field for id of a spec in common namespace",
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "aws+ap-northeast-2+t2.small",
                        "gcp+us-west1+g1-small"
                    ]
                }
            }
        },
        "model.MciCreationErrors": {
            "type": "object",
            "properties": {
                "failedVmCount": {
                    "description": "FailedVmCount is the number of VMs that failed to be created",
                    "type": "integer"
                },
                "failureHandlingStrategy": {
                    "description": "FailureHandlingStrategy indicates how failures were handled",
                    "type": "string"
                },
                "successfulVmCount": {
                    "description": "SuccessfulVmCount is the number of VMs that were successfully created",
                    "type": "integer"
                },
                "totalVmCount": {
                    "description": "TotalVmCount is the total number of VMs that were supposed to be created",
                    "type": "integer"
                },
                "vmCreationErrors": {
                    "description": "VmCreationErrors contains errors from actual VM creation phase",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.VmCreationError"
                    }
                },
                "vmObjectCreationErrors": {
                    "description": "VmObjectCreationErrors contains errors from VM object creation phase",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.VmCreationError"
                    }
                }
            }
        },
        "model.MciDynamicReq": {
            "type": "object",
            "required": [
                "name",
                "subGroups"
            ],
            "properties": {
                "description": {
                    "type": "string",
                    "example": "Made in CB-TB"
                },
                "installMonAgent": {
                    "description": "InstallMonAgent Option for CB-Dragonfly agent installation ([yes/no] default:no)",
                    "type": "string",
                    "default": "no",
                    "enum": [
                        "yes",
                        "no"
                    ],
                    "example": "no"
                },
                "label": {
                    "description": "Label is for describing the object by keywords",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "name": {
                    "type": "string",
                    "example": "mci01"
                },
                "policyOnPartialFailure": {
                    "description": "PolicyOnPartialFailure determines how to handle VM creation failures\n- \"continue\": Continue with partial MCI creation (default)\n- \"rollback\": Cleanup entire MCI when any VM fails\n- \"refine\": Mark failed VMs for refinement",
                    "type": "string",
                    "default": "continue",
                    "enum": [
                        "continue",
                        "rollback",
                        "refine"
                    ],
                    "example": "continue"
                },
                "postCommand": {
                    "description": "PostCommand is for the command to bootstrap the VMs",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.MciCmdReq"
                        }
                    ]
                },
                "subGroups": {
                    "description": "SubGroups is array of VM requests for multi-cloud infrastructure\nExample: Multiple VM groups across different CSPs\n[\n  {\n    \"name\": \"aws-group\",\n    \"subGroupSize\": \"3\",\n    \"specId\": \"aws+ap-northeast-2+t3.nano\",\n    \"imageId\": \"ami-01f71f215b23ba262\",\n    \"rootDiskSize\": \"50\",\n    \"label\": {\"role\": \"worker\", \"csp\": \"aws\"}\n  },\n  {\n    \"name\": \"azure-group\",\n    \"subGroupSize\": \"2\",\n    \"specId\": \"azure+koreasouth+standard_b1s\",\n    \"imageId\": \"Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202505210\",\n    \"rootDiskSize\": \"50\",\n    \"label\": {\"role\": \"head\", \"csp\": \"azure\"}\n  },\n  {\n    \"name\": \"gcp-group\",\n    \"subGroupSize\": \"1\",\n    \"specId\": \"gcp+asia-northeast3+g1-small\",\n    \"imageId\": \"https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/ubuntu-2204-jammy-v20250712\",\n    \"rootDiskSize\": \"50\",\n    \"label\": {\"role\": \"test\", \"csp\": \"gcp\"}\n  }\n]",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.CreateSubGroupDynamicReq"
                    }
                },
                "systemLabel": {
                    "description": "SystemLabel is for describing the mci in a keyword (any string can be used) for special System purpose",
                    "type": "string",
                    "example": ""
                }
            }
        },
        "model.MciHandlingCommandCountResponse": {
            "type": "object",
            "properties": {
                "mciId": {
                    "description": "MciId is the MCI identifier",
                    "type": "string",
                    "example": "mci01"
                },
                "totalHandlingCount": {
                    "description": "TotalHandlingCount is the total number of handling commands across all VMs in the MCI",
                    "type": "integer",
                    "example": 3
                },
                "vmHandlingCounts": {
                    "description": "VmHandlingCounts is a map of VM ID to handling command count",
                    "type": "object",
                    "additionalProperties": {
                        "type": "integer"
                    }
                }
            }
        },
        "model.MciInfo": {
            "type": "object",
            "properties": {
                "configureCloudAdaptiveNetwork": {
                    "description": "ConfigureCloudAdaptiveNetwork is an option to configure Cloud Adaptive Network (CLADNet) ([yes/no] default:yes)",
                    "type": "string",
                    "default": "no",
                    "enum": [
                        "yes",
                        "no"
                    ],
                    "example": "yes"
                },
                "creationErrors": {
                    "description": "CreationErrors contains information about VM creation failures (if any)",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.MciCreationErrors"
                        }
                    ]
                },
                "description": {
                    "type": "string"
                },
                "id": {
                    "description": "Id is unique identifier for the object",
                    "type": "string",
                    "example": "aws-ap-southeast-1"
                },
                "installMonAgent": {
                    "description": "InstallMonAgent Option for CB-Dragonfly agent installation ([yes/no] default:no)",
                    "type": "string",
                    "default": "no",
                    "enum": [
                        "yes",
                        "no"
                    ],
                    "example": "no"
                },
                "label": {
                    "description": "Label is for describing the object by keywords",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "name": {
                    "description": "Name is human-readable string to represent the object",
                    "type": "string",
                    "example": "aws-ap-southeast-1"
                },
                "newVmList": {
                    "description": "List of IDs for new VMs. Return IDs if the VMs are newly added. This field should be used for return body only.",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "placementAlgo": {
                    "type": "string"
                },
                "postCommand": {
                    "description": "PostCommand is for the command to bootstrap the VMs",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.MciCmdReq"
                        }
                    ]
                },
                "postCommandResult": {
                    "description": "PostCommandResult is the result of the command for bootstraping the VMs",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.MciSshCmdResult"
                        }
                    ]
                },
                "resourceType": {
                    "description": "ResourceType is the type of the resource",
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "statusCount": {
                    "$ref": "#/definitions/model.StatusCountInfo"
                },
                "systemLabel": {
                    "description": "SystemLabel is for describing the mci in a keyword (any string can be used) for special System purpose",
                    "type": "string",
                    "example": "Managed by CB-Tumblebug"
                },
                "systemMessage": {
                    "description": "Latest system message such as error message",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "targetAction": {
                    "type": "string"
                },
                "targetStatus": {
                    "type": "string"
                },
                "uid": {
                    "description": "Uid is universally unique identifier for the object, used for labelSelector",
                    "type": "string",
                    "example": "wef12awefadf1221edcf"
                },
                "vm": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.VmInfo"
                    }
                }
            }
        },
        "model.MciPolicyInfo": {
            "type": "object",
            "properties": {
                "Id": {
                    "description": "MCI Id (generated ID by the Name)",
                    "type": "string"
                },
                "Name": {
                    "description": "MCI Name (for request)",
                    "type": "string"
                },
                "actionLog": {
                    "type": "string"
                },
                "description": {
                    "type": "string",
                    "example": "Description"
                },
                "policy": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.Policy"
                    }
                }
            }
        },
        "model.MciPolicyReq": {
            "type": "object",
            "properties": {
                "description": {
                    "type": "string",
                    "example": "Description"
                },
                "policy": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.Policy"
                    }
                }
            }
        },
        "model.MciReq": {
            "type": "object",
            "required": [
                "name",
                "subGroups"
            ],
            "properties": {
                "description": {
                    "type": "string",
                    "example": "Made in CB-TB"
                },
                "installMonAgent": {
                    "description": "InstallMonAgent Option for CB-Dragonfly agent installation ([yes/no] default:yes)",
                    "type": "string",
                    "default": "no",
                    "enum": [
                        "yes",
                        "no"
                    ],
                    "example": "no"
                },
                "label": {
                    "description": "Label is for describing the object by keywords",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "name": {
                    "type": "string",
                    "example": "mci01"
                },
                "placementAlgo": {
                    "type": "string"
                },
                "policyOnPartialFailure": {
                    "description": "PolicyOnPartialFailure determines how to handle VM creation failures\n- \"continue\": Continue with partial MCI creation (default)\n- \"rollback\": Cleanup entire MCI when any VM fails\n- \"refine\": Mark failed VMs for refinement",
                    "type": "string",
                    "default": "continue",
                    "enum": [
                        "continue",
                        "rollback",
                        "refine"
                    ],
                    "example": "continue"
                },
                "postCommand": {
                    "description": "PostCommand is for the command to bootstrap the VMs",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.MciCmdReq"
                        }
                    ]
                },
                "subGroups": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.CreateSubGroupReq"
                    }
                },
                "systemLabel": {
                    "description": "SystemLabel is for describing the mci in a keyword (any string can be used) for special System purpose",
                    "type": "string",
                    "example": ""
                }
            }
        },
        "model.MciSshCmdResult": {
            "type": "object",
            "properties": {
                "results": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.SshCmdResult"
                    }
                }
            }
        },
        "model.MciSshCmdResultForAPI": {
            "type": "object",
            "properties": {
                "results": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.SshCmdResultForAPI"
                    }
                }
            }
        },
        "model.MciStatusInfo": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "string"
                },
                "installMonAgent": {
                    "description": "InstallMonAgent Option for CB-Dragonfly agent installation ([yes/no] default:yes)",
                    "type": "string",
                    "example": "[yes, no]"
                },
                "label": {
                    "description": "Label is for describing the object by keywords",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "masterIp": {
                    "type": "string",
                    "example": "32.201.134.113"
                },
                "masterSSHPort": {
                    "type": "string"
                },
                "masterVmId": {
                    "type": "string",
                    "example": "vm-asiaeast1-cb-01"
                },
                "name": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "statusCount": {
                    "$ref": "#/definitions/model.StatusCountInfo"
                },
                "systemLabel": {
                    "description": "SystemLabel is for describing the mci in a keyword (any string can be used) for special System purpose",
                    "type": "string",
                    "example": "Managed by CB-Tumblebug"
                },
                "targetAction": {
                    "type": "string"
                },
                "targetStatus": {
                    "type": "string"
                },
                "vm": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.VmStatusInfo"
                    }
                }
            }
        },
        "model.MciSubGroupAccessInfo": {
            "type": "object",
            "properties": {
                "bastionVmId": {
                    "type": "string"
                },
                "mciVmAccessInfo": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.MciVmAccessInfo"
                    }
                },
                "nlbListener": {
                    "$ref": "#/definitions/model.NLBListenerInfo"
                },
                "subGroupId": {
                    "type": "string"
                }
            }
        },
        "model.MciVmAccessInfo": {
            "type": "object",
            "properties": {
                "connectionConfig": {
                    "$ref": "#/definitions/model.ConnConfig"
                },
                "privateIP": {
                    "type": "string"
                },
                "privateKey": {
                    "type": "string"
                },
                "publicIP": {
                    "type": "string"
                },
                "sshPort": {
                    "type": "string"
                },
                "vmId": {
                    "type": "string"
                },
                "vmUserName": {
                    "type": "string"
                },
                "vmUserPassword": {
                    "type": "string"
                }
            }
        },
        "model.MonResultSimple": {
            "type": "object",
            "properties": {
                "err": {
                    "type": "string"
                },
                "metric": {
                    "type": "string"
                },
                "value": {
                    "type": "string"
                },
                "vmId": {
                    "type": "string"
                }
            }
        },
        "model.MonResultSimpleResponse": {
            "type": "object",
            "properties": {
                "mciId": {
                    "type": "string"
                },
                "mciMonitoring": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.MonResultSimple"
                    }
                },
                "nsId": {
                    "type": "string"
                }
            }
        },
        "model.NLBAddRemoveVMReq": {
            "type": "object",
            "properties": {
                "targetGroup": {
                    "$ref": "#/definitions/model.NLBTargetGroupInfo"
                }
            }
        },
        "model.NLBHealthCheckerInfo": {
            "type": "object",
            "properties": {
                "interval": {
                    "description": "secs, Interval time between health checks.",
                    "type": "integer",
                    "example": 10
                },
                "keyValueList": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.KeyValue"
                    }
                },
                "port": {
                    "description": "Listener Port or 1-65535",
                    "type": "string",
                    "example": "22"
                },
                "protocol": {
                    "description": "TCP|HTTP|HTTPS",
                    "type": "string",
                    "example": "TCP"
                },
                "threshold": {
                    "description": "num, The number of continuous health checks to change the VM status.",
                    "type": "integer",
                    "example": 3
                },
                "timeout": {
                    "description": "secs, Waiting time to decide an unhealthy VM when no response.",
                    "type": "integer",
                    "example": 10
                }
            }
        },
        "model.NLBHealthCheckerReq": {
            "type": "object",
            "properties": {
                "interval": {
                    "description": "secs, Interval time between health checks.",
                    "type": "string",
                    "example": "default"
                },
                "threshold": {
                    "description": "num, The number of continuous health checks to change the VM status.",
                    "type": "string",
                    "example": "default"
                },
                "timeout": {
                    "description": "secs, Waiting time to decide an unhealthy VM when no response.",
                    "type": "string",
                    "example": "default"
                }
            }
        },
        "model.NLBInfo": {
            "type": "object",
            "properties": {
                "associatedObjectList": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "connectionConfig": {
                    "$ref": "#/definitions/model.ConnConfig"
                },
                "connectionName": {
                    "type": "string"
                },
                "createdTime": {
                    "type": "string"
                },
                "cspResourceId": {
                    "description": "CspResourceId is resource identifier managed by CSP",
                    "type": "string",
                    "example": "csp-06eb41e14121c550a"
                },
                "cspResourceName": {
                    "description": "CspResourceName is name assigned to the CSP resource. This name is internally used to handle the resource.",
                    "type": "string",
                    "example": "we12fawefadf1221edcf"
                },
                "description": {
                    "type": "string"
                },
                "healthChecker": {
                    "$ref": "#/definitions/model.NLBHealthCheckerInfo"
                },
                "id": {
                    "description": "Id is unique identifier for the object",
                    "type": "string",
                    "example": "aws-ap-southeast-1"
                },
                "isAutoGenerated": {
                    "type": "boolean"
                },
                "keyValueList": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.KeyValue"
                    }
                },
                "listener": {
                    "$ref": "#/definitions/model.NLBListenerInfo"
                },
                "location": {
                    "$ref": "#/definitions/model.Location"
                },
                "name": {
                    "description": "Name is human-readable string to represent the object",
                    "type": "string",
                    "example": "aws-ap-southeast-1"
                },
                "resourceType": {
                    "description": "ResourceType is the type of the resource",
                    "type": "string"
                },
                "scope": {
                    "description": "REGION(V) | GLOBAL",
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "systemLabel": {
                    "description": "SystemLabel is for describing the Resource in a keyword (any string can be used) for special System purpose",
                    "type": "string",
                    "example": "Managed by CB-Tumblebug"
                },
                "targetGroup": {
                    "$ref": "#/definitions/model.NLBTargetGroupInfo"
                },
                "type": {
                    "description": "PUBLIC(V) | INTERNAL",
                    "type": "string"
                },
                "uid": {
                    "description": "Uid is universally unique identifier for the object, used for labelSelector",
                    "type": "string",
                    "example": "wef12awefadf1221edcf"
                }
            }
        },
        "model.NLBListenerInfo": {
            "type": "object",
            "properties": {
                "dnsName": {
                    "description": "Optional, Auto Generated and attached",
                    "type": "string",
                    "example": "default-group-cd3.elb.ap-northeast-2.amazonaws.com"
                },
                "ip": {
                    "description": "Auto Generated and attached",
                    "type": "string",
                    "example": "x.x.x.x"
                },
                "keyValueList": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.KeyValue"
                    }
                },
                "port": {
                    "description": "1-65535",
                    "type": "string",
                    "example": "80"
                },
                "protocol": {
                    "description": "TCP|UDP",
                    "type": "string",
                    "example": "TCP"
                }
            }
        },
        "model.NLBListenerReq": {
            "type": "object",
            "properties": {
                "port": {
                    "description": "1-65535",
                    "type": "string",
                    "example": "80"
                },
                "protocol": {
                    "description": "TCP|UDP",
                    "type": "string",
                    "example": "TCP"
                }
            }
        },
        "model.NLBReq": {
            "type": "object",
            "required": [
                "healthChecker",
                "listener",
                "scope",
                "targetGroup",
                "type"
            ],
            "properties": {
                "cspResourceId": {
                    "description": "Existing NLB (used only for option=register)",
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "healthChecker": {
                    "description": "HealthChecker",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.NLBHealthCheckerReq"
                        }
                    ]
                },
                "listener": {
                    "description": "Frontend",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.NLBListenerReq"
                        }
                    ]
                },
                "scope": {
                    "description": "REGION(V) | GLOBAL",
                    "type": "string",
                    "enum": [
                        "REGION",
                        "GLOBAL"
                    ],
                    "example": "REGION"
                },
                "targetGroup": {
                    "description": "Backend",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.NLBTargetGroupReq"
                        }
                    ]
                },
                "type": {
                    "description": "PUBLIC(V) | INTERNAL",
                    "type": "string",
                    "enum": [
                        "PUBLIC",
                        "INTERNAL"
                    ],
                    "example": "PUBLIC"
                }
            }
        },
        "model.NLBTargetGroupInfo": {
            "type": "object",
            "properties": {
                "keyValueList": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.KeyValue"
                    }
                },
                "port": {
                    "description": "Listener Port or 1-65535",
                    "type": "string",
                    "example": "80"
                },
                "protocol": {
                    "description": "TCP|HTTP|HTTPS",
                    "type": "string",
                    "example": "TCP"
                },
                "subGroupId": {
                    "type": "string",
                    "example": "g1"
                },
                "vms": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "model.NLBTargetGroupReq": {
            "type": "object",
            "properties": {
                "port": {
                    "description": "Listener Port or 1-65535",
                    "type": "string",
                    "example": "80"
                },
                "protocol": {
                    "description": "TCP|HTTP|HTTPS",
                    "type": "string",
                    "example": "TCP"
                },
                "subGroupId": {
                    "type": "string",
                    "example": "g1"
                }
            }
        },
        "model.NsInfo": {
            "type": "object",
            "properties": {
                "description": {
                    "type": "string",
                    "example": "Description for this namespace"
                },
                "id": {
                    "description": "Id is unique identifier for the object",
                    "type": "string",
                    "example": "default"
                },
                "name": {
                    "description": "Name is human-readable string to represent the object",
                    "type": "string",
                    "example": "default"
                },
                "resourceType": {
                    "description": "ResourceType is the type of the resource",
                    "type": "string"
                },
                "uid": {
                    "description": "Uid is universally unique identifier for the object, used for labelSelector",
                    "type": "string",
                    "example": "wef12awefadf1221edcf"
                }
            }
        },
        "model.NsReq": {
            "type": "object",
            "properties": {
                "description": {
                    "type": "string",
                    "example": "Description for this namespace"
                },
                "name": {
                    "type": "string",
                    "example": "default"
                }
            }
        },
        "model.OSArchitecture": {
            "type": "string",
            "enum": [
                "arm32",
                "arm64",
                "arm64_mac",
                "x86_32",
                "x86_64",
                "x86_32_mac",
                "x86_64_mac",
                "s390x",
                "NA",
                ""
            ],
            "x-enum-varnames": [
                "ARM32",
                "ARM64",
                "ARM64_MAC",
                "X86_32",
                "X86_64",
                "X86_32_MAC",
                "X86_64_MAC",
                "S390X",
                "ArchitectureNA",
                "ArchitectureUnknown"
            ]
        },
        "model.OSPlatform": {
            "type": "string",
            "enum": [
                "Linux/UNIX",
                "Windows",
                "NA"
            ],
            "x-enum-varnames": [
                "Linux_UNIX",
                "Windows",
                "PlatformNA"
            ]
        },
        "model.Operation": {
            "type": "object",
            "properties": {
                "operand": {
                    "description": "10, 70, 80, 98, ...",
                    "type": "string",
                    "enum": [
                        "4",
                        "8",
                        ".."
                    ],
                    "example": "4"
                },
                "operator": {
                    "description": "\u003e=, \u003c=, ==",
                    "type": "string",
                    "enum": [
                        "\u003e=",
                        "\u003c=",
                        "=="
                    ],
                    "example": "\u003c="
                }
            }
        },
        "model.OperationExample": {
            "type": "object",
            "properties": {
                "operand": {
                    "type": "string",
                    "example": "2"
                },
                "operator": {
                    "type": "string",
                    "example": "\u003e="
                }
            }
        },
        "model.OverallRiskInfo": {
            "type": "object",
            "properties": {
                "level": {
                    "description": "Level is the overall risk level: \"low\", \"medium\", \"high\"",
                    "type": "string"
                },
                "message": {
                    "description": "Message explains the overall risk reasoning",
                    "type": "string"
                },
                "primaryRiskFactor": {
                    "description": "PrimaryRiskFactor indicates what the main risk factor is: \"spec\", \"image\", \"combination\", \"none\"",
                    "type": "string"
                }
            }
        },
        "model.ParameterKeyVal": {
            "type": "object",
            "properties": {
                "key": {
                    "description": "coordinate",
                    "type": "string",
                    "enum": [
                        "coordinateClose",
                        "coordinateWithin",
                        "coordinateFair"
                    ],
                    "example": "coordinateClose"
                },
                "val": {
                    "description": "[\"Latitude,Longitude\",\"12,543\",..,\"31,433\"]",
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "44.146838/-116.411403"
                    ]
                }
            }
        },
        "model.ParameterKeyValExample": {
            "type": "object",
            "properties": {
                "description": {
                    "type": "string",
                    "example": "Find specs closest to given coordinate"
                },
                "key": {
                    "type": "string",
                    "example": "coordinateClose"
                },
                "val": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "37.5665/126.9780"
                    ]
                }
            }
        },
        "model.ParameterOptionDetail": {
            "type": "object",
            "properties": {
                "description": {
                    "type": "string",
                    "example": "Find specs closest to given coordinate (latitude/longitude)"
                },
                "example": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "37.5665/126.9780",
                        "35.6762/139.6503"
                    ]
                },
                "format": {
                    "type": "string",
                    "example": "latitude/longitude"
                },
                "key": {
                    "type": "string",
                    "example": "coordinateClose"
                }
            }
        },
        "model.ParameterOptionsInfo": {
            "type": "object",
            "properties": {
                "latencyParameters": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.ParameterOptionDetail"
                    }
                },
                "locationParameters": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.ParameterOptionDetail"
                    }
                }
            }
        },
        "model.Policy": {
            "type": "object",
            "properties": {
                "autoAction": {
                    "$ref": "#/definitions/model.AutoAction"
                },
                "autoCondition": {
                    "$ref": "#/definitions/model.AutoCondition"
                },
                "status": {
                    "type": "string"
                }
            }
        },
        "model.PriorityCondition": {
            "type": "object",
            "properties": {
                "metric": {
                    "type": "string",
                    "enum": [
                        "location",
                        "cost",
                        "random",
                        "performance",
                        "latency"
                    ],
                    "example": "location"
                },
                "parameter": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.ParameterKeyVal"
                    }
                },
                "weight": {
                    "type": "string",
                    "enum": [
                        "0.1",
                        "0.2",
                        "..."
                    ],
                    "example": "0.3"
                }
            }
        },
        "model.PriorityConditionExample": {
            "type": "object",
            "properties": {
                "description": {
                    "type": "string",
                    "example": "Prioritize by lowest cost"
                },
                "metric": {
                    "type": "string",
                    "example": "cost"
                },
                "parameter": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.ParameterKeyValExample"
                    }
                },
                "weight": {
                    "type": "string",
                    "example": "1.0"
                }
            }
        },
        "model.PriorityInfo": {
            "type": "object",
            "properties": {
                "policy": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.PriorityCondition"
                    }
                }
            }
        },
        "model.PriorityOptionsInfo": {
            "type": "object",
            "properties": {
                "availableMetrics": {
                    "description": "Available metrics for prioritization",
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "cost",
                        "performance",
                        "location",
                        "latency",
                        "random"
                    ]
                },
                "examplePolicies": {
                    "description": "Example priority policies",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.PriorityConditionExample"
                    }
                },
                "parameterOptions": {
                    "description": "Parameter options for location and latency metrics",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.ParameterOptionsInfo"
                        }
                    ]
                }
            }
        },
        "model.ProvisioningEvent": {
            "type": "object",
            "properties": {
                "cspImageName": {
                    "description": "CspImageName is the CSP-specific image name used in this provisioning attempt",
                    "type": "string"
                },
                "errorMessage": {
                    "description": "ErrorMessage contains the error message if provisioning failed",
                    "type": "string"
                },
                "isSuccess": {
                    "description": "IsSuccess indicates if the provisioning was successful",
                    "type": "boolean"
                },
                "mciId": {
                    "description": "MciId is the MCI ID that this VM belongs to",
                    "type": "string"
                },
                "specId": {
                    "description": "SpecId is the VM specification ID",
                    "type": "string"
                },
                "timestamp": {
                    "description": "Timestamp is when this provisioning event occurred",
                    "type": "string"
                },
                "vmName": {
                    "description": "VmName is the name of the VM that was being provisioned",
                    "type": "string"
                }
            }
        },
        "model.ProvisioningLog": {
            "type": "object",
            "properties": {
                "additionalInfo": {
                    "description": "AdditionalInfo contains any additional information about the provisioning attempts",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "connectionName": {
                    "description": "ConnectionName is the connection configuration name",
                    "type": "string"
                },
                "failureCount": {
                    "description": "FailureCount is the total number of provisioning failures",
                    "type": "integer"
                },
                "failureImages": {
                    "description": "FailureImages contains list of CSP image names that failed with this spec",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "failureMessages": {
                    "description": "FailureMessages contains list of failure error messages",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "failureTimestamps": {
                    "description": "FailureTimestamps contains list of failure timestamps",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "lastUpdated": {
                    "description": "LastUpdated is the timestamp of the last log update",
                    "type": "string"
                },
                "providerName": {
                    "description": "ProviderName is the cloud service provider name",
                    "type": "string"
                },
                "regionName": {
                    "description": "RegionName is the region name",
                    "type": "string"
                },
                "specId": {
                    "description": "SpecId is the VM specification ID",
                    "type": "string"
                },
                "successCount": {
                    "description": "SuccessCount is the total number of provisioning successes (only recorded if there were previous failures)",
                    "type": "integer"
                },
                "successImages": {
                    "description": "SuccessImages contains list of CSP image names that succeeded with this spec (only recorded if there were previous failures)",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "successTimestamps": {
                    "description": "SuccessTimestamps contains list of success timestamps (only recorded if there were previous failures)",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "model.PublicKeyResponse": {
            "type": "object",
            "properties": {
                "publicKey": {
                    "type": "string"
                },
                "publicKeyTokenId": {
                    "type": "string"
                }
            }
        },
        "model.Range": {
            "type": "object",
            "properties": {
                "max": {
                    "type": "number"
                },
                "min": {
                    "type": "number"
                }
            }
        },
        "model.RecommendSpecReq": {
            "type": "object",
            "properties": {
                "filter": {
                    "$ref": "#/definitions/model.FilterInfo"
                },
                "limit": {
                    "type": "string",
                    "enum": [
                        "1",
                        "2",
                        "30"
                    ],
                    "example": "5"
                },
                "priority": {
                    "$ref": "#/definitions/model.PriorityInfo"
                }
            }
        },
        "model.RecommendSpecRequestOptions": {
            "type": "object",
            "properties": {
                "filter": {
                    "description": "Filter options - available filtering fields and their example values",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.FilterOptionsInfo"
                        }
                    ]
                },
                "limit": {
                    "description": "Limit options - example limit values",
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "5",
                        "10",
                        "20",
                        "50"
                    ]
                },
                "priority": {
                    "description": "Priority options - available prioritization metrics and parameters",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.PriorityOptionsInfo"
                        }
                    ]
                }
            }
        },
        "model.RegionDetail": {
            "type": "object",
            "properties": {
                "description": {
                    "type": "string"
                },
                "location": {
                    "$ref": "#/definitions/model.Location"
                },
                "regionId": {
                    "type": "string"
                },
                "regionName": {
                    "type": "string"
                },
                "zones": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "model.RegionDetails": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                },
                "vNets": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.VNetDetails"
                    }
                }
            }
        },
        "model.RegionInfo": {
            "type": "object",
            "properties": {
                "region": {
                    "type": "string"
                },
                "zone": {
                    "type": "string"
                }
            }
        },
        "model.RegionList": {
            "type": "object",
            "properties": {
                "regions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.RegionDetail"
                    }
                }
            }
        },
        "model.RegionZoneInfo": {
            "type": "object",
            "properties": {
                "assignedRegion": {
                    "type": "string"
                },
                "assignedZone": {
                    "type": "string"
                }
            }
        },
        "model.RegisterResourceAllResult": {
            "type": "object",
            "properties": {
                "availableConnection": {
                    "type": "integer"
                },
                "elapsedTime": {
                    "type": "integer"
                },
                "registerationOverview": {
                    "$ref": "#/definitions/model.RegisterationOverview"
                },
                "registerationResult": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.RegisterResourceResult"
                    }
                },
                "registeredConnection": {
                    "type": "integer"
                }
            }
        },
        "model.RegisterResourceResult": {
            "type": "object",
            "properties": {
                "connectionName": {
                    "type": "string"
                },
                "elapsedTime": {
                    "type": "integer"
                },
                "registerationOutputs": {
                    "$ref": "#/definitions/model.IdList"
                },
                "registerationOverview": {
                    "$ref": "#/definitions/model.RegisterationOverview"
                },
                "systemMessage": {
                    "type": "string"
                }
            }
        },
        "model.RegisterSubnetReq": {
            "type": "object",
            "required": [
                "connectionName",
                "cspResourceId",
                "name"
            ],
            "properties": {
                "connectionName": {
                    "type": "string"
                },
                "cspResourceId": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "zone": {
                    "type": "string"
                }
            }
        },
        "model.RegisterVNetReq": {
            "type": "object",
            "required": [
                "connectionName",
                "cspResourceId",
                "name"
            ],
            "properties": {
                "connectionName": {
                    "type": "string"
                },
                "cspResourceId": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "model.RegisterationOverview": {
            "type": "object",
            "properties": {
                "customImage": {
                    "type": "integer"
                },
                "dataDisk": {
                    "type": "integer"
                },
                "failed": {
                    "type": "integer"
                },
                "nlb": {
                    "type": "integer"
                },
                "securityGroup": {
                    "type": "integer"
                },
                "sshKey": {
                    "type": "integer"
                },
                "vNet": {
                    "type": "integer"
                },
                "vm": {
                    "type": "integer"
                }
            }
        },
        "model.RequiredAWSResourceForSqlDB": {
            "type": "object",
            "properties": {
                "subnet1ID": {
                    "type": "string",
                    "example": "subnet-xxxx"
                },
                "subnet2ID": {
                    "type": "string",
                    "example": "subnet-xxxx in different AZ"
                },
                "vNetID": {
                    "type": "string",
                    "example": "vpc-xxxxx"
                }
            }
        },
        "model.RequiredAzureResourceForSqlDB": {
            "type": "object",
            "properties": {
                "resourceGroup": {
                    "type": "string",
                    "example": "koreacentral"
                }
            }
        },
        "model.RequiredCSPResourceForSqlDB": {
            "type": "object",
            "properties": {
                "aws": {
                    "$ref": "#/definitions/model.RequiredAWSResourceForSqlDB"
                },
                "azure": {
                    "$ref": "#/definitions/model.RequiredAzureResourceForSqlDB"
                },
                "ncp": {
                    "$ref": "#/definitions/model.RequiredNCPResourceForSqlDB"
                }
            }
        },
        "model.RequiredNCPResourceForSqlDB": {
            "type": "object",
            "properties": {
                "subnetID": {
                    "type": "string",
                    "example": "123456"
                }
            }
        },
        "model.ResourceCountOverview": {
            "type": "object",
            "properties": {
                "onCspOnly": {
                    "type": "integer"
                },
                "onCspTotal": {
                    "type": "integer"
                },
                "onSpider": {
                    "type": "integer"
                },
                "onTumblebug": {
                    "type": "integer"
                }
            }
        },
        "model.ResourceDetail": {
            "type": "object",
            "properties": {
                "cspResourceDetail": {
                    "description": "CspResourceDetail is the detailed information of the resource provided from the terrarium."
                },
                "cspResourceId": {
                    "description": "CspResourceId is resource identifier managed by CSP",
                    "type": "string",
                    "example": "csp-06eb41e14121c550a"
                },
                "cspResourceName": {
                    "description": "CspResourceName is name assigned to the CSP resource. This name is internally used to handle the resource.",
                    "type": "string",
                    "example": "we12fawefadf1221edcf"
                },
                "status": {
                    "type": "string"
                }
            }
        },
        "model.ResourceOnCsp": {
            "type": "object",
            "properties": {
                "count": {
                    "type": "integer"
                },
                "info": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.ResourceOnCspInfo"
                    }
                }
            }
        },
        "model.ResourceOnCspInfo": {
            "type": "object",
            "properties": {
                "cspResourceId": {
                    "type": "string"
                },
                "refNameOrId": {
                    "type": "string"
                }
            }
        },
        "model.ResourceOnSpider": {
            "type": "object",
            "properties": {
                "count": {
                    "type": "integer"
                },
                "info": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.ResourceOnSpiderInfo"
                    }
                }
            }
        },
        "model.ResourceOnSpiderInfo": {
            "type": "object",
            "properties": {
                "cspResourceId": {
                    "type": "string"
                },
                "idBySp": {
                    "type": "string"
                }
            }
        },
        "model.ResourceOnTumblebug": {
            "type": "object",
            "properties": {
                "count": {
                    "type": "integer"
                },
                "info": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.ResourceOnTumblebugInfo"
                    }
                }
            }
        },
        "model.ResourceOnTumblebugInfo": {
            "type": "object",
            "properties": {
                "cspResourceId": {
                    "type": "string"
                },
                "idByTb": {
                    "type": "string"
                },
                "mciId": {
                    "type": "string"
                },
                "nsId": {
                    "type": "string"
                },
                "objectKey": {
                    "type": "string"
                }
            }
        },
        "model.ResourcesByManageType": {
            "type": "object",
            "properties": {
                "onCspOnly": {
                    "$ref": "#/definitions/model.ResourceOnCsp"
                },
                "onCspTotal": {
                    "$ref": "#/definitions/model.ResourceOnCsp"
                },
                "onSpider": {
                    "$ref": "#/definitions/model.ResourceOnSpider"
                },
                "onTumblebug": {
                    "$ref": "#/definitions/model.ResourceOnTumblebug"
                }
            }
        },
        "model.Response": {
            "type": "object",
            "properties": {
                "details": {
                    "type": "string",
                    "example": "Any details"
                },
                "list": {
                    "type": "array",
                    "items": {}
                },
                "message": {
                    "type": "string",
                    "example": "Any message"
                },
                "object": {
                    "type": "object",
                    "additionalProperties": true
                },
                "status": {
                    "type": "integer",
                    "example": 200
                },
                "success": {
                    "type": "boolean",
                    "example": true
                }
            }
        },
        "model.RestPostSqlDBRequest": {
            "type": "object",
            "required": [
                "connectionName",
                "csp",
                "dbAdminPassword",
                "dbAdminUsername",
                "dbEnginePort",
                "dbEngineVersion",
                "dbInstanceSpec",
                "name",
                "region"
            ],
            "properties": {
                "connectionName": {
                    "type": "string",
                    "example": "aws-ap-northeast-2"
                },
                "csp": {
                    "type": "string",
                    "example": "aws"
                },
                "dbAdminPassword": {
                    "type": "string",
                    "example": "Password1234!"
                },
                "dbAdminUsername": {
                    "type": "string",
                    "example": "mydbadmin"
                },
                "dbEnginePort": {
                    "type": "integer",
                    "example": 3306
                },
                "dbEngineVersion": {
                    "type": "string",
                    "example": "8.0.39"
                },
                "dbInstanceSpec": {
                    "type": "string",
                    "example": "db.t3.micro"
                },
                "name": {
                    "type": "string",
                    "example": "sqldb01"
                },
                "region": {
                    "type": "string",
                    "example": "ap-northeast-2"
                },
                "requiredCSPResource": {
                    "$ref": "#/definitions/model.RequiredCSPResourceForSqlDB"
                }
            }
        },
        "model.RestPostVpnRequest": {
            "type": "object",
            "required": [
                "name",
                "site1",
                "site2"
            ],
            "properties": {
                "name": {
                    "type": "string",
                    "example": "vpn01"
                },
                "site1": {
                    "$ref": "#/definitions/model.SiteProperty"
                },
                "site2": {
                    "$ref": "#/definitions/model.SiteProperty"
                }
            }
        },
        "model.RestWrapperSecurityGroupUpdateResponse": {
            "type": "object",
            "properties": {
                "response": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.SecurityGroupUpdateResponse"
                    }
                },
                "summary": {
                    "$ref": "#/definitions/model.UpdateSummary"
                }
            }
        },
        "model.RetrievedRegionList": {
            "type": "object",
            "properties": {
                "region": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.SpiderRegionZoneInfo"
                    }
                }
            }
        },
        "model.ReviewMciDynamicReqInfo": {
            "type": "object",
            "properties": {
                "creationViable": {
                    "type": "boolean"
                },
                "estimatedCost": {
                    "type": "string",
                    "example": "$0.50/hour"
                },
                "mciName": {
                    "description": "MCI-level information",
                    "type": "string"
                },
                "overallMessage": {
                    "type": "string",
                    "example": "All VMs can be created successfully"
                },
                "overallStatus": {
                    "description": "Overall assessment of the MCI request",
                    "type": "string",
                    "example": "Ready/Warning/Error"
                },
                "policyDescription": {
                    "type": "string",
                    "example": "If some VMs fail during creation, MCI will be created with successfully provisioned VMs only"
                },
                "policyOnPartialFailure": {
                    "description": "Failure policy analysis",
                    "type": "string",
                    "example": "continue"
                },
                "policyRecommendation": {
                    "type": "string",
                    "example": "Consider 'refine' policy for automatic cleanup of failed VMs"
                },
                "recommendations": {
                    "description": "Recommendations for improvement",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "resourceSummary": {
                    "description": "Resource availability summary",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.ReviewResourceSummary"
                        }
                    ]
                },
                "totalVmCount": {
                    "type": "integer"
                },
                "vmReviews": {
                    "description": "VM-level validation results",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.ReviewSubGroupDynamicReqInfo"
                    }
                }
            }
        },
        "model.ReviewResourceSummary": {
            "type": "object",
            "properties": {
                "availableImages": {
                    "type": "integer"
                },
                "availableSpecs": {
                    "description": "Resource availability counts",
                    "type": "integer"
                },
                "connectionNames": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "providerNames": {
                    "description": "Provider and region details",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "regionNames": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "totalProviders": {
                    "type": "integer"
                },
                "totalRegions": {
                    "type": "integer"
                },
                "unavailableImages": {
                    "type": "integer"
                },
                "unavailableSpecs": {
                    "type": "integer"
                },
                "uniqueImages": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "uniqueSpecs": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "model.ReviewResourceValidation": {
            "type": "object",
            "properties": {
                "cspResourceId": {
                    "type": "string"
                },
                "isAvailable": {
                    "type": "boolean"
                },
                "message": {
                    "type": "string"
                },
                "resourceId": {
                    "type": "string"
                },
                "resourceName": {
                    "type": "string"
                },
                "status": {
                    "type": "string",
                    "example": "Available/Unavailable/Unknown"
                }
            }
        },
        "model.ReviewSubGroupDynamicReqInfo": {
            "type": "object",
            "properties": {
                "canCreate": {
                    "type": "boolean"
                },
                "connectionName": {
                    "description": "Connection and region info",
                    "type": "string"
                },
                "errors": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "estimatedCost": {
                    "description": "Cost estimation",
                    "type": "string",
                    "example": "$0.10/hour"
                },
                "imageValidation": {
                    "$ref": "#/definitions/model.ReviewResourceValidation"
                },
                "info": {
                    "description": "General information and configuration notes",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "message": {
                    "type": "string",
                    "example": "VM can be created successfully"
                },
                "providerName": {
                    "type": "string"
                },
                "regionName": {
                    "type": "string"
                },
                "specValidation": {
                    "description": "Resource validation details",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.ReviewResourceValidation"
                        }
                    ]
                },
                "status": {
                    "description": "Validation status",
                    "type": "string",
                    "example": "Ready/Warning/Error"
                },
                "subGroupSize": {
                    "type": "string"
                },
                "vmName": {
                    "description": "VM request information",
                    "type": "string"
                },
                "warnings": {
                    "description": "Warnings and errors",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "model.RiskAnalysis": {
            "type": "object",
            "properties": {
                "imageRisk": {
                    "description": "ImageRisk contains image-specific risk analysis",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.ImageRiskInfo"
                        }
                    ]
                },
                "overallRisk": {
                    "description": "OverallRisk contains overall combined risk assessment",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.OverallRiskInfo"
                        }
                    ]
                },
                "recentFailureMessages": {
                    "description": "RecentFailureMessages contains recent failure messages for context (up to 5 most recent, unique messages)",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "recommendations": {
                    "description": "Recommendations provides actionable guidance for users",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "specRisk": {
                    "description": "SpecRisk contains spec-specific risk analysis",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.SpecRiskInfo"
                        }
                    ]
                }
            }
        },
        "model.ScaleOutSubGroupReq": {
            "type": "object",
            "required": [
                "numVMsToAdd"
            ],
            "properties": {
                "numVMsToAdd": {
                    "description": "Define addtional VMs to scaleOut",
                    "type": "string",
                    "example": "2"
                }
            }
        },
        "model.SearchImageRequest": {
            "type": "object",
            "properties": {
                "detailSearchKeys": {
                    "description": "Keywords for searching images in detail.\nSpace-separated for AND condition (ex: \"sql 2022\", \"ubuntu 22.04\", etc.).\nUsed for if the user wants to search images with specific keywords in their details.",
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "tensorflow",
                        "2.17"
                    ]
                },
                "includeBasicImageOnly": {
                    "description": "IncludeBasicImageOnly is to return basic OS distribution only without additional applications.\nIf true, the search results will include only the basic OS distribution without additional applications.\nIf false or not specified, the search results will include images with additional applications installed.",
                    "type": "boolean",
                    "example": false
                },
                "includeDeprecatedImage": {
                    "description": "Whether the search results should include deprecated images or not.\nIf not specified, deprecated images will not be included in the search results.\nIn usual, deprecated images are not recommended to use, but they can be used if necessary.",
                    "type": "boolean",
                    "example": false
                },
                "isGPUImage": {
                    "description": "Whether the image is ready for GPU usage or not.\nIn usual, true means the image is ready for GPU usage with GPU drivers and libraries installed.\nIf not specified, both true and false images will be included in the search results.\nEven if the image is not ready for GPU usage, it can be used with GPU by installing GPU drivers and libraries manually.",
                    "type": "boolean",
                    "example": false
                },
                "isKubernetesImage": {
                    "description": "Whether the image is specialized image only for Kubernetes nodes.\nIf not specified, both true and false images will be included in the search results.\nImages that are not specialized for Kubernetes also can be used as Kubernetes nodes. It depends on CSPs.",
                    "type": "boolean",
                    "example": false
                },
                "isRegisteredByAsset": {
                    "description": "Whether the image is registered by CB-Tumblebug asset file or not.",
                    "type": "boolean",
                    "example": false
                },
                "matchedSpecId": {
                    "description": "MatchedSpecId is the ID of the matched spec.\nIf specified, only the images that match this spec will be returned.\nThis is useful when the user wants to search images that match a specific spec.",
                    "type": "string",
                    "example": "aws+ap-northeast-2+t2.small"
                },
                "maxResults": {
                    "description": "MaxResults is the maximum number of images to be returned in the search results.\nIf not specified, all images will be returned.\nIf specified, the number of images returned will be limited to the specified value.",
                    "type": "integer",
                    "example": 100
                },
                "osArchitecture": {
                    "description": "The architecture of the operating system of the image. (ex: \"x86_64\", \"arm64\", etc.)",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.OSArchitecture"
                        }
                    ],
                    "example": "x86_64"
                },
                "osType": {
                    "description": "Simplified OS name and version string. Space-separated for AND condition (ex: \"ubuntu 22.04\", \"windows 10\", etc.).",
                    "type": "string",
                    "example": "ubuntu 22.04"
                },
                "providerName": {
                    "description": "Cloud Service Provider (ex: \"aws\", \"azure\", \"gcp\", etc.). Use GET /provider to get the list of available providers.",
                    "type": "string",
                    "example": "aws"
                },
                "regionName": {
                    "description": "Cloud Service Provider Region (ex: \"us-east-1\", \"us-west-2\", etc.). Use GET /provider/{providerName}/region to get the list of available regions.",
                    "type": "string",
                    "example": "us-east-1"
                }
            }
        },
        "model.SearchImageRequestOptions": {
            "type": "object",
            "properties": {
                "detailSearchKeys": {
                    "description": "Keywords for searching images in detail.\nSpace-separated for AND condition (ex: \"sql 2022\", \"ubuntu 22.04\", etc.).\nUsed for if the user wants to search images with specific keywords in their details.",
                    "type": "array",
                    "items": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "includeDeprecatedImage": {
                    "description": "Whether the search results should include deprecated images or not.\nIf not specified, deprecated images will not be included in the search results.\nIn usual, deprecated images are not recommended to use, but they can be used if necessary.",
                    "type": "array",
                    "items": {
                        "type": "boolean"
                    }
                },
                "isGPUImage": {
                    "description": "Whether the image is ready for GPU usage or not.\nIn usual, true means the image is ready for GPU usage with GPU drivers and libraries installed.\nIf not specified, both true and false images will be included in the search results.\nEven if the image is not ready for GPU usage, it can be used with GPU by installing GPU drivers and libraries manually.",
                    "type": "array",
                    "items": {
                        "type": "boolean"
                    }
                },
                "isKubernetesImage": {
                    "description": "Whether the image is specialized image only for Kubernetes nodes.\nIf not specified, both true and false images will be included in the search results.\nImages that are not specialized for Kubernetes also can be used as Kubernetes nodes. It depends on CSPs.",
                    "type": "array",
                    "items": {
                        "type": "boolean"
                    }
                },
                "isRegisteredByAsset": {
                    "description": "Whether the image is registered by CB-Tumblebug asset file or not.",
                    "type": "array",
                    "items": {
                        "type": "boolean"
                    }
                },
                "matchedSpecId": {
                    "description": "MatchedSpecId is the ID of the matched spec.\nIf specified, only the images that match this spec will be returned.\nThis is useful when the user wants to search images that match a specific spec.",
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "aws+ap-northeast-2+t2.small"
                    ]
                },
                "maxResults": {
                    "description": "MaxResults is the maximum number of images to be returned in the search results.\nIf not specified, all images will be returned.\nIf specified, the number of images returned will be limited to the specified value.",
                    "type": "array",
                    "items": {
                        "type": "integer"
                    },
                    "example": [
                        100
                    ]
                },
                "osArchitecture": {
                    "description": "The architecture of the operating system of the image. (ex: \"x86_64\", \"arm64\", etc.)",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "osType": {
                    "description": "Simplified OS name and version string. Space-separated for AND condition (ex: \"ubuntu 22.04\", \"windows 10\", etc.).",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "providerName": {
                    "description": "Cloud Service Provider (ex: \"aws\", \"azure\", \"gcp\", etc.). Use GET /provider to get the list of available providers.",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "regionName": {
                    "description": "Cloud Service Provider Region (ex: \"us-east-1\", \"us-west-2\", etc.). Use GET /provider/{providerName}/region to get the list of available regions.",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "model.SearchImageResponse": {
            "type": "object",
            "properties": {
                "imageCount": {
                    "type": "integer"
                },
                "imageList": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.ImageInfo"
                    }
                }
            }
        },
        "model.SecurityGroupInfo": {
            "type": "object",
            "properties": {
                "associatedObjectList": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "connectionConfig": {
                    "$ref": "#/definitions/model.ConnConfig"
                },
                "connectionName": {
                    "type": "string"
                },
                "cspResourceId": {
                    "description": "CspResourceId is resource identifier managed by CSP",
                    "type": "string",
                    "example": "csp-06eb41e14121c550a"
                },
                "cspResourceName": {
                    "description": "CspResourceName is name assigned to the CSP resource. This name is internally used to handle the resource.",
                    "type": "string",
                    "example": "we12fawefadf1221edcf"
                },
                "description": {
                    "type": "string"
                },
                "firewallRules": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.FirewallRuleInfo"
                    }
                },
                "id": {
                    "description": "Id is unique identifier for the object",
                    "type": "string",
                    "example": "aws-ap-southeast-1"
                },
                "isAutoGenerated": {
                    "type": "boolean"
                },
                "keyValueList": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.KeyValue"
                    }
                },
                "name": {
                    "description": "Name is human-readable string to represent the object",
                    "type": "string",
                    "example": "aws-ap-southeast-1"
                },
                "resourceType": {
                    "description": "ResourceType is the type of the resource",
                    "type": "string"
                },
                "systemLabel": {
                    "description": "SystemLabel is for describing the Resource in a keyword (any string can be used) for special System purpose",
                    "type": "string",
                    "example": "Managed by CB-Tumblebug"
                },
                "uid": {
                    "description": "Uid is universally unique identifier for the object, used for labelSelector",
                    "type": "string",
                    "example": "wef12awefadf1221edcf"
                },
                "vNetId": {
                    "type": "string"
                }
            }
        },
        "model.SecurityGroupReq": {
            "type": "object",
            "required": [
                "connectionName",
                "name",
                "vNetId"
            ],
            "properties": {
                "connectionName": {
                    "type": "string"
                },
                "cspResourceId": {
                    "description": "CspResourceId is required to register object from CSP (option=register)",
                    "type": "string",
                    "example": "required for option=register only. ex: csp-06eb41e14121c550a"
                },
                "description": {
                    "type": "string"
                },
                "firewallRules": {
                    "description": "validate:\"required\"` + "`" + `",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.FirewallRuleReq"
                    }
                },
                "name": {
                    "type": "string"
                },
                "vNetId": {
                    "type": "string"
                }
            }
        },
        "model.SecurityGroupUpdateReq": {
            "type": "object",
            "properties": {
                "firewallRules": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.FirewallRuleReq"
                    }
                }
            }
        },
        "model.SecurityGroupUpdateResponse": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "string"
                },
                "message": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "previous": {
                    "$ref": "#/definitions/model.SecurityGroupInfo"
                },
                "success": {
                    "type": "boolean"
                },
                "updated": {
                    "$ref": "#/definitions/model.SecurityGroupInfo"
                }
            }
        },
        "model.SetK8sNodeGroupAutoscalingReq": {
            "type": "object",
            "properties": {
                "onAutoScaling": {
                    "type": "string",
                    "example": "true"
                }
            }
        },
        "model.SetK8sNodeGroupAutoscalingRes": {
            "type": "object",
            "properties": {
                "result": {
                    "type": "string",
                    "example": "true"
                }
            }
        },
        "model.SimpleMsg": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string",
                    "example": "Any message"
                }
            }
        },
        "model.SiteDetail": {
            "type": "object",
            "properties": {
                "connectionName": {
                    "type": "string",
                    "example": "aws-ap-northeast-2"
                },
                "csp": {
                    "type": "string",
                    "example": "aws"
                },
                "gatewaySubnetCidr": {
                    "description": "SubnetId          string ` + "`" + `json:\"subnet,omitempty\" example:\"subnet-xxxxx\"` + "`" + `",
                    "type": "string",
                    "example": "xxx.xxx.xxx.xxx/xx"
                },
                "region": {
                    "type": "string",
                    "example": "ap-northeast-2"
                },
                "resourceGroup": {
                    "type": "string",
                    "example": "rg-xxxxx"
                },
                "vnet": {
                    "description": "Zone              string ` + "`" + `json:\"zone,omitempty\" example:\"ap-northeast-2a\"` + "`" + `",
                    "type": "string",
                    "example": "vpc-xxxxx"
                }
            }
        },
        "model.SiteProperty": {
            "type": "object",
            "properties": {
                "cspSpecificProperty": {
                    "$ref": "#/definitions/model.CspSpecificProperty"
                },
                "vNetId": {
                    "type": "string",
                    "example": "vnet01"
                }
            }
        },
        "model.SitesInfo": {
            "type": "object",
            "properties": {
                "count": {
                    "type": "integer",
                    "example": 3
                },
                "mciId": {
                    "type": "string",
                    "example": "mci-01"
                },
                "nsId": {
                    "type": "string",
                    "example": "ns-01"
                },
                "sites": {
                    "$ref": "#/definitions/model.sites"
                }
            }
        },
        "model.SpecAvailabilityBatchResult": {
            "type": "object",
            "properties": {
                "averageQueryMs": {
                    "type": "integer",
                    "example": 1250
                },
                "failedQueries": {
                    "type": "integer",
                    "example": 2
                },
                "fastestQueryMs": {
                    "type": "integer",
                    "example": 850
                },
                "provider": {
                    "type": "string",
                    "example": "alibaba"
                },
                "slowestQueryMs": {
                    "type": "integer",
                    "example": 2100
                },
                "specResults": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.SpecAvailabilityInfo"
                    }
                },
                "successfulQueries": {
                    "type": "integer",
                    "example": 8
                },
                "totalDurationMs": {
                    "type": "integer",
                    "example": 12500
                },
                "totalSpecs": {
                    "type": "integer",
                    "example": 10
                }
            }
        },
        "model.SpecAvailabilityInfo": {
            "type": "object",
            "properties": {
                "availableRegions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.SpecRegionZoneInfo"
                    }
                },
                "cspSpecName": {
                    "type": "string",
                    "example": "ecs.t5.large"
                },
                "errorMessage": {
                    "type": "string",
                    "example": "Spec not available"
                },
                "provider": {
                    "type": "string",
                    "example": "alibaba"
                },
                "queryDurationMs": {
                    "type": "integer",
                    "example": 1250
                },
                "success": {
                    "type": "boolean",
                    "example": true
                }
            }
        },
        "model.SpecCleanupResult": {
            "type": "object",
            "properties": {
                "availabilityCheckMs": {
                    "type": "integer",
                    "example": 12500
                },
                "availabilityResults": {
                    "$ref": "#/definitions/model.SpecAvailabilityBatchResult"
                },
                "cleanupDurationMs": {
                    "type": "integer",
                    "example": 15000
                },
                "failedDeletions": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "ecs.t5.large"
                    ]
                },
                "provider": {
                    "type": "string",
                    "example": "alibaba"
                },
                "region": {
                    "type": "string",
                    "example": "ap-northeast-1"
                },
                "specsDeleted": {
                    "type": "integer",
                    "example": 5
                },
                "specsToDelete": {
                    "type": "integer",
                    "example": 5
                },
                "specsToIgnoreInfo": {
                    "description": "Detailed information about specs that were identified for deletion",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.SpecsToIgnoreData"
                        }
                    ]
                },
                "totalSpecsChecked": {
                    "type": "integer",
                    "example": 50
                }
            }
        },
        "model.SpecFetchOption": {
            "type": "object",
            "properties": {
                "excludedProviders": {
                    "description": "providers need to be excluded from the spec fetching operation (ex: [\"azure\"])",
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "azure"
                    ]
                },
                "regionAgnosticProviders": {
                    "description": "providers that are not region-specific (ex: [\"gcp\"])",
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "gcp",
                        "tencent"
                    ]
                }
            }
        },
        "model.SpecInfo": {
            "type": "object",
            "properties": {
                "acceleratorCount": {
                    "type": "integer"
                },
                "acceleratorMemoryGB": {
                    "type": "number"
                },
                "acceleratorModel": {
                    "type": "string"
                },
                "acceleratorType": {
                    "type": "string"
                },
                "architecture": {
                    "type": "string",
                    "example": "x86_64"
                },
                "associatedObjectList": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "connectionName": {
                    "type": "string"
                },
                "costPerHour": {
                    "type": "number"
                },
                "cspSpecName": {
                    "description": "CspSpecName is name of the spec given by CSP",
                    "type": "string",
                    "example": "csp-06eb41e14121c550a"
                },
                "description": {
                    "type": "string"
                },
                "details": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.KeyValue"
                    }
                },
                "diskSizeGB": {
                    "type": "number"
                },
                "evaluationScore01": {
                    "type": "number"
                },
                "evaluationScore02": {
                    "type": "number"
                },
                "evaluationScore03": {
                    "type": "number"
                },
                "evaluationScore04": {
                    "type": "number"
                },
                "evaluationScore05": {
                    "type": "number"
                },
                "evaluationScore06": {
                    "type": "number"
                },
                "evaluationScore07": {
                    "type": "number"
                },
                "evaluationScore08": {
                    "type": "number"
                },
                "evaluationScore09": {
                    "type": "number"
                },
                "evaluationScore10": {
                    "type": "number"
                },
                "evaluationStatus": {
                    "type": "string"
                },
                "id": {
                    "description": "Id is unique identifier for the object",
                    "type": "string",
                    "example": "aws+ap-southeast+csp-06eb41e14121c550a"
                },
                "infraType": {
                    "description": "InfraType can be one of vm|k8s|kubernetes|container, etc.",
                    "type": "string"
                },
                "isAutoGenerated": {
                    "type": "boolean"
                },
                "maxTotalStorageTiB": {
                    "type": "integer"
                },
                "memoryGiB": {
                    "type": "number"
                },
                "name": {
                    "description": "Name is human-readable string to represent the object",
                    "type": "string",
                    "example": "aws-ap-southeast-1"
                },
                "namespace": {
                    "type": "string",
                    "example": "default"
                },
                "netBwGbps": {
                    "type": "integer"
                },
                "orderInFilteredResult": {
                    "type": "integer"
                },
                "osType": {
                    "type": "string"
                },
                "providerName": {
                    "type": "string"
                },
                "regionLatitude": {
                    "type": "number"
                },
                "regionLongitude": {
                    "type": "number"
                },
                "regionName": {
                    "type": "string"
                },
                "rootDiskSize": {
                    "type": "string"
                },
                "rootDiskType": {
                    "type": "string"
                },
                "systemLabel": {
                    "description": "SystemLabel is for describing the Resource in a keyword (any string can be used) for special System purpose",
                    "type": "string",
                    "example": "Managed by CB-Tumblebug"
                },
                "uid": {
                    "description": "Uid is universally unique identifier for the object, used for labelSelector",
                    "type": "string",
                    "example": "wef12awefadf1221edcf"
                },
                "vCPU": {
                    "type": "integer"
                }
            }
        },
        "model.SpecRegionZoneInfo": {
            "type": "object",
            "properties": {
                "regionName": {
                    "type": "string",
                    "example": "ap-northeast-1"
                },
                "zones": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "ap-northeast-1a",
                        "ap-northeast-1b"
                    ]
                }
            }
        },
        "model.SpecReq": {
            "type": "object",
            "required": [
                "connectionName",
                "cspSpecName",
                "name"
            ],
            "properties": {
                "connectionName": {
                    "type": "string"
                },
                "cspSpecName": {
                    "description": "CspSpecName is name of the spec given by CSP",
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "name": {
                    "description": "Name is human-readable string to represent the object, used to generate Id",
                    "type": "string"
                }
            }
        },
        "model.SpecRiskInfo": {
            "type": "object",
            "properties": {
                "failedImageCount": {
                    "description": "FailedImageCount is the number of different images that failed with this spec",
                    "type": "integer"
                },
                "failureRate": {
                    "description": "FailureRate is the overall failure rate for this spec (0.0 to 1.0)",
                    "type": "number"
                },
                "level": {
                    "description": "Level is the risk level: \"low\", \"medium\", \"high\"",
                    "type": "string"
                },
                "message": {
                    "description": "Message explains the spec-specific risk reasoning",
                    "type": "string"
                },
                "succeededImageCount": {
                    "description": "SucceededImageCount is the number of different images that succeeded with this spec",
                    "type": "integer"
                },
                "totalFailures": {
                    "description": "TotalFailures is the total number of failures for this spec",
                    "type": "integer"
                },
                "totalSuccesses": {
                    "description": "TotalSuccesses is the total number of successes for this spec",
                    "type": "integer"
                }
            }
        },
        "model.SpecsToIgnoreData": {
            "type": "object",
            "properties": {
                "description": {
                    "type": "string"
                },
                "global_ignore_specs": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "last_updated": {
                    "type": "string"
                },
                "region_specific_ignore": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "model.SpiderAccessInfo": {
            "type": "object",
            "properties": {
                "endpoint": {
                    "description": "ex) https://1.2.3.4:6443",
                    "type": "string"
                },
                "kubeconfig": {
                    "type": "string"
                }
            }
        },
        "model.SpiderAddonsInfo": {
            "type": "object",
            "properties": {
                "keyValueList": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.KeyValue"
                    }
                }
            }
        },
        "model.SpiderClusterInfo": {
            "type": "object",
            "properties": {
                "accessInfo": {
                    "$ref": "#/definitions/model.SpiderAccessInfo"
                },
                "addons": {
                    "$ref": "#/definitions/model.SpiderAddonsInfo"
                },
                "createdTime": {
                    "type": "string"
                },
                "iid": {
                    "description": "{NameId, SystemId}",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.IID"
                        }
                    ]
                },
                "keyValueList": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.KeyValue"
                    }
                },
                "network": {
                    "$ref": "#/definitions/model.SpiderNetworkInfo"
                },
                "nodeGroupList": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.SpiderNodeGroupInfo"
                    }
                },
                "status": {
                    "$ref": "#/definitions/model.SpiderClusterStatus"
                },
                "version": {
                    "description": "Kubernetes Version, ex) 1.23.3",
                    "type": "string"
                }
            }
        },
        "model.SpiderClusterStatus": {
            "type": "string",
            "enum": [
                "Creating",
                "Active",
                "Inactive",
                "Updating",
                "Deleting"
            ],
            "x-enum-varnames": [
                "SpiderClusterCreating",
                "SpiderClusterActive",
                "SpiderClusterInactive",
                "SpiderClusterUpdating",
                "SpiderClusterDeleting"
            ]
        },
        "model.SpiderGpuInfo": {
            "type": "object",
            "required": [
                "Count"
            ],
            "properties": {
                "Count": {
                    "description": "Number of GPUs, \"-1\" when not applicable",
                    "type": "string",
                    "example": "2"
                },
                "MemSizeGB": {
                    "description": "Memory size of the GPU in GB, \"-1\" when not applicable",
                    "type": "string",
                    "example": "12"
                },
                "Mfr": {
                    "description": "Manufacturer of the GPU, NA when not applicable",
                    "type": "string",
                    "example": "NVIDIA"
                },
                "Model": {
                    "description": "Model of the GPU, NA when not applicable",
                    "type": "string",
                    "example": "Tesla K80"
                },
                "TotalMemSizeGB": {
                    "description": "Total Memory size of the GPU in GB, \"-1\" when not applicable",
                    "type": "string",
                    "example": "24"
                }
            }
        },
        "model.SpiderImageInfo": {
            "type": "object",
            "properties": {
                "IId": {
                    "description": "{NameId, SystemId}, {ami-00aa5a103ddf4509f, ami-00aa5a103ddf4509f}",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.IID"
                        }
                    ]
                },
                "ImageStatus": {
                    "description": "Available, Unavailable",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.ImageStatus"
                        }
                    ],
                    "example": "Available"
                },
                "KeyValueList": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.KeyValue"
                    }
                },
                "Name": {
                    "description": "ami-00aa5a103ddf4509f",
                    "type": "string",
                    "example": "ami-00aa5a103ddf4509f"
                },
                "OSArchitecture": {
                    "description": "arm64, x86_64 etc.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.OSArchitecture"
                        }
                    ],
                    "example": "x86_64"
                },
                "OSDiskSizeGB": {
                    "description": "10, 50, 100 etc.",
                    "type": "string",
                    "example": "50"
                },
                "OSDiskType": {
                    "description": "ebs, HDD, etc.",
                    "type": "string",
                    "example": "HDD"
                },
                "OSDistribution": {
                    "description": "Ubuntu 22.04~, CentOS 8 etc.",
                    "type": "string",
                    "example": "Ubuntu 22.04~"
                },
                "OSPlatform": {
                    "description": "Linux/UNIX, Windows, NA",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.OSPlatform"
                        }
                    ],
                    "example": "Linux/UNIX"
                }
            }
        },
        "model.SpiderImageList": {
            "type": "object",
            "properties": {
                "image": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.SpiderImageInfo"
                    }
                }
            }
        },
        "model.SpiderNetworkInfo": {
            "type": "object",
            "properties": {
                "keyValueList": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.KeyValue"
                    }
                },
                "securityGroupIIDs": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.IID"
                    }
                },
                "subnetIIDs": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.IID"
                    }
                },
                "vpcIID": {
                    "description": "{NameId, SystemId}",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.IID"
                        }
                    ]
                }
            }
        },
        "model.SpiderNodeGroupInfo": {
            "type": "object",
            "required": [
                "DesiredNodeSize",
                "IId",
                "ImageIID",
                "KeyPairIID",
                "MaxNodeSize",
                "MinNodeSize",
                "OnAutoScaling",
                "Status",
                "VMSpecName"
            ],
            "properties": {
                "DesiredNodeSize": {
                    "type": "integer",
                    "example": 2
                },
                "IId": {
                    "description": "{NameId, SystemId}",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.IID"
                        }
                    ]
                },
                "ImageIID": {
                    "description": "VM config.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.IID"
                        }
                    ]
                },
                "KeyPairIID": {
                    "$ref": "#/definitions/model.IID"
                },
                "KeyValueList": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.KeyValue"
                    }
                },
                "MaxNodeSize": {
                    "type": "integer",
                    "example": 3
                },
                "MinNodeSize": {
                    "type": "integer",
                    "example": 1
                },
                "Nodes": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.IID"
                    }
                },
                "OnAutoScaling": {
                    "description": "Scaling config.",
                    "type": "boolean",
                    "example": true
                },
                "RootDiskSize": {
                    "description": "\"\", \"default\", \"50\", \"1000\" (GB)",
                    "type": "string",
                    "example": "50"
                },
                "RootDiskType": {
                    "description": "\"SSD(gp2)\", \"Premium SSD\", ...",
                    "type": "string"
                },
                "Status": {
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.SpiderNodeGroupStatus"
                        }
                    ],
                    "example": "Active"
                },
                "VMSpecName": {
                    "type": "string",
                    "example": "t3.medium"
                }
            }
        },
        "model.SpiderNodeGroupStatus": {
            "type": "string",
            "enum": [
                "Creating",
                "Active",
                "Inactive",
                "Updating",
                "Deleting"
            ],
            "x-enum-varnames": [
                "SpiderNodeGroupCreating",
                "SpiderNodeGroupActive",
                "SpiderNodeGroupInactive",
                "SpiderNodeGroupUpdating",
                "SpiderNodeGroupDeleting"
            ]
        },
        "model.SpiderRegionZoneInfo": {
            "type": "object",
            "properties": {
                "availableZoneList": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "keyValueInfoList": {
                    "description": "ex) { {region, us-east1}, {zone, us-east1-c} }",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.KeyValue"
                    }
                },
                "providerName": {
                    "description": "ex) \"GCP\"",
                    "type": "string"
                },
                "regionName": {
                    "description": "ex) \"region01\"",
                    "type": "string"
                }
            }
        },
        "model.SpiderSpecInfo": {
            "type": "object",
            "required": [
                "DiskSizeGB",
                "MemSizeMib",
                "Name",
                "Region",
                "VCpu"
            ],
            "properties": {
                "DiskSizeGB": {
                    "description": "Disk size in GB, \"-1\" when not applicable",
                    "type": "string",
                    "example": "8"
                },
                "Gpu": {
                    "description": "GPU details if available",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.SpiderGpuInfo"
                    }
                },
                "KeyValueList": {
                    "description": "Additional key-value pairs for the VM spec",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.KeyValue"
                    }
                },
                "MemSizeMib": {
                    "description": "Memory size in MiB",
                    "type": "string",
                    "example": "1024"
                },
                "Name": {
                    "description": "Name of the VM spec",
                    "type": "string",
                    "example": "t2.micro"
                },
                "Region": {
                    "description": "Region where the VM spec is available",
                    "type": "string",
                    "example": "us-east-1"
                },
                "VCpu": {
                    "description": "CPU details of the VM spec",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.SpiderVCpuInfo"
                        }
                    ]
                }
            }
        },
        "model.SpiderSpecList": {
            "type": "object",
            "properties": {
                "vmspec": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.SpiderSpecInfo"
                    }
                }
            }
        },
        "model.SpiderVCpuInfo": {
            "type": "object",
            "required": [
                "Count"
            ],
            "properties": {
                "ClockGHz": {
                    "description": "Clock speed in GHz, \"-1\" when not applicable",
                    "type": "string",
                    "example": "2.5"
                },
                "Count": {
                    "description": "Number of VCpu, \"-1\" when not applicable",
                    "type": "string",
                    "example": "2"
                }
            }
        },
        "model.SqlDBInfo": {
            "type": "object",
            "properties": {
                "connectionConfig": {
                    "$ref": "#/definitions/model.ConnConfig"
                },
                "connectionName": {
                    "type": "string"
                },
                "cspResourceId": {
                    "description": "CspResourceId is resource identifier managed by CSP",
                    "type": "string",
                    "example": "csp-06eb41e14121c550a"
                },
                "cspResourceName": {
                    "description": "CspResourceName is name assigned to the CSP resource. This name is internally used to handle the resource.",
                    "type": "string",
                    "example": "we12fawefadf1221edcf"
                },
                "description": {
                    "type": "string"
                },
                "details": {},
                "id": {
                    "description": "Id is unique identifier for the object",
                    "type": "string",
                    "example": "sqldb01"
                },
                "name": {
                    "description": "Name is human-readable string to represent the object",
                    "type": "string",
                    "example": "sqldb01"
                },
                "resourceType": {
                    "description": "ResourceType is the type of the resource",
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "uid": {
                    "description": "Uid is universally unique identifier for the object, used for labelSelector",
                    "type": "string",
                    "example": "wef12awefadf1221edcf"
                }
            }
        },
        "model.SshCmdResult": {
            "type": "object",
            "properties": {
                "command": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "err": {},
                "mciId": {
                    "type": "string"
                },
                "stderr": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "stdout": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "vmId": {
                    "type": "string"
                },
                "vmIp": {
                    "type": "string"
                }
            }
        },
        "model.SshCmdResultForAPI": {
            "type": "object",
            "properties": {
                "command": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "error": {
                    "description": "String representation of error for JSON serialization",
                    "type": "string"
                },
                "mciId": {
                    "type": "string"
                },
                "stderr": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "stdout": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "vmId": {
                    "type": "string"
                },
                "vmIp": {
                    "type": "string"
                }
            }
        },
        "model.SshKeyInfo": {
            "type": "object",
            "properties": {
                "associatedObjectList": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "connectionConfig": {
                    "$ref": "#/definitions/model.ConnConfig"
                },
                "connectionName": {
                    "type": "string"
                },
                "cspResourceId": {
                    "description": "CspResourceId is resource identifier managed by CSP",
                    "type": "string",
                    "example": "csp-06eb41e14121c550a"
                },
                "cspResourceName": {
                    "description": "CspResourceName is name assigned to the CSP resource. This name is internally used to handle the resource.",
                    "type": "string",
                    "example": "we12fawefadf1221edcf"
                },
                "description": {
                    "type": "string"
                },
                "fingerprint": {
                    "type": "string"
                },
                "id": {
                    "description": "Id is unique identifier for the object",
                    "type": "string",
                    "example": "aws-ap-southeast-1"
                },
                "isAutoGenerated": {
                    "type": "boolean"
                },
                "keyValueList": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.KeyValue"
                    }
                },
                "name": {
                    "description": "Name is human-readable string to represent the object",
                    "type": "string",
                    "example": "aws-ap-southeast-1"
                },
                "privateKey": {
                    "type": "string"
                },
                "publicKey": {
                    "type": "string"
                },
                "resourceType": {
                    "description": "ResourceType is the type of the resource",
                    "type": "string"
                },
                "systemLabel": {
                    "description": "SystemLabel is for describing the Resource in a keyword (any string can be used) for special System purpose",
                    "type": "string",
                    "example": "Managed by CB-Tumblebug"
                },
                "uid": {
                    "description": "Uid is universally unique identifier for the object, used for labelSelector",
                    "type": "string",
                    "example": "wef12awefadf1221edcf"
                },
                "username": {
                    "type": "string"
                },
                "verifiedUsername": {
                    "type": "string"
                }
            }
        },
        "model.SshKeyReq": {
            "type": "object",
            "required": [
                "connectionName",
                "name"
            ],
            "properties": {
                "connectionName": {
                    "type": "string"
                },
                "cspResourceId": {
                    "description": "Fields for \"Register existing SSH keys\" feature\nCspResourceId is required to register object from CSP (option=register)",
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "fingerprint": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "privateKey": {
                    "type": "string"
                },
                "publicKey": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                },
                "verifiedUsername": {
                    "type": "string"
                }
            }
        },
        "model.StatusCountInfo": {
            "type": "object",
            "properties": {
                "countCreating": {
                    "description": "CountCreating is for counting Creating",
                    "type": "integer"
                },
                "countFailed": {
                    "description": "CountFailed is for counting Failed",
                    "type": "integer"
                },
                "countRebooting": {
                    "description": "CountRebooting is for counting Rebooting",
                    "type": "integer"
                },
                "countResuming": {
                    "description": "CountResuming is for counting Resuming",
                    "type": "integer"
                },
                "countRunning": {
                    "description": "CountRunning is for counting Running",
                    "type": "integer"
                },
                "countSuspended": {
                    "description": "CountSuspended is for counting Suspended",
                    "type": "integer"
                },
                "countSuspending": {
                    "description": "CountSuspending is for counting Suspending",
                    "type": "integer"
                },
                "countTerminated": {
                    "description": "CountTerminated is for counting Terminated",
                    "type": "integer"
                },
                "countTerminating": {
                    "description": "CountTerminating is for counting Terminating",
                    "type": "integer"
                },
                "countTotal": {
                    "description": "CountTotal is for Total VMs",
                    "type": "integer"
                },
                "countUndefined": {
                    "description": "CountUndefined is for counting Undefined",
                    "type": "integer"
                }
            }
        },
        "model.SubnetInfo": {
            "type": "object",
            "properties": {
                "bastionNodes": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.BastionNode"
                    }
                },
                "connectionConfig": {
                    "$ref": "#/definitions/model.ConnConfig"
                },
                "connectionName": {
                    "type": "string"
                },
                "cspResourceId": {
                    "description": "CspResourceId is resource identifier managed by CSP",
                    "type": "string",
                    "example": "csp-06eb41e14121c550a"
                },
                "cspResourceName": {
                    "description": "CspResourceName is name assigned to the CSP resource. This name is internally used to handle the resource.",
                    "type": "string",
                    "example": "we12fawefadf1221edcf"
                },
                "cspVNetId": {
                    "description": "CspVNetId is vNet resource identifier managed by CSP",
                    "type": "string",
                    "example": "csp-45eb41e14121c550a"
                },
                "cspVNetName": {
                    "description": "CspVNetName is identifier to handle CSP vNet resource",
                    "type": "string",
                    "example": "we12fawefadf1221edcf"
                },
                "description": {
                    "type": "string"
                },
                "id": {
                    "description": "Id is unique identifier for the object",
                    "type": "string",
                    "example": "aws-ap-southeast-1"
                },
                "ipv4_CIDR": {
                    "type": "string"
                },
                "keyValueList": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.KeyValue"
                    }
                },
                "name": {
                    "description": "Name is human-readable string to represent the object",
                    "type": "string",
                    "example": "aws-ap-southeast-1"
                },
                "resourceType": {
                    "description": "ResourceType is the type of the resource",
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "uid": {
                    "description": "Uid is universally unique identifier for the object, used for labelSelector",
                    "type": "string",
                    "example": "wef12awefadf1221edcf"
                },
                "zone": {
                    "type": "string"
                }
            }
        },
        "model.SubnetReq": {
            "type": "object",
            "required": [
                "ipv4_CIDR",
                "name"
            ],
            "properties": {
                "description": {
                    "type": "string",
                    "example": "subnet00 managed by CB-Tumblebug"
                },
                "ipv4_CIDR": {
                    "type": "string",
                    "example": "10.0.1.0/24"
                },
                "name": {
                    "type": "string",
                    "example": "subnet00"
                },
                "zone": {
                    "type": "string"
                }
            }
        },
        "model.SystemLabelInfo": {
            "type": "object",
            "properties": {
                "labelTypes": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "systemLabels": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                }
            }
        },
        "model.UpdateSpecListByAvailabilityRequest": {
            "type": "object",
            "required": [
                "provider"
            ],
            "properties": {
                "provider": {
                    "type": "string",
                    "example": "alibaba"
                }
            }
        },
        "model.UpdateSummary": {
            "type": "object",
            "properties": {
                "allSuccess": {
                    "type": "boolean"
                },
                "failed": {
                    "type": "integer"
                },
                "success": {
                    "type": "integer"
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "model.UpgradeK8sClusterReq": {
            "type": "object",
            "properties": {
                "version": {
                    "type": "string",
                    "example": "1.30.1-alyun.1"
                }
            }
        },
        "model.VNetDetails": {
            "type": "object",
            "properties": {
                "hostsPerSubnet": {
                    "type": "string"
                },
                "subnetCount": {
                    "type": "string"
                },
                "useFirstNZones": {
                    "type": "string"
                }
            }
        },
        "model.VNetInfo": {
            "type": "object",
            "properties": {
                "associatedObjectList": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "cidrBlock": {
                    "type": "string"
                },
                "connectionConfig": {
                    "$ref": "#/definitions/model.ConnConfig"
                },
                "connectionName": {
                    "type": "string"
                },
                "cspResourceId": {
                    "description": "CspResourceId is resource identifier managed by CSP",
                    "type": "string",
                    "example": "csp-06eb41e14121c550a"
                },
                "cspResourceName": {
                    "description": "CspResourceName is name assigned to the CSP resource. This name is internally used to handle the resource.",
                    "type": "string",
                    "example": "we12fawefadf1221edcf"
                },
                "description": {
                    "type": "string"
                },
                "id": {
                    "description": "Id is unique identifier for the object",
                    "type": "string",
                    "example": "aws-ap-southeast-1"
                },
                "isAutoGenerated": {
                    "type": "boolean"
                },
                "keyValueList": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.KeyValue"
                    }
                },
                "name": {
                    "description": "Name is human-readable string to represent the object",
                    "type": "string",
                    "example": "aws-ap-southeast-1"
                },
                "resourceType": {
                    "description": "ResourceType is the type of the resource",
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "subnetInfoList": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.SubnetInfo"
                    }
                },
                "systemLabel": {
                    "description": "SystemLabel is for describing the Resource in a keyword (any string can be used) for special System purpose",
                    "type": "string",
                    "example": "Managed by CB-Tumblebug"
                },
                "uid": {
                    "description": "Uid is universally unique identifier for the object, used for labelSelector",
                    "type": "string",
                    "example": "wef12awefadf1221edcf"
                }
            }
        },
        "model.VNetReq": {
            "type": "object",
            "required": [
                "connectionName",
                "name"
            ],
            "properties": {
                "cidrBlock": {
                    "type": "string",
                    "example": "10.0.0.0/16"
                },
                "connectionName": {
                    "type": "string",
                    "example": "aws-ap-northeast-2"
                },
                "description": {
                    "type": "string",
                    "example": "vnet00 managed by CB-Tumblebug"
                },
                "name": {
                    "type": "string",
                    "example": "vnet00"
                },
                "subnetInfoList": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.SubnetReq"
                    }
                }
            }
        },
        "model.VmCreationError": {
            "type": "object",
            "properties": {
                "error": {
                    "description": "Error is the error message",
                    "type": "string"
                },
                "phase": {
                    "description": "Phase indicates when the error occurred",
                    "type": "string"
                },
                "timestamp": {
                    "description": "Timestamp when the error occurred",
                    "type": "string"
                },
                "vmName": {
                    "description": "VmName is the name of the VM that failed",
                    "type": "string"
                }
            }
        },
        "model.VmInfo": {
            "type": "object",
            "properties": {
                "addtionalDetails": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.KeyValue"
                    }
                },
                "commandStatus": {
                    "description": "CommandStatus stores the status and history of remote commands executed on this VM",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.CommandStatusInfo"
                    }
                },
                "connectionConfig": {
                    "$ref": "#/definitions/model.ConnConfig"
                },
                "connectionName": {
                    "type": "string"
                },
                "createdTime": {
                    "description": "Created time",
                    "type": "string",
                    "example": "2022-11-10 23:00:00"
                },
                "cspImageName": {
                    "type": "string"
                },
                "cspResourceId": {
                    "description": "CspResourceId is resource identifier managed by CSP",
                    "type": "string",
                    "example": "csp-06eb41e14121c550a"
                },
                "cspResourceName": {
                    "description": "CspResourceName is name assigned to the CSP resource. This name is internally used to handle the resource.",
                    "type": "string",
                    "example": "we12fawefadf1221edcf"
                },
                "cspSpecName": {
                    "type": "string"
                },
                "cspSshKeyId": {
                    "type": "string"
                },
                "cspSubnetId": {
                    "type": "string"
                },
                "cspVNetId": {
                    "type": "string"
                },
                "dataDiskIds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "description": {
                    "type": "string"
                },
                "id": {
                    "description": "Id is unique identifier for the object",
                    "type": "string",
                    "example": "aws-ap-southeast-1"
                },
                "imageId": {
                    "type": "string"
                },
                "label": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "location": {
                    "$ref": "#/definitions/model.Location"
                },
                "monAgentStatus": {
                    "description": "Montoring agent status",
                    "type": "string",
                    "example": "[installed, notInstalled, failed]"
                },
                "name": {
                    "description": "Name is human-readable string to represent the object",
                    "type": "string",
                    "example": "aws-ap-southeast-1"
                },
                "networkAgentStatus": {
                    "description": "NetworkAgent status",
                    "type": "string",
                    "example": "[notInstalled, installing, installed, failed]"
                },
                "networkInterface": {
                    "type": "string"
                },
                "privateDNS": {
                    "type": "string"
                },
                "privateIP": {
                    "type": "string"
                },
                "publicDNS": {
                    "type": "string"
                },
                "publicIP": {
                    "type": "string"
                },
                "region": {
                    "description": "AWS, ex) {us-east1, us-east1-c} or {ap-northeast-2}",
                    "allOf": [
                        {
                            "$ref": "#/definitions/model.RegionInfo"
                        }
                    ]
                },
                "resourceType": {
                    "description": "ResourceType is the type of the resource",
                    "type": "string"
                },
                "rootDiskName": {
                    "type": "string"
                },
                "rootDiskSize": {
                    "type": "string"
                },
                "rootDiskType": {
                    "type": "string"
                },
                "securityGroupIds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "specId": {
                    "type": "string"
                },
                "sshKeyId": {
                    "type": "string"
                },
                "sshPort": {
                    "type": "string"
                },
                "status": {
                    "description": "Required by CB-Tumblebug",
                    "type": "string"
                },
                "subGroupId": {
                    "description": "defined if the VM is in a group",
                    "type": "string"
                },
                "subnetId": {
                    "type": "string"
                },
                "systemMessage": {
                    "description": "Latest system message such as error message",
                    "type": "string",
                    "example": "Failed because ..."
                },
                "targetAction": {
                    "type": "string"
                },
                "targetStatus": {
                    "type": "string"
                },
                "uid": {
                    "description": "Uid is universally unique identifier for the object, used for labelSelector",
                    "type": "string",
                    "example": "wef12awefadf1221edcf"
                },
                "vNetId": {
                    "type": "string"
                },
                "vmUserName": {
                    "type": "string"
                },
                "vmUserPassword": {
                    "type": "string"
                }
            }
        },
        "model.VmSnapshotReq": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string",
                    "example": "aws-ap-southeast-1-snapshot"
                }
            }
        },
        "model.VmStatusInfo": {
            "type": "object",
            "properties": {
                "createdTime": {
                    "description": "Created time",
                    "type": "string",
                    "example": "2022-11-10 23:00:00"
                },
                "cspResourceId": {
                    "description": "CspResourceId is resource identifier managed by CSP",
                    "type": "string",
                    "example": "csp-06eb41e14121c550a"
                },
                "cspResourceName": {
                    "description": "CspResourceName is name assigned to the CSP resource. This name is internally used to handle the resource.",
                    "type": "string",
                    "example": "we12fawefadf1221edcf"
                },
                "id": {
                    "description": "Id is unique identifier for the object",
                    "type": "string",
                    "example": "aws-ap-southeast-1"
                },
                "location": {
                    "$ref": "#/definitions/model.Location"
                },
                "monAgentStatus": {
                    "description": "Montoring agent status",
                    "type": "string",
                    "example": "[installed, notInstalled, failed]"
                },
                "name": {
                    "description": "Name is human-readable string to represent the object",
                    "type": "string",
                    "example": "aws-ap-southeast-1"
                },
                "nativeStatus": {
                    "type": "string"
                },
                "privateIp": {
                    "type": "string"
                },
                "publicIp": {
                    "type": "string"
                },
                "sshPort": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "systemMessage": {
                    "description": "Latest system message such as error message",
                    "type": "string",
                    "example": "Failed because ..."
                },
                "targetAction": {
                    "type": "string"
                },
                "targetStatus": {
                    "type": "string"
                },
                "uid": {
                    "description": "Uid is universally unique identifier for the object, used for labelSelector",
                    "type": "string",
                    "example": "wef12awefadf1221edcf"
                }
            }
        },
        "model.VpnIdList": {
            "type": "object",
            "properties": {
                "vpnIdList": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "model.VpnInfo": {
            "type": "object",
            "properties": {
                "description": {
                    "type": "string"
                },
                "id": {
                    "description": "Id is unique identifier for the object",
                    "type": "string",
                    "example": "vpn01"
                },
                "name": {
                    "description": "Name is human-readable string to represent the object",
                    "type": "string",
                    "example": "vpn01"
                },
                "resourceType": {
                    "description": "ResourceType is the type of the resource",
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "uid": {
                    "description": "Uid is universally unique identifier for the object, used for labelSelector",
                    "type": "string",
                    "example": "wef12awefadf1221edcf"
                },
                "vpnSites": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.VpnSiteDetail"
                    }
                }
            }
        },
        "model.VpnInfoList": {
            "type": "object",
            "properties": {
                "vpnInfoList": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.VpnInfo"
                    }
                }
            }
        },
        "model.VpnSiteDetail": {
            "type": "object",
            "properties": {
                "connectionConfig": {
                    "$ref": "#/definitions/model.ConnConfig"
                },
                "connectionName": {
                    "type": "string"
                },
                "resourceDetails": {
                    "description": "ResourceDetails represents a CSP's multiple resources associated with the VPN from a CSP.",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.ResourceDetail"
                    }
                }
            }
        },
        "model.inspectOverview": {
            "type": "object",
            "properties": {
                "customImage": {
                    "type": "integer"
                },
                "dataDisk": {
                    "type": "integer"
                },
                "nlb": {
                    "type": "integer"
                },
                "securityGroup": {
                    "type": "integer"
                },
                "sshKey": {
                    "type": "integer"
                },
                "vNet": {
                    "type": "integer"
                },
                "vm": {
                    "type": "integer"
                }
            }
        },
        "model.sites": {
            "type": "object",
            "properties": {
                "alibaba": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.SiteDetail"
                    }
                },
                "aws": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.SiteDetail"
                    }
                },
                "azure": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.SiteDetail"
                    }
                },
                "gcp": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.SiteDetail"
                    }
                },
                "ibm": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.SiteDetail"
                    }
                },
                "tencent": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.SiteDetail"
                    }
                }
            }
        },
        "netutil.Network": {
            "type": "object",
            "properties": {
                "cidrBlock": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "subnets": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/netutil.Network"
                    }
                }
            }
        },
        "netutil.RestPostUtilToDesignNetworkReponse": {
            "type": "object",
            "properties": {
                "cidrBlock": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "subnets": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/netutil.Network"
                    }
                }
            }
        },
        "netutil.RestPostUtilToDesignNetworkRequest": {
            "type": "object",
            "properties": {
                "cidrBlock": {
                    "type": "string",
                    "example": "192.168.0.0/16"
                },
                "subnettingRules": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/netutil.SubnettingRule"
                    }
                }
            }
        },
        "netutil.RestPostUtilToDesignVNetReponse": {
            "type": "object",
            "properties": {
                "rootNetworkCIDR": {
                    "description": "in case of supernetting enabled",
                    "type": "string"
                },
                "vNetReqList": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.VNetReq"
                    }
                }
            }
        },
        "netutil.RestPostUtilToDesignVNetRequest": {
            "type": "object",
            "properties": {
                "desiredPrivateNetwork": {
                    "type": "string"
                },
                "mcNetConfigurations": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.McNetConfigurationDetails"
                    }
                },
                "supernettingEnabled": {
                    "type": "string"
                }
            }
        },
        "netutil.RestPostUtilToValidateNetworkRequest": {
            "type": "object",
            "properties": {
                "networkConfiguration": {
                    "$ref": "#/definitions/netutil.Network"
                }
            }
        },
        "netutil.SubnettingRule": {
            "type": "object",
            "properties": {
                "type": {
                    "allOf": [
                        {
                            "$ref": "#/definitions/netutil.SubnettingRuleType"
                        }
                    ],
                    "example": "minSubnets"
                },
                "value": {
                    "type": "integer",
                    "example": 2
                }
            }
        },
        "netutil.SubnettingRuleType": {
            "type": "string",
            "enum": [
                "minSubnets",
                "minHosts"
            ],
            "x-enum-varnames": [
                "SubnettingRuleTypeMinSubnets",
                "SubnettingRuleTypeMinHosts"
            ]
        },
        "resource.Bucket": {
            "type": "object",
            "properties": {
                "creationDate": {
                    "type": "string",
                    "example": "2025-09-04T04:18:06Z"
                },
                "name": {
                    "type": "string",
                    "example": "spider-test-bucket"
                }
            }
        },
        "resource.Buckets": {
            "type": "object",
            "properties": {
                "bucket": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/resource.Bucket"
                    }
                }
            }
        },
        "resource.CORSConfiguration": {
            "type": "object",
            "properties": {
                "corsRule": {
                    "description": "The xmlns attribute will be set to \"http://s3.amazonaws.com/doc/2006-03-01/\"\nXmlns string ` + "`" + `xml:\"xmlns,attr\" json:\"-\" example:\"http://s3.amazonaws.com/doc/2006-03-01/\"` + "`" + `",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/resource.CORSRule"
                    }
                }
            }
        },
        "resource.CORSRule": {
            "type": "object",
            "properties": {
                "allowedHeader": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "*"
                    ]
                },
                "allowedMethod": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "GET"
                    ]
                },
                "allowedOrigin": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "*"
                    ]
                },
                "exposeHeader": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "ETag"
                    ]
                },
                "maxAgeSeconds": {
                    "type": "integer",
                    "example": 3000
                }
            }
        },
        "resource.ConnectionImageResult": {
            "type": "object",
            "properties": {
                "connName": {
                    "type": "string"
                },
                "elapsedTime": {
                    "type": "string"
                },
                "errorMsg": {
                    "type": "string"
                },
                "imageCount": {
                    "type": "integer"
                },
                "provider": {
                    "type": "string"
                },
                "region": {
                    "type": "string"
                },
                "startTime": {
                    "type": "string"
                },
                "success": {
                    "type": "boolean"
                }
            }
        },
        "resource.ConnectionSpecResult": {
            "type": "object",
            "properties": {
                "connName": {
                    "type": "string"
                },
                "elapsedTime": {
                    "type": "string"
                },
                "errorMsg": {
                    "type": "string"
                },
                "provider": {
                    "type": "string"
                },
                "region": {
                    "type": "string"
                },
                "specCount": {
                    "type": "integer"
                },
                "startTime": {
                    "type": "string"
                },
                "success": {
                    "type": "boolean"
                }
            }
        },
        "resource.Delete": {
            "type": "object",
            "properties": {
                "object": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/resource.Object"
                    }
                }
            }
        },
        "resource.DeleteResult": {
            "type": "object",
            "properties": {
                "deleted": {
                    "description": "The xmlns attribute will be set to \"http://s3.amazonaws.com/doc/2006-03-01/\"\nXmlns string ` + "`" + `xml:\"xmlns,attr\" json:\"-\" example:\"http://s3.amazonaws.com/doc/2006-03-01/\"` + "`" + `",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/resource.Object"
                    }
                }
            }
        },
        "resource.Error": {
            "type": "object",
            "properties": {
                "code": {
                    "type": "string",
                    "example": "NoSuchCORSConfiguration"
                },
                "message": {
                    "type": "string",
                    "example": "The CORS configuration does not exist"
                },
                "requestId": {
                    "type": "string",
                    "example": "656c76696e6727732072657175657374"
                },
                "resource": {
                    "type": "string",
                    "example": "/example-bucket"
                }
            }
        },
        "resource.FetchImagesAsyncResult": {
            "type": "object",
            "properties": {
                "elapsedTime": {
                    "type": "string"
                },
                "failedRegions": {
                    "type": "integer"
                },
                "fetchOption": {
                    "$ref": "#/definitions/model.ImageFetchOption"
                },
                "inProgress": {
                    "type": "boolean"
                },
                "namespaceId": {
                    "type": "string"
                },
                "registeredImages": {
                    "type": "integer"
                },
                "resultInDetail": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/resource.ConnectionImageResult"
                    }
                },
                "startTime": {
                    "type": "string"
                },
                "succeedRegions": {
                    "type": "integer"
                },
                "totalRegions": {
                    "type": "integer"
                }
            }
        },
        "resource.FetchSpecsAsyncResult": {
            "type": "object",
            "properties": {
                "elapsedTime": {
                    "type": "string"
                },
                "failedRegions": {
                    "type": "integer"
                },
                "fetchOption": {
                    "$ref": "#/definitions/model.SpecFetchOption"
                },
                "inProgress": {
                    "type": "boolean"
                },
                "namespaceId": {
                    "type": "string"
                },
                "registeredSpecs": {
                    "type": "integer"
                },
                "resultInDetail": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/resource.ConnectionSpecResult"
                    }
                },
                "startTime": {
                    "type": "string"
                },
                "succeedRegions": {
                    "type": "integer"
                },
                "totalRegions": {
                    "type": "integer"
                }
            }
        },
        "resource.JSONResult": {
            "type": "object"
        },
        "resource.ListAllMyBucketsResult": {
            "type": "object",
            "properties": {
                "buckets": {
                    "description": "Collection of buckets",
                    "allOf": [
                        {
                            "$ref": "#/definitions/resource.Buckets"
                        }
                    ]
                },
                "owner": {
                    "description": "The xmlns attribute will be set to \"http://s3.amazonaws.com/doc/2006-03-01/\"\nXmlns string ` + "`" + `xml:\"xmlns,attr\" json:\"-\" example:\"http://s3.amazonaws.com/doc/2006-03-01/\"` + "`" + `\nOwner information for the S3 account",
                    "allOf": [
                        {
                            "$ref": "#/definitions/resource.Owner"
                        }
                    ]
                }
            }
        },
        "resource.ListBucketResult": {
            "type": "object",
            "properties": {
                "isTruncated": {
                    "type": "boolean",
                    "example": false
                },
                "marker": {
                    "type": "string",
                    "example": ""
                },
                "maxKeys": {
                    "type": "integer",
                    "example": 1000
                },
                "name": {
                    "description": "The xmlns attribute will be set to \"http://s3.amazonaws.com/doc/2006-03-01/\"\nXmlns string ` + "`" + `xml:\"xmlns,attr\" json:\"-\" example:\"http://s3.amazonaws.com/doc/2006-03-01/\"` + "`" + `",
                    "type": "string",
                    "example": "spider-test-bucket"
                },
                "prefix": {
                    "type": "string",
                    "example": ""
                }
            }
        },
        "resource.ListVersionsResult": {
            "type": "object",
            "properties": {
                "isTruncated": {
                    "type": "boolean",
                    "example": false
                },
                "keyMarker": {
                    "type": "string",
                    "example": ""
                },
                "maxKeys": {
                    "type": "integer",
                    "example": 1000
                },
                "name": {
                    "description": "The xmlns attribute will be set to \"http://s3.amazonaws.com/doc/2006-03-01/\"\nXmlns string ` + "`" + `xml:\"xmlns,attr\" json:\"-\" example:\"http://s3.amazonaws.com/doc/2006-03-01/\"` + "`" + `",
                    "type": "string",
                    "example": "spider-test-bucket"
                },
                "nextKeyMarker": {
                    "type": "string",
                    "example": ""
                },
                "nextVersionIdMarker": {
                    "type": "string",
                    "example": ""
                },
                "prefix": {
                    "type": "string",
                    "example": ""
                },
                "version": {
                    "$ref": "#/definitions/resource.Version"
                },
                "versionIdMarker": {
                    "type": "string",
                    "example": ""
                }
            }
        },
        "resource.LocationConstraint": {
            "type": "object"
        },
        "resource.Object": {
            "type": "object",
            "properties": {
                "key": {
                    "type": "string",
                    "example": "test-object.txt"
                }
            }
        },
        "resource.Owner": {
            "type": "object",
            "properties": {
                "displayName": {
                    "type": "string",
                    "example": "aws-ap-northeast-2"
                },
                "id": {
                    "type": "string",
                    "example": "aws-ap-northeast-2"
                }
            }
        },
        "resource.PresignedURLResult": {
            "type": "object",
            "properties": {
                "expires": {
                    "type": "integer",
                    "example": 3600
                },
                "method": {
                    "type": "string",
                    "example": "GET"
                },
                "presignedURL": {
                    "type": "string",
                    "example": "\u003ehttps://globally-unique-bucket-hctdx3.s3.dualstack.ap-southeast-2.amazonaws.com/test-file.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256\u0026X-Amz-Credential=AKIA***EXAMPLE%2F20250904%2Fap-southeast-2%2Fs3%2Faws4_request\u0026X-Amz-Date=20250904T061448Z\u0026X-Amz-Expires=3600\u0026X-Amz-SignedHeaders=host\u0026X-Amz-Signature=***-signature"
                }
            }
        },
        "resource.RestFilterSpecsResponse": {
            "type": "object",
            "properties": {
                "spec": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.SpecInfo"
                    }
                }
            }
        },
        "resource.RestGetAllCustomImageResponse": {
            "type": "object",
            "properties": {
                "customImage": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.CustomImageInfo"
                    }
                }
            }
        },
        "resource.RestGetAllDataDiskResponse": {
            "type": "object",
            "properties": {
                "dataDisk": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.DataDiskInfo"
                    }
                }
            }
        },
        "resource.RestGetAllK8sClusterResponse": {
            "type": "object",
            "properties": {
                "K8sClusterInfo": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.K8sClusterInfo"
                    }
                }
            }
        },
        "resource.RestGetAllSecurityGroupResponse": {
            "type": "object",
            "properties": {
                "securityGroup": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.SecurityGroupInfo"
                    }
                }
            }
        },
        "resource.RestGetAllSshKeyResponse": {
            "type": "object",
            "properties": {
                "sshKey": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.SshKeyInfo"
                    }
                }
            }
        },
        "resource.RestGetAllSubnetResponse": {
            "type": "object",
            "properties": {
                "subnetInfoList": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.SubnetInfo"
                    }
                }
            }
        },
        "resource.RestGetAllVNetResponse": {
            "type": "object",
            "properties": {
                "vNet": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.VNetInfo"
                    }
                }
            }
        },
        "resource.RestLookupImageRequest": {
            "type": "object",
            "properties": {
                "connectionName": {
                    "type": "string"
                },
                "cspImageName": {
                    "type": "string"
                }
            }
        },
        "resource.RestLookupSpecRequest": {
            "type": "object",
            "properties": {
                "connectionName": {
                    "type": "string"
                },
                "cspResourceId": {
                    "type": "string"
                }
            }
        },
        "resource.Version": {
            "type": "object",
            "properties": {
                "etag": {
                    "type": "string",
                    "example": "23228a38faecd0591107818c7281cece"
                },
                "isLatest": {
                    "type": "boolean",
                    "example": true
                },
                "key": {
                    "type": "string",
                    "example": "test-file.txt"
                },
                "lastModified": {
                    "type": "string",
                    "example": "2025-09-04T04:24:12Z"
                },
                "owner": {
                    "$ref": "#/definitions/resource.Owner"
                },
                "size": {
                    "type": "integer",
                    "example": 23
                },
                "storageClass": {
                    "type": "string",
                    "example": "STANDARD"
                },
                "versionId": {
                    "type": "string",
                    "example": "yb4PgjnFVD2LfRZHXBjjsHBkQRHlu.TZ"
                }
            }
        },
        "resource.VersioningConfiguration": {
            "type": "object",
            "properties": {
                "status": {
                    "description": "The xmlns attribute will be set to \"http://s3.amazonaws.com/doc/2006-03-01/\"\nXmlns string ` + "`" + `xml:\"xmlns,attr\" json:\"-\" example:\"http://s3.amazonaws.com/doc/2006-03-01/\"` + "`" + `",
                    "type": "string",
                    "example": "Enabled"
                }
            }
        }
    },
    "securityDefinitions": {
        "BasicAuth": {
            "type": "basic"
        },
        "Bearer": {
            "description": "Type \"Bearer\" followed by a space and JWT token ([TBD] Get token in http://xxx.xxx.xxx.xxx:xxx/auth)",
            "type": "apiKey",
            "name": "Authorization",
            "in": "header"
        }
    }
}`

// SwaggerInfo holds exported Swagger Info so clients can modify it
var SwaggerInfo = &swag.Spec{
	Version:          "latest",
	Host:             "",
	BasePath:         "/tumblebug",
	Schemes:          []string{},
	Title:            "CB-Tumblebug REST API",
	Description:      "CB-Tumblebug is an open source system for managing multi-cloud infrastructure consisting of resources from multiple cloud service providers. (Cloud-Barista)",
	InfoInstanceName: "swagger",
	SwaggerTemplate:  docTemplate,
	LeftDelim:        "{{",
	RightDelim:       "}}",
}

func init() {
	swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo)
}
