Documentation
¶
Overview ¶
Package common is to handle REST API for common funcitonalities
Package common is to handle REST API for common funcitonalities ¶
Package common is to handle REST API for common funcitonalities
Index ¶
- func RestCheckHTTPVersion(c echo.Context) error
- func RestCheckNs(c echo.Context) error
- func RestDelAllNs(c echo.Context) error
- func RestDelNs(c echo.Context) error
- func RestDeleteAllRequests(c echo.Context) error
- func RestDeleteObject(c echo.Context) error
- func RestDeleteObjects(c echo.Context) error
- func RestDeleteRequest(c echo.Context) error
- func RestForwardAnyReqToAny(c echo.Context) error
- func RestGetAllConfig(c echo.Context) error
- func RestGetAllNs(c echo.Context) error
- func RestGetAllRequests(c echo.Context) error
- func RestGetCloudInfo(c echo.Context) error
- func RestGetConfig(c echo.Context) error
- func RestGetConnConfig(c echo.Context) error
- func RestGetConnConfigList(c echo.Context) error
- func RestGetK8sClusterInfo(c echo.Context) error
- func RestGetNs(c echo.Context) error
- func RestGetObject(c echo.Context) error
- func RestGetObjects(c echo.Context) error
- func RestGetProviderList(c echo.Context) error
- func RestGetPublicKeyForCredentialEncryption(c echo.Context) error
- func RestGetReadyz(c echo.Context) error
- func RestGetRegion(c echo.Context) error
- func RestGetRegionList(c echo.Context) error
- func RestGetRequest(c echo.Context) error
- func RestInitAllConfig(c echo.Context) error
- func RestInitConfig(c echo.Context) error
- func RestInspectResources(c echo.Context) error
- func RestInspectResourcesOverview(c echo.Context) error
- func RestPostConfig(c echo.Context) error
- func RestPostNs(c echo.Context) error
- func RestPutNs(c echo.Context) error
- func RestRegisterCredential(c echo.Context) error
- func RestRegisterCspNativeResources(c echo.Context) error
- func RestRegisterCspNativeResourcesAll(c echo.Context) error
- func Send(c echo.Context, httpCode int, json interface{}) error
- func SendExistence(c echo.Context, httpCode int, existence bool) error
- func SendMessage(c echo.Context, httpCode int, msg string) error
- func Validate(c echo.Context, params []string) error
- type Existence
- type JSONResult
- type ObjectList
- type RestGetAllConfigResponse
- type RestGetAllNsResponse
- type RestInspectResourcesRequest
- type RestRegisterCspNativeResourcesRequest
- type RestRegisterCspNativeResourcesRequestAll
- type Status
- type TbConnectionName
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RestCheckHTTPVersion ¶ added in v0.7.7
RestCheckHTTPVersion godoc @ID CheckHTTPVersion @Summary Check HTTP version of incoming request @Description Checks and logs the HTTP version of the incoming request to the server console. @Tags [Admin] API Request Management @Accept json @Produce json @Success 200 {object} common.SimpleMsg @Failure 404 {object} common.SimpleMsg @Failure 500 {object} common.SimpleMsg @Router /httpVersion [get]
func RestCheckNs ¶
func RestDelAllNs ¶
RestDelAllNs godoc @ID DelAllNs @Summary Delete all namespaces @Description Delete all namespaces @Tags [Admin] System Configuration @Accept json @Produce json @Success 200 {object} common.SimpleMsg @Failure 404 {object} common.SimpleMsg @Router /ns [delete]
func RestDelNs ¶
RestDelNs godoc @ID DelNs @Summary Delete namespace @Description Delete namespace @Tags [Admin] System Configuration @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Success 200 {object} common.SimpleMsg @Failure 404 {object} common.SimpleMsg @Router /ns/{nsId} [delete]
func RestDeleteAllRequests ¶ added in v0.7.13
RestDeleteAllRequests godoc @ID DeleteAllRequests @Summary Delete all requests' details @Description Delete details of all requests @Tags [Admin] API Request Management @Accept json @Produce json @Success 200 {object} SimpleMsg @Router /requests [delete]
func RestDeleteObject ¶ added in v0.3.3
func RestDeleteObject is a rest api wrapper for DeleteObject. RestDeleteObject godoc @ID DeleteObject @Summary Delete an object @Description Delete an object @Tags [Admin] System Management @Accept json @Produce json @Param key query string true "delete object value by key" @Success 200 {object} common.SimpleMsg @Failure 404 {object} common.SimpleMsg @Failure 500 {object} common.SimpleMsg @Router /object [delete]
func RestDeleteObjects ¶ added in v0.3.3
func RestDeleteObjects is a rest api wrapper for DeleteObjects. RestDeleteObjects godoc @ID DeleteObjects @Summary Delete child objects along with the given object @Description Delete child objects along with the given object @Tags [Admin] System Management @Accept json @Produce json @Param key query string true "Delete child objects based on the given key string" @Success 200 {object} common.SimpleMsg @Failure 404 {object} common.SimpleMsg @Failure 500 {object} common.SimpleMsg @Router /objects [delete]
func RestDeleteRequest ¶ added in v0.7.13
RestDeleteRequest godoc @ID DeleteRequest @Summary Delete a specific request's details @Description Delete details of a specific request @Tags [Admin] API Request Management @Accept json @Produce json @Param reqId path string true "Request ID to delete" @Success 200 {object} SimpleMsg @Router /request/{reqId} [delete]
func RestForwardAnyReqToAny ¶ added in v0.8.1
RestForwardAnyReqToAny godoc @ID ForwardAnyReqToAny @Summary Forward any (GET) request to CB-Spider @Description Forward any (GET) request to CB-Spider @Tags [Admin] API Request Management @Accept json @Produce json @Param path path string true "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"" default(vmspec) @Param Request body interface{} false "Request body (various formats) - see [https://documenter.getpostman.com/view/24786935/2s9Ykq8Lpf#231eec23-b0ab-4966-83ce-a0ef92ead7bc] for more details" @Success 200 {object} map[string]interface{} @Router /forward/{path} [post]
func RestGetAllConfig ¶
RestGetAllConfig godoc @ID GetAllConfig @Summary List all configs @Description List all configs @Tags [Admin] System Configuration @Accept json @Produce json @Success 200 {object} RestGetAllConfigResponse @Failure 404 {object} common.SimpleMsg @Failure 500 {object} common.SimpleMsg @Router /config [get]
func RestGetAllNs ¶
RestGetAllNs godoc @ID GetAllNs @Summary List all namespaces or namespaces' ID @Description List all namespaces or namespaces' ID @Tags [Admin] System Configuration @Accept json @Produce json @Param option query string false "Option" Enums(id) @Success 200 {object} JSONResult{[DEFAULT]=RestGetAllNsResponse,[ID]=common.IdList} "Different return structures by the given option param" @Failure 404 {object} common.SimpleMsg @Failure 500 {object} common.SimpleMsg @Router /ns [get]
func RestGetAllRequests ¶ added in v0.7.13
RestGetAllRequests godoc @ID GetAllRequests @Summary Get all requests @Description Get details of all requests with optional filters. @Tags [Admin] API Request Management @Accept json @Produce json @Param status query string false "Filter by request status (Handling, Error, Success)" @Param method query string false "Filter by HTTP method (GET, POST, etc.)" @Param url query string false "Filter by request URL" @Param time query string false "Filter by time in minutes from now (to get recent requests)" @Param savefile query string false "Option to save the results to a file (set 'true' to activate)" @Success 200 {object} map[string][]common.RequestDetails @Router /requests [get]
func RestGetCloudInfo ¶ added in v0.8.7
RestGetCloudInfo func is a rest api wrapper for CloudInfo. RestGetCloudInfo godoc @ID GetCloudInfo @Summary Get cloud information @Description Get cloud information @Tags [Admin] Multi-Cloud Information @Accept json @Produce json @Success 200 {object} common.CloudInfo @Failure 404 {object} common.SimpleMsg @Failure 500 {object} common.SimpleMsg @Router /cloudInfo [get]
func RestGetConfig ¶
RestGetConfig godoc @ID GetConfig @Summary Get config @Description Get config @Tags [Admin] System Configuration @Accept json @Produce json @Param configId path string true "Config ID" @Success 200 {object} common.ConfigInfo @Failure 404 {object} common.SimpleMsg @Failure 500 {object} common.SimpleMsg @Router /config/{configId} [get]
func RestGetConnConfig ¶
RestGetConnConfig func is a rest api wrapper for GetConnConfig. RestGetConnConfig godoc @ID GetConnConfig @Summary Get registered ConnConfig info @Description Get registered ConnConfig info @Tags [Admin] Credential Management @Accept json @Produce json @Param connConfigName path string true "Name of connection config (cloud config)" @Success 200 {object} common.ConnConfig @Failure 404 {object} common.SimpleMsg @Failure 500 {object} common.SimpleMsg @Router /connConfig/{connConfigName} [get]
func RestGetConnConfigList ¶
RestGetConnConfigList func is a rest api wrapper for GetConnConfigList. RestGetConnConfigList godoc @ID GetConnConfigList @Summary List all registered ConnConfig @Description List all registered ConnConfig @Tags [Admin] Credential Management @Accept json @Produce json @Param filterCredentialHolder query string false "filter objects by Credential Holder" default() @Param filterVerified query boolean false "filter verified connections only" Enums(true, false) default(true) @Param filterRegionRepresentative query boolean false "filter connections with the representative region only" Enums(true, false) default(false) @Success 200 {object} common.ConnConfigList @Failure 404 {object} common.SimpleMsg @Failure 500 {object} common.SimpleMsg @Router /connConfig [get]
func RestGetK8sClusterInfo ¶ added in v0.8.14
RestGetK8sClusterInfo func is a rest api wrapper for K8sClsuterInfo. RestGetK8sClusterInfo godoc @ID GetK8sClusterInfo @Summary Get kubernetes cluster information @Description Get kubernetes cluster information @Tags [Kubernetes] Cluster Management @Accept json @Produce json @Success 200 {object} common.K8sClusterInfo @Failure 404 {object} common.SimpleMsg @Failure 500 {object} common.SimpleMsg @Router /k8sClusterInfo [get]
func RestGetNs ¶
RestGetNs godoc @ID GetNs @Summary Get namespace @Description Get namespace @Tags [Admin] System Configuration @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Success 200 {object} common.NsInfo @Failure 404 {object} common.SimpleMsg @Failure 500 {object} common.SimpleMsg @Router /ns/{nsId} [get]
func RestGetObject ¶ added in v0.3.3
func RestGetObject is a rest api wrapper for GetObject. RestGetObject godoc @ID GetObject @Summary Get value of an object @Description Get value of an object @Tags [Admin] System Management @Accept json @Produce json @Param key query string true "get object value by key" @Success 200 {object} common.SimpleMsg @Failure 404 {object} common.SimpleMsg @Failure 500 {object} common.SimpleMsg @Router /object [get]
func RestGetObjects ¶ added in v0.3.3
func RestGetObjects is a rest api wrapper for GetObjectList. RestGetObjects godoc @ID GetObjects @Summary List all objects for a given key @Description List all objects for a given key @Tags [Admin] System Management @Accept json @Produce json @Param key query string true "retrieve objects by key" @Success 200 {object} common.SimpleMsg @Failure 404 {object} common.SimpleMsg @Failure 500 {object} common.SimpleMsg @Router /objects [get]
func RestGetProviderList ¶ added in v0.8.9
RestGetProviderList func is a rest api wrapper for GetProviderList. RestGetProviderList godoc @ID GetProviderList @Summary List all registered Providers @Description List all registered Providers @Tags [Admin] Multi-Cloud Information @Accept json @Produce json @Success 200 {object} common.IdList @Failure 404 {object} common.SimpleMsg @Failure 500 {object} common.SimpleMsg @Router /provider [get]
func RestGetPublicKeyForCredentialEncryption ¶ added in v0.9.7
RestGetPublicKeyForCredentialEncryption godoc @ID GetPublicKeyForCredentialEncryption @Summary Get RSA Public Key for Credential Encryption @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. @Tags [Admin] Credential Management @Accept json @Produce json @Success 200 {object} common.PublicKeyResponse @Failure 500 {object} common.SimpleMsg @Router /credential/publicKey [get]
func RestGetReadyz ¶ added in v0.8.8
RestGetReadyz func is for checking CB-Tumblebug server is ready. @ID GetReadyz RestGetReadyz godoc @Summary Check Tumblebug is ready @Description Check Tumblebug is ready @Tags [Admin] System Management @Accept json @Produce json @Success 200 {object} common.SimpleMsg @Failure 503 {object} common.SimpleMsg @Router /readyz [get]
func RestGetRegion ¶
RestGetRegion func is a rest api wrapper for GetRegion. RestGetRegion godoc @ID GetRegion @Summary Get registered region info @Description Get registered region info @Tags [Admin] Multi-Cloud Information @Accept json @Produce json @Param providerName path string true "Name of the CSP to retrieve" @Param regionName path string true "Name of region to retrieve" @Success 200 {object} common.RegionDetail @Failure 404 {object} common.SimpleMsg @Failure 500 {object} common.SimpleMsg @Router /provider/{providerName}/region/{regionName} [get]
func RestGetRegionList ¶
RestGetRegionList func is a rest api wrapper for GetRegionList. RestGetRegionList godoc @ID GetRegionList @Summary List all registered regions @Description List all registered regions @Tags [Admin] Multi-Cloud Information @Accept json @Produce json @Success 200 {object} common.RegionList @Failure 404 {object} common.SimpleMsg @Failure 500 {object} common.SimpleMsg @Router /region [get]
func RestGetRequest ¶ added in v0.7.13
RestGetRequest godoc @ID GetRequest @Summary Get request details @Description Get details of a specific request @Tags [Admin] API Request Management @Accept json @Produce json @Param reqId path string true "Request ID acquired from X-Request-ID header" @Success 200 {object} common.RequestDetails @Failure 404 {object} SimpleMsg @Failure 500 {object} SimpleMsg @Router /request/{reqId} [get]
func RestInitAllConfig ¶ added in v0.3.9
RestInitAllConfig godoc @ID InitAllConfig @Summary Init all configs @Description Init all configs @Tags [Admin] System Configuration @Accept json @Produce json @Success 200 {object} common.SimpleMsg @Failure 404 {object} common.SimpleMsg @Router /config [delete]
func RestInitConfig ¶ added in v0.3.9
RestInitConfig godoc @ID InitConfig @Summary Init config @Description Init config @Tags [Admin] System Configuration @Accept json @Produce json @Param configId path string true "Config ID" @Success 200 {object} common.ConfigInfo @Failure 404 {object} common.SimpleMsg @Failure 500 {object} common.SimpleMsg @Router /config/{configId} [delete]
func RestInspectResources ¶ added in v0.3.6
RestInspectResources godoc @ID InspectResources @Summary Inspect Resources (vNet, securityGroup, sshKey, vm) registered in CB-Tumblebug, CB-Spider, CSP @Description Inspect Resources (vNet, securityGroup, sshKey, vm) registered in CB-Tumblebug, CB-Spider, CSP @Tags [Admin] System Management @Accept json @Produce json @Param connectionName body RestInspectResourcesRequest true "Specify connectionName and resource type" @Success 200 {object} mci.InspectResource @Failure 404 {object} common.SimpleMsg @Failure 500 {object} common.SimpleMsg @Router /inspectResources [post]
func RestInspectResourcesOverview ¶ added in v0.5.4
RestInspectResourcesOverview godoc @ID InspectResourcesOverview @Summary Inspect Resources Overview (vNet, securityGroup, sshKey, vm) registered in CB-Tumblebug and CSP for all connections @Description Inspect Resources Overview (vNet, securityGroup, sshKey, vm) registered in CB-Tumblebug and CSP for all connections @Tags [Admin] System Management @Accept json @Produce json @Success 200 {object} mci.InspectResourceAllResult @Failure 404 {object} common.SimpleMsg @Failure 500 {object} common.SimpleMsg @Router /inspectResourcesOverview [get]
func RestPostConfig ¶
RestPostConfig godoc @ID PostConfig @Summary Create or Update config @Description Create or Update config (TB_SPIDER_REST_URL, TB_DRAGONFLY_REST_URL, ...) @Tags [Admin] System Configuration @Accept json @Produce json @Param config body common.ConfigReq true "Key and Value for configuration" @Success 200 {object} common.ConfigInfo @Failure 404 {object} common.SimpleMsg @Failure 500 {object} common.SimpleMsg @Router /config [post]
func RestPostNs ¶
RestPostNs godoc @ID PostNs @Summary Create namespace @Description Create namespace @Tags [Admin] System Configuration @Accept json @Produce json @Param nsReq body common.NsReq true "Details for a new namespace" @Success 200 {object} common.NsInfo @Failure 404 {object} common.SimpleMsg @Failure 500 {object} common.SimpleMsg @Router /ns [post]
func RestPutNs ¶
RestPutNs godoc @ID PutNs @Summary Update namespace @Description Update namespace @Tags [Admin] System Configuration @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param namespace body common.NsReq true "Details to update existing namespace" @Success 200 {object} common.NsInfo @Failure 404 {object} common.SimpleMsg @Failure 500 {object} common.SimpleMsg @Router /ns/{nsId} [put]
func RestRegisterCredential ¶ added in v0.8.8
RestRegisterCredential is a REST API handler for registering credentials. @ID RegisterCredential @Summary Register Credential Information @Description This API registers credential information using hybrid encryption. 1. First, compress and encrypt sensitive data using a client generated AES with a 256-bit key. 2. Then, encrypt the AES key using an RSA public key obtained from `GET /credential/publicKey`. 3. RSA encryption uses a 4096-bit key with OAEP padding and SHA-256 as the hash function. Ensure that all values are base64 encoded before sending them in the request. The public key token ID must be included in the request to allow the server to decrypt the data. @Tags [Admin] Credential Management @Accept json @Produce json @Param CredentialReq body common.CredentialReq true "Credential request info" @Success 200 {object} common.CredentialInfo @Failure 404 {object} common.SimpleMsg @Failure 500 {object} common.SimpleMsg @Router /credential [post]
func RestRegisterCspNativeResources ¶ added in v0.5.3
RestRegisterCspNativeResources godoc @ID RegisterCspNativeResources @Summary Register CSP Native Resources (vNet, securityGroup, sshKey, vm) to CB-Tumblebug @Description Register CSP Native Resources (vNet, securityGroup, sshKey, vm) to CB-Tumblebug @Tags [Admin] System Management @Accept json @Produce json @Param Request body RestRegisterCspNativeResourcesRequest true "Specify connectionName, NS Id, and MCI Name"" @Param option query string false "Option to specify resourceType" Enums(onlyVm, exceptVm) @Param mciFlag query string false "Flag to show VMs in a collective MCI form (y,n)" Enums(y, n) default(y) @Success 200 {object} mci.RegisterResourceResult @Failure 404 {object} common.SimpleMsg @Failure 500 {object} common.SimpleMsg @Router /registerCspResources [post]
func RestRegisterCspNativeResourcesAll ¶ added in v0.5.3
RestRegisterCspNativeResourcesAll godoc @ID RegisterCspNativeResourcesAll @Summary Register CSP Native Resources (vNet, securityGroup, sshKey, vm) from all Clouds to CB-Tumblebug @Description Register CSP Native Resources (vNet, securityGroup, sshKey, vm) from all Clouds to CB-Tumblebug @Tags [Admin] System Management @Accept json @Produce json @Param Request body RestRegisterCspNativeResourcesRequestAll true "Specify NS Id and MCI Name" @Param option query string false "Option to specify resourceType" Enums(onlyVm, exceptVm) @Param mciFlag query string false "Flag to show VMs in a collective MCI form (y,n)" Enums(y, n) default(y) @Success 200 {object} mci.RegisterResourceAllResult @Failure 404 {object} common.SimpleMsg @Failure 500 {object} common.SimpleMsg @Router /registerCspResourcesAll [post]
Types ¶
type JSONResult ¶ added in v0.3.11
type JSONResult struct {
}
JSONResult's data field will be overridden by the specific type
type ObjectList ¶ added in v0.3.3
type ObjectList struct {
Object []string `json:"object"`
}
ObjectList struct consists of object IDs
type RestGetAllConfigResponse ¶
type RestGetAllConfigResponse struct {
//Name string `json:"name"`
Config []common.ConfigInfo `json:"config"`
}
Response structure for RestGetAllConfig
type RestGetAllNsResponse ¶
Response structure for RestGetAllNs
type RestInspectResourcesRequest ¶ added in v0.3.6
type RestInspectResourcesRequest struct {
ConnectionName string `json:"connectionName" example:"aws-ap-southeast-1"`
ResourceType string `json:"resourceType" example:"vNet" enums:"vNet,securityGroup,sshKey,vm"`
}
Request struct for RestInspectResources
type RestRegisterCspNativeResourcesRequest ¶ added in v0.5.3
type RestRegisterCspNativeResourcesRequest struct {
ConnectionName string `json:"connectionName" example:"aws-ap-southeast-1"`
NsId string `json:"nsId" example:"default"`
MciName string `json:"mciName" example:"csp"`
}
Request struct for RestRegisterCspNativeResources
type RestRegisterCspNativeResourcesRequestAll ¶ added in v0.5.3
type RestRegisterCspNativeResourcesRequestAll struct {
NsId string `json:"nsId" example:"default"`
MciName string `json:"mciName" example:"csp"`
}
Request struct for RestRegisterCspNativeResources
type TbConnectionName ¶ added in v0.3.7
type TbConnectionName struct {
ConnectionName string `json:"connectionName"`
}