Documentation
¶
Overview ¶
Package resource is to handle REST API for resource
Package resource is to handle REST API for resource ¶
Package resource is to handle REST API for resource ¶
Package resource is to handle REST API for resource ¶
Package resource is to handle REST API for resource ¶
Package resource is to handle REST API for resource ¶
Package resource is to handle REST API for resource ¶
Package infra is to handle REST API for infra ¶
Package infra is to handle REST API for infra ¶
Package resource is to handle REST API for resource ¶
Package resource is to handle REST API for resource ¶
Package infra is to handle REST API for infra ¶
Package resource is to handle REST API for resource ¶
Package resource is to handle REST API for resource ¶
Package resource is to handle REST API for resource ¶
Package resource is to handle REST API for resource ¶
Package infra is to handle REST API for infra
Index ¶
- func CreateObjectStorageLagacy(c echo.Context) error
- func DeleteDataObjectLagacy(c echo.Context) error
- func DeleteMultipleDataObjectsLagacy(c echo.Context) error
- func DeleteObjectStorageCORSLagacy(c echo.Context) error
- func DeleteObjectStorageLagacy(c echo.Context) error
- func DeleteVersionedObjectLagacy(c echo.Context) error
- func ExistObjectStorageLagacy(c echo.Context) error
- func ExtractSitesInfoFromInfraInfo(nsId, infraId string) (*model.SitesInfo, error)
- func GeneratePresignedDownloadURLLagacy(c echo.Context) error
- func GeneratePresignedUploadURLLagacy(c echo.Context) error
- func GetDataObjectInfoLagacy(c echo.Context) error
- func GetObjectStorageCORSLagacy(c echo.Context) error
- func GetObjectStorageLagacy(c echo.Context) error
- func GetObjectStorageLocationLagacy(c echo.Context) error
- func GetObjectStorageVersioningLagacy(c echo.Context) error
- func ListObjectStoragesLagacy(c echo.Context) error
- func ListObjectVersionsLagacy(c echo.Context) error
- func RestBulkDeleteGlobalDnsRecord(c echo.Context) error
- func RestCheckK8sNodeGroupsOnK8sCreation(c echo.Context) error
- func RestCheckK8sNodeImageDesignation(c echo.Context) error
- func RestCheckObjectStorageExistance(c echo.Context) error
- func RestCheckResource(c echo.Context) error
- func RestComplementSshKey(c echo.Context) error
- func RestCreateObjectStorage(c echo.Context) error
- func RestCreateSharedResource(c echo.Context) error
- func RestDelAllCustomImage(c echo.Context) error
- func RestDelAllDataDisk(c echo.Context) error
- func RestDelAllImage(c echo.Context) error
- func RestDelAllResources(c echo.Context) error
- func RestDelAllSecurityGroup(c echo.Context) error
- func RestDelAllSharedResources(c echo.Context) error
- func RestDelAllSshKey(c echo.Context) error
- func RestDelAllVNet(c echo.Context) error
- func RestDelCustomImage(c echo.Context) error
- func RestDelDataDisk(c echo.Context) error
- func RestDelFirewallRules(c echo.Context) error
- func RestDelImage(c echo.Context) error
- func RestDelResource(c echo.Context) error
- func RestDelSecurityGroup(c echo.Context) error
- func RestDelSpec(c echo.Context) error
- func RestDelSshKey(c echo.Context) error
- func RestDelSubnet(c echo.Context) error
- func RestDelVNet(c echo.Context) error
- func RestDeleteAllK8sCluster(c echo.Context) error
- func RestDeleteAllK8sClusterDynamicTemplate(c echo.Context) error
- func RestDeleteAllSecurityGroupTemplate(c echo.Context) error
- func RestDeleteAllVNetTemplate(c echo.Context) error
- func RestDeleteDataObject(c echo.Context) error
- func RestDeleteDeregisterSubnet(c echo.Context) error
- func RestDeleteDeregisterVNet(c echo.Context) error
- func RestDeleteGlobalDnsRecord(c echo.Context) error
- func RestDeleteK8sCluster(c echo.Context) error
- func RestDeleteK8sClusterDynamicTemplate(c echo.Context) error
- func RestDeleteK8sNodeGroup(c echo.Context) error
- func RestDeleteObjectStorage(c echo.Context) error
- func RestDeleteObjectStorageCORS(c echo.Context) error
- func RestDeleteSecurityGroupTemplate(c echo.Context) error
- func RestDeleteSiteToSiteVpn(c echo.Context) error
- func RestDeleteSqlDB(c echo.Context) error
- func RestDeleteVNetTemplate(c echo.Context) error
- func RestDeleteVersionedObject(c echo.Context) error
- func RestDeregisterCustomImage(c echo.Context) error
- func RestDeregisterDataDisk(c echo.Context) error
- func RestDeregisterResource(c echo.Context) error
- func RestDeregisterSecurityGroup(c echo.Context) error
- func RestDeregisterSshKey(c echo.Context) error
- func RestFetchImages(c echo.Context) error
- func RestFetchImagesAsync(c echo.Context) error
- func RestFetchPrice(c echo.Context) error
- func RestFetchSpecs(c echo.Context) error
- func RestFilterSpecsByRange(c echo.Context) error
- func RestGeneratePresignedURL(c echo.Context) error
- func RestGetAllCustomImage(c echo.Context) error
- func RestGetAllDataDisk(c echo.Context) error
- func RestGetAllImage(c echo.Context) error
- func RestGetAllK8sCluster(c echo.Context) error
- func RestGetAllK8sClusterDynamicTemplate(c echo.Context) error
- func RestGetAllResources(c echo.Context) error
- func RestGetAllSecurityGroup(c echo.Context) error
- func RestGetAllSecurityGroupTemplate(c echo.Context) error
- func RestGetAllSiteToSiteVpn(c echo.Context) error
- func RestGetAllSqlDB(c echo.Context) error
- func RestGetAllSshKey(c echo.Context) error
- func RestGetAllVNet(c echo.Context) error
- func RestGetAllVNetTemplate(c echo.Context) error
- func RestGetAvailableK8sNodeImage(c echo.Context) error
- func RestGetAvailableK8sVersion(c echo.Context) error
- func RestGetAvailableRegionZonesForSpec(c echo.Context) error
- func RestGetAvailableRegionZonesForSpecList(c echo.Context) error
- func RestGetAvailableZonesForSpec(c echo.Context) error
- func RestGetControlK8sCluster(c echo.Context) error
- func RestGetCustomImage(c echo.Context) error
- func RestGetDataDisk(c echo.Context) error
- func RestGetDataObjectInfo(c echo.Context) error
- func RestGetFetchImagesAsyncResult(c echo.Context) error
- func RestGetGlobalDnsRecord(c echo.Context) error
- func RestGetHostedZones(c echo.Context) error
- func RestGetImage(c echo.Context) error
- func RestGetK8sCluster(c echo.Context) error
- func RestGetK8sClusterDynamicTemplate(c echo.Context) error
- func RestGetK8sClusterKubeconfig(c echo.Context) error
- func RestGetK8sClusterToken(c echo.Context) error
- func RestGetListSubnet(c echo.Context) error
- func RestGetNodeDataDisk(c echo.Context) error
- func RestGetObjectStorage(c echo.Context) error
- func RestGetObjectStorageCORS(c echo.Context) error
- func RestGetObjectStorageLocation(c echo.Context) error
- func RestGetObjectStorageSupport(c echo.Context) error
- func RestGetObjectStorageVersioning(c echo.Context) error
- func RestGetRequestStatusOfSiteToSiteVpn(c echo.Context) error
- func RestGetRequiredK8sSubnetCount(c echo.Context) error
- func RestGetResource(c echo.Context) error
- func RestGetSecurityGroup(c echo.Context) error
- func RestGetSecurityGroupTemplate(c echo.Context) error
- func RestGetSiteToSiteVpn(c echo.Context) error
- func RestGetSitesInInfra(c echo.Context) error
- func RestGetSpec(c echo.Context) error
- func RestGetSqlDB(c echo.Context) error
- func RestGetSshKey(c echo.Context) error
- func RestGetSubnet(c echo.Context) error
- func RestGetVNet(c echo.Context) error
- func RestGetVNetTemplate(c echo.Context) error
- func RestListDataObjects(c echo.Context) error
- func RestListObjectStorages(c echo.Context) error
- func RestListObjectVersions(c echo.Context) error
- func RestLoadAssets(c echo.Context) error
- func RestLookupImage(c echo.Context) error
- func RestLookupImageList(c echo.Context) error
- func RestLookupSpec(c echo.Context) error
- func RestLookupSpecList(c echo.Context) error
- func RestPostCmdK8sCluster(c echo.Context) error
- func RestPostCustomImage(c echo.Context) error
- func RestPostDataDisk(c echo.Context) error
- func RestPostFileToK8sCluster(c echo.Context) error
- func RestPostFirewallRules(c echo.Context) error
- func RestPostImage(c echo.Context) error
- func RestPostK8sCluster(c echo.Context) error
- func RestPostK8sClusterDynamic(c echo.Context) error
- func RestPostK8sClusterDynamicCheckRequest(c echo.Context) error
- func RestPostK8sClusterDynamicTemplate(c echo.Context) error
- func RestPostK8sClusterExtractTemplate(c echo.Context) error
- func RestPostK8sMultiClusterDynamic(c echo.Context) error
- func RestPostK8sMultiClusterDynamicFromTemplate(c echo.Context) error
- func RestPostK8sNodeGroup(c echo.Context) error
- func RestPostK8sNodeGroupDynamic(c echo.Context) error
- func RestPostNodeDataDisk(c echo.Context) error
- func RestPostRegisterSubnet(c echo.Context) error
- func RestPostRegisterVNet(c echo.Context) error
- func RestPostSecurityGroup(c echo.Context) error
- func RestPostSecurityGroupFromTemplate(c echo.Context) error
- func RestPostSecurityGroupTemplate(c echo.Context) error
- func RestPostSiteToSiteVpn(c echo.Context) error
- func RestPostSpec(c echo.Context) error
- func RestPostSqlDB(c echo.Context) error
- func RestPostSshKey(c echo.Context) error
- func RestPostSubnet(c echo.Context) error
- func RestPostVNet(c echo.Context) error
- func RestPostVNetFromTemplate(c echo.Context) error
- func RestPostVNetTemplate(c echo.Context) error
- func RestPutChangeK8sNodeGroupAutoscaleSize(c echo.Context) error
- func RestPutDataDisk(c echo.Context) error
- func RestPutGlobalDnsRecord(c echo.Context) error
- func RestPutImage(c echo.Context) error
- func RestPutK8sCluster(c echo.Context) error
- func RestPutK8sClusterDynamicTemplate(c echo.Context) error
- func RestPutNodeDataDisk(c echo.Context) error
- func RestPutSecurityGroup(c echo.Context) error
- func RestPutSecurityGroupTemplate(c echo.Context) error
- func RestPutSetK8sNodeGroupAutoscaling(c echo.Context) error
- func RestPutSpec(c echo.Context) error
- func RestPutSshKey(c echo.Context) error
- func RestPutUpgradeK8sCluster(c echo.Context) error
- func RestPutVNetTemplate(c echo.Context) error
- func RestRecommendK8sNode(c echo.Context) error
- func RestReconcileAllVNets(c echo.Context) error
- func RestSearchImage(c echo.Context) error
- func RestSearchImageOptions(c echo.Context) error
- func RestSetObjectStorageCORS(c echo.Context) error
- func RestSetObjectStorageVersioning(c echo.Context) error
- func RestTestAddObjectAssociation(c echo.Context) error
- func RestTestDeleteObjectAssociation(c echo.Context) error
- func RestTestGetAssociatedObjectCount(c echo.Context) error
- func RestUpdateExistingSpecListByAvailableRegionZones(c echo.Context) error
- func RestUpdateImagesFromAsset(c echo.Context) error
- func SetObjectStorageCORSLagacy(c echo.Context) error
- func SetObjectStorageVersioningLagacy(c echo.Context) error
- type Bucket
- type Buckets
- type CORSConfiguration
- type CORSRule
- type Delete
- type DeleteResult
- type Error
- type JSONResult
- type ListAllMyBucketsResult
- type ListBucketResult
- type ListVersionsResult
- type LocationConstraint
- type Object
- type Owner
- type PresignedURLResult
- type RestFilterSpecsResponse
- type RestGetAllCustomImageResponse
- type RestGetAllDataDiskResponse
- type RestGetAllK8sClusterResponse
- type RestGetAllSecurityGroupResponse
- type RestGetAllSshKeyResponse
- type RestGetAllSubnetResponse
- type RestGetAllVNetResponse
- type RestLookupImageRequest
- type RestLookupSpecRequest
- type Version
- type VersioningConfiguration
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CreateObjectStorageLagacy ¶ added in v0.12.2
RestCreateObjectStorageLagacy godoc @ID CreateObjectStorageLagacy @Summary (To be deprecated) Create an object storage (bucket) @Description (To be deprecated) Create an object storage (bucket) @Description @Description **Important Notes:** @Description - The `objectStorageName` must be globally unique across all existing buckets in the S3 compatible storage. @Description - The bucket namespace is shared by all users of the system. @Tags [Infra Resource] Object Storage Management @Accept xml @Produce xml @Param objectStorageName path string true "Object Storage Name" default(globally-unique-bucket-hctdx3) @Param credential header string true "This represents a credential or an access key ID. The required format is `{csp-region}` (i.e., the connection name)." default(aws-ap-northeast-2) @Success 200 "OK" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /resources/objectStorage/{objectStorageName} [put]
func DeleteDataObjectLagacy ¶ added in v0.12.2
RestDeleteDataObjectLagacy godoc @ID DeleteDataObjectLagacy @Summary (To be deprecated) Delete an object from a bucket @Description (To be deprecated) Delete an object from a bucket @Tags [Infra Resource] Object Storage Management @Accept xml @Produce xml @Param objectStorageName path string true "Object Storage Name" default(globally-unique-bucket-hctdx3) @Param objectKey path string true "Object Name" default(test-object.txt) @Param credential header string true "This represents a credential or an access key ID. The required format is `{csp-region}` (i.e., the connection name)." default(aws-ap-northeast-2) @Success 204 "No Content" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /resources/objectStorage/{objectStorageName}/{objectKey} [delete]
func DeleteMultipleDataObjectsLagacy ¶ added in v0.12.2
RestDeleteMultipleDataObjectsLagacy godoc @ID DeleteMultipleDataObjectsLagacy @Summary (To be deprecated) **Delete** multiple objects from a bucket @Description (To be deprecated) `Delete` multiple objects from a bucket @Description @Description **Important Notes:** @Description - The request body must contain the list of objects to delete in XML format @Description - The `delete` query parameter must be set to `true` @Description @Description **Request Body Example:** @Description ```xml @Description <?xml version="1.0" encoding="UTF-8"?> @Description <Delete xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> @Description <Object> @Description <Key>test-object1.txt</Key> @Description </Object> @Description <Object> @Description <Key>test-object2.txt</Key> @Description </Object> @Description </Delete> @Description ``` @Description @Description **Actual XML Response Example:** @Description ```xml @Description <?xml version="1.0" encoding="UTF-8"?> @Description <DeleteResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> @Description <Deleted> @Description <Key>test-object1.txt</Key> @Description </Deleted> @Description <Deleted> @Description <Key>test-object2.txt</Key> @Description </Deleted> @Description </DeleteResult> @Description ``` @Tags [Infra Resource] Object Storage Management @Accept xml @Produce xml @Param objectStorageName path string true "Object Storage Name" default(globally-unique-bucket-hctdx3) @Param delete query boolean true "Delete" default(true) enum(true) @Param credential header string true "This represents a credential or an access key ID. The required format is `{csp-region}` (i.e., the connection name)." default(aws-ap-northeast-2) @Param reqBody body Delete true "List of objects to delete" @Success 200 {object} DeleteResult "OK" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /resources/objectStorage/{objectStorageName} [post]
func DeleteObjectStorageCORSLagacy ¶ added in v0.12.2
RestDeleteObjectStorageCORSLagacy godoc @ID DeleteObjectStorageCORSLagacy @Summary (To be deprecated) Delete CORS configuration of an object storage (bucket) @Description (To be deprecated) Delete CORS configuration of an object storage (bucket) @Tags [Infra Resource] Object Storage Management @Accept xml @Produce xml @Param objectStorageName path string true "Object Storage Name" default(globally-unique-bucket-hctdx3) @Param credential header string true "This represents a credential or an access key ID. The required format is `{csp-region}` (i.e., the connection name)." default(aws-ap-northeast-2) @Success 204 "No Content" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /resources/objectStorage/{objectStorageName}/cors [delete]
func DeleteObjectStorageLagacy ¶ added in v0.12.2
RestDeleteObjectStorageLagacy godoc @ID DeleteObjectStorageLagacy @Summary (To be deprecated) Delete an object storage (bucket) @Description (To be deprecated) Delete an object storage (bucket) @Tags [Infra Resource] Object Storage Management @Accept xml @Produce xml @Param objectStorageName path string true "Object Storage Name" default(globally-unique-bucket-hctdx3) @Param credential header string true "This represents a credential or an access key ID. The required format is `{csp-region}` (i.e., the connection name)." default(aws-ap-northeast-2) @Success 204 "No Content" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /resources/objectStorage/{objectStorageName} [delete]
func DeleteVersionedObjectLagacy ¶ added in v0.12.2
RestDeleteVersionedObjectLagacy godoc @ID DeleteVersionedObjectLagacy @Summary (To be deprecated) Delete a specific version of an object in an object storage (bucket) @Description (To be deprecated) Delete a specific version of an object in an object storage (bucket) @Tags [Infra Resource] Object Storage Management @Accept xml @Produce xml @Param objectStorageName path string true "Object Storage Name" default(globally-unique-bucket-hctdx3) @Param objectKey path string true "Object Key" default(test-file.txt) @Param versionId query string true "Version ID" default(yb4PgjnFVD2LfRZHXBjjsHBkQRHlu.TZ) @Param credential header string true "This represents a credential or an access key ID. The required format is `{csp-region}` (i.e., the connection name)." default(aws-ap-northeast-2) @Success 204 "No Content" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /resources/objectStorage/{objectStorageName}/versions/{objectKey} [delete]
func ExistObjectStorageLagacy ¶ added in v0.12.2
RestExistObjectStorageLagacy godoc @ID ExistObjectStorageLagacy @Summary (To be deprecated) Check existence of an object storage (bucket) @Description (To be deprecated) Check existence of an object storage (bucket) @Tags [Infra Resource] Object Storage Management @Accept xml @Produce xml @Param objectStorageName path string true "Object Storage Name" default(globally-unique-bucket-hctdx3) @Param credential header string true "This represents a credential or an access key ID. The required format is `{csp-region}` (i.e., the connection name)." default(aws-ap-northeast-2) @Success 200 "OK" @Failure 404 "Not Found" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /resources/objectStorage/{objectStorageName} [head]
func ExtractSitesInfoFromInfraInfo ¶ added in v0.12.6
func GeneratePresignedDownloadURLLagacy ¶ added in v0.12.2
RestGeneratePresignedDownloadURLLagacy godoc @ID GeneratePresignedDownloadURLLagacy @Summary (To be deprecated) Generate a presigned URL for downloading an object from a bucket @Description (To be deprecated) Generate a presigned URL for downloading an object from a bucket @Description @Description **Important Notes:** @Description - The actual response will be XML format with root element `PresignedURLResult` @Description - The `expires` query parameter specifies the expiration time in seconds for the presigned URL (default: 3600 seconds) @Description - The generated presigned URL can be used to download the object directly without further authentication @Description @Description **Actual XML Response Example:** @Description ```xml @Description <?xml version="1.0" encoding="UTF-8"?> @Description <PresignedURLResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> @Description <PresignedURL>https://globally-unique-bucket-hctdx3.s3.dualstack.ap-southeast-2.amazonaws.com/test-file.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIA***EXAMPLE%2F20250904%2Fap-southeast-2%2Fs3%2Faws4_request&X-Amz-Date=20250904T061448Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=***-signature</PresignedURL> @Description <Expires>3600</Expires> @Description <Method>GET</Method> @Description </PresignedURLResult> @Description ``` @Tags [Infra Resource] Object Storage Management @Accept json @Produce json @Param objectStorageName path string true "Object Storage Name" default(globally-unique-bucket-hctdx3) @Param objectKey path string true "Object Name" default(test-object.txt) @Param credential header string true "This represents a credential or an access key ID. The required format is `{csp-region}` (i.e., the connection name)." default(aws-ap-northeast-2) @Param expires query int false "Expiration time in seconds for the presigned URL" default(3600) @Success 200 {object} PresignedURLResult "OK" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /resources/objectStorage/presigned/download/{objectStorageName}/{objectKey} [get]
func GeneratePresignedUploadURLLagacy ¶ added in v0.12.2
RestGeneratePresignedUploadURLLagacy godoc @ID GeneratePresignedUploadURLLagacy @Summary (To be deprecated) Generate a presigned URL for uploading an object to a bucket @Description (To be deprecated) Generate a presigned URL for uploading an object to a bucket @Description @Description **Important Notes:** @Description - The actual response will be XML format with root element `PresignedURLResult` @Description - The `expires` query parameter specifies the expiration time in seconds for the presigned URL (default: 3600 seconds) @Description - The generated presigned URL can be used to upload the object directly without further authentication @Description @Description **Actual XML Response Example:** @Description ```xml @Description <?xml version="1.0" encoding="UTF-8"?> @Description <PresignedURLResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> @Description <PresignedURL>https://globally-unique-bucket-hctdx3.s3.dualstack.ap-southeast-2.amazonaws.com/test-file.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIA***EXAMPLE%2F20250904%2Fap-southeast-2%2Fs3%2Faws4_request&X-Amz-Date=20250904T061448Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=***-signature</PresignedURL> @Description <Expires>3600</Expires> @Description <Method>PUT</Method> @Description </PresignedURLResult> @Description ``` @Tags [Infra Resource] Object Storage Management @Accept json @Produce json @Param objectStorageName path string true "Object Storage Name" default(globally-unique-bucket-hctdx3) @Param objectKey path string true "Object Name" default(test-object.txt) @Param credential header string true "This represents a credential or an access key ID. The required format is `{csp-region}` (i.e., the connection name)." default(aws-ap-northeast-2) @Param expires query int false "Expiration time in seconds for the presigned URL" default(3600) @Success 200 {object} PresignedURLResult "OK" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /resources/objectStorage/presigned/upload/{objectStorageName}/{objectKey} [get]
func GetDataObjectInfoLagacy ¶ added in v0.12.2
RestGetDataObjectInfoLagacy godoc @ID GetDataObjectInfoLagacy @Summary (To be deprecated) Get an object info from a bucket @Description (To be deprecated) Get an object info from a bucket @Description @Description **Important Notes:** @Description - The generated `Download file` link in Swagger UI may not work because this API get the object metadata only. @Tags [Infra Resource] Object Storage Management @Accept xml @Produce octet-stream @Param objectStorageName path string true "Object Storage Name" default(globally-unique-bucket-hctdx3) @Param objectKey path string true "Object Name" default(test-object.txt) @Param credential header string true "This represents a credential or an access key ID. The required format is `{csp-region}` (i.e., the connection name)." default(aws-ap-northeast-2) @Success 200 "OK" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /resources/objectStorage/{objectStorageName}/{objectKey} [head]
func GetObjectStorageCORSLagacy ¶ added in v0.12.2
RestGetObjectStorageCORSLagacy @ID GetObjectStorageCORSLagacy @Summary (To be deprecated) Get CORS configuration of an object storage (bucket) @Description (To be deprecated) Get CORS configuration of an object storage (bucket) @Description @Description **Important Notes:** @Description - The actual response will be XML format with root element `CORSConfiguration` @Description @Description **Actual XML Response Example:** @Description ```xml @Description <?xml version="1.0" encoding="UTF-8"?> @Description <CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> @Description <CORSRule> @Description <AllowedOrigin>*</AllowedOrigin> @Description <AllowedMethod>GET</AllowedMethod> @Description <AllowedMethod>PUT</AllowedMethod> @Description <AllowedMethod>POST</AllowedMethod> @Description <AllowedMethod>DELETE</AllowedMethod> @Description <AllowedHeader>*</AllowedHeader> @Description <ExposeHeader>ETag</ExposeHeader> @Description <ExposeHeader>x-amz-server-side-encryption</ExposeHeader> @Description <ExposeHeader>x-amz-request-id</ExposeHeader> @Description <ExposeHeader>x-amz-id-2</ExposeHeader> @Description <MaxAgeSeconds>3000</MaxAgeSeconds> @Description </CORSRule> @Description </CORSConfiguration> @Description ``` @Description @Description **Error Response Example (if CORS not configured):** @Description ```xml @Description <?xml version="1.0" encoding="UTF-8"?> @Description <Error> @Description <Code>NoSuchCORSConfiguration</Code> @Description <Message>The CORS configuration does not exist</Message> @Description <Resource>/example-bucket</Resource> @Description <RequestId>656c76696e6727732072657175657374</RequestId> @Description </Error> @Description ``` @Tags [Infra Resource] Object Storage Management @Accept xml @Produce xml @Param objectStorageName path string true "Object Storage Name" default(globally-unique-bucket-hctdx3) @Param credential header string true "This represents a credential or an access key ID. The required format is `{csp-region}` (i.e., the connection name)." default(aws-ap-northeast-2) @Success 200 {object} CORSConfiguration "OK" @Failure 404 {object} Error "Not Found" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /resources/objectStorage/{objectStorageName}/cors [get]
func GetObjectStorageLagacy ¶ added in v0.12.2
RestGetObjectStorageLagacy godoc @ID GetObjectStorageLagacy @Summary (To be deprecated) Get details of an object storage (bucket) @Description (To be deprecated) Get details of an object storage (bucket) @Description @Description **Important Notes:** @Description - The actual response will be XML format with root element `ListBucketResult` @Description @Description **Actual XML Response Example:** @Description ```xml @Description <?xml version="1.0" encoding="UTF-8"?> @Description <ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> @Description <Name>spider-test-bucket</Name> @Description <Prefix></Prefix> @Description <Marker></Marker> @Description <MaxKeys>1000</MaxKeys> @Description <IsTruncated>false</IsTruncated> @Description </ListBucketResult> @Description ``` @Tags [Infra Resource] Object Storage Management @Accept xml @Produce xml @Param objectStorageName path string true "Object Storage Name" default(globally-unique-bucket-hctdx3) @Param credential header string true "This represents a credential or an access key ID. The required format is `{csp-region}` (i.e., the connection name)." default(aws-ap-northeast-2) @Success 200 {object} ListBucketResult "OK" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /resources/objectStorage/{objectStorageName} [get]
func GetObjectStorageLocationLagacy ¶ added in v0.12.2
RestGetObjectStorageLocationLagacy godoc @ID GetObjectStorageLocationLagacy @Summary (To be deprecated) Get the location of an object storage (bucket) @Description (To be deprecated) Get the location of an object storage (bucket) @Description @Description **Important Notes:** @Description - The actual response will be XML format with root element `LocationConstraint` @Description @Description **Actual XML Response Example:** @Description ```xml @Description <?xml version="1.0" encoding="UTF-8"?> @Description <LocationConstraint xmlns="http://s3.amazonaws.com/doc/2006-03-01/">ap-northeast-2</LocationConstraint> @Description ``` @Tags [Infra Resource] Object Storage Management @Accept xml @Produce xml @Param objectStorageName path string true "Object Storage Name" default(globally-unique-bucket-hctdx3) @Param credential header string true "This represents a credential or an access key ID. The required format is `{csp-region}` (i.e., the connection name)." default(aws-ap-northeast-2) @Success 200 {object} LocationConstraint "OK" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /resources/objectStorage/{objectStorageName}/location [get]
func GetObjectStorageVersioningLagacy ¶ added in v0.12.2
RestGetObjectStorageVersioningLagacy godoc @ID GetObjectStorageVersioningLagacy @Summary (To be deprecated) Get versioning status of an object storage (bucket) @Description (To be deprecated) Get versioning status of an object storage (bucket) @Description @Description **Important Notes:** @Description - The actual response will be XML format with root element `VersioningConfiguration` @Description @Description **Actual XML Response Example:** @Description ```xml @Description <?xml version="1.0" encoding="UTF-8"?> @Description <VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> @Description <Status>Enabled</Status> @Description </VersioningConfiguration> @Description ``` @Tags [Infra Resource] Object Storage Management @Accept xml @Produce xml @Param objectStorageName path string true "Object Storage Name" default(globally-unique-bucket-hctdx3) @Param credential header string true "This represents a credential or an access key ID. The required format is `{csp-region}` (i.e., the connection name)." default(aws-ap-northeast-2) @Success 200 {object} VersioningConfiguration "OK" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /resources/objectStorage/{objectStorageName}/versioning [get]
func ListObjectStoragesLagacy ¶ added in v0.12.2
RestListObjectStoragesLagacy godoc @ID ListObjectStoragesLagacy @Summary (To be deprecated) List object storages (buckets) @Description (To be deprecated) Get the list of all object storages (buckets) @Description @Description **Important Notes:** @Description - The actual response will be XML format with root element `ListAllMyBucketsResult` @Description - The response includes xmlns attribute: `xmlns="http://s3.amazonaws.com/doc/2006-03-01/"` @Description - Swagger UI may show `resource.ListAllMyBucketsResult` due to rendering limitations @Description @Description **Actual XML Response Example:** @Description ```xml @Description <?xml version="1.0" encoding="UTF-8"?> @Description <ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> @Description <Owner> @Description <ID>aws-ap-northeast-2</ID> @Description <DisplayName>aws-ap-northeast-2</DisplayName> @Description </Owner> @Description <Buckets> @Description </Buckets> @Description </ListAllMyBucketsResult> @Description ``` @Tags [Infra Resource] Object Storage Management @Accept xml @Produce xml @Param credential header string true "This represents a credential or an access key ID. The required format is `{csp-region}` (i.e., the connection name)." default(aws-ap-northeast-2) @Success 200 {object} ListAllMyBucketsResult "OK" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /resources/objectStorage [get]
func ListObjectVersionsLagacy ¶ added in v0.12.2
RestListObjectVersionsLagacy godoc @ID ListObjectVersionsLagacy @Summary (To be deprecated) List object versions in an object storage (bucket) @Description (To be deprecated) List object versions in an object storage (bucket) @Description @Description **Important Notes:** @Description - The actual response will be XML format with root element `ListVersionsResult` @Description @Description **Actual XML Response Example:** @Description ```xml @Description <?xml version="1.0" encoding="UTF-8"?> @Description <ListVersionsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> @Description <Name>spider-test-bucket</Name> @Description <Prefix></Prefix> @Description <KeyMarker></KeyMarker> @Description <VersionIdMarker></VersionIdMarker> @Description <NextKeyMarker></NextKeyMarker> @Description <NextVersionIdMarker></NextVersionIdMarker> @Description <MaxKeys>1000</MaxKeys> @Description <IsTruncated>false</IsTruncated> @Description <Version> @Description <Key>test-file.txt</Key> @Description <VersionId>yb4PgjnFVD2LfRZHXBjjsHBkQRHlu.TZ</VersionId> @Description <IsLatest>true</IsLatest> @Description <LastModified>2025-09-04T04:24:12Z</LastModified> @Description <ETag>23228a38faecd0591107818c7281cece</ETag> @Description <Size>23</Size> @Description <StorageClass>STANDARD</StorageClass> @Description <Owner> @Description <ID>aws-config01</ID> @Description <DisplayName>aws-config01</DisplayName> @Description </Owner> @Description </Version> @Description </ListVersionsResult> @Description ``` @Tags [Infra Resource] Object Storage Management @Accept xml @Produce xml @Param objectStorageName path string true "Object Storage Name" default(globally-unique-bucket-hctdx3) @Param credential header string true "This represents a credential or an access key ID. The required format is `{csp-region}` (i.e., the connection name)." default(aws-ap-northeast-2) @Success 200 {object} ListVersionsResult "OK" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /resources/objectStorage/{objectStorageName}/versions [get]
func RestBulkDeleteGlobalDnsRecord ¶ added in v0.12.4
RestBulkDeleteGlobalDnsRecord godoc @ID BulkDeleteGlobalDnsRecord @Summary Bulk Delete GlobalDns Records @Description Delete multiple DNS records from Route53 in a single request. @Description Records are grouped by domain and submitted as a single ChangeBatch per domain for efficiency. @Tags [Utility] Global DNS Management @Accept json @Produce json @Param globalDnsBulkDeleteReq body model.GlobalDnsBulkDeleteReq true "List of records to delete" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Success 200 {object} model.GlobalDnsBulkDeleteResponse @Failure 400 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Router /resources/globalDns/records [delete]
func RestCheckK8sNodeGroupsOnK8sCreation ¶
RestCheckK8sNodeGroupsOnK8sCreation func is a rest api wrapper for GetModelK8sNodeGroupsOnK8sCreation. RestCheckK8sNodeGroupsOnK8sCreation godoc @ID CheckK8sNodeGroupsOnK8sCreation @Summary Check whether nodegroups are required during the K8sCluster creation @Description Check whether nodegroups are required during the K8sCluster creation @Tags [Kubernetes] Cluster Management @Accept json @Produce json @Param providerName query string true "Name of the CSP to retrieve" @Success 200 {object} model.K8sClusterNodeGroupsOnCreation @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /checkK8sNodeGroupsOnK8sCreation [get]
func RestCheckK8sNodeImageDesignation ¶
RestCheckK8sNodeImageDesignation func is a rest api wrapper for GetK8sNodeImageDesignation. RestCheckK8sNodeImageDesignation godoc @ID CheckK8sNodeImageDesignation @Summary Check whether node image designation is possible to create a K8sCluster @Description Check whether node image designation is possible to create a K8sCluster @Tags [Kubernetes] Cluster Management @Accept json @Produce json @Param providerName query string true "Name of the CSP to retrieve" @Success 200 {object} model.K8sClusterNodeImageDesignation @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /checkK8sNodeImageDesignation [get]
func RestCheckObjectStorageExistance ¶ added in v0.12.2
RestCheckObjectStorage godoc @ID CheckObjectStorage @Summary Check existence of an object storage (bucket) @Description Check existence of an object storage (bucket) @Tags [Infra Resource] Object Storage Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param osId path string true "Object Storage ID" default(os01) @Success 200 "OK" @Failure 404 {object} model.SimpleMsg "Not Found" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/objectStorage/{osId} [head]
func RestCheckResource ¶
RestCheckResource godoc @ID CheckResource @Summary Check resources' existence @Description Check resources' existence @Tags [Infra Resource] Common Utility @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param resourceType path string true "Resource Type" @Param resourceId path string true "Resource ID" @Success 200 {object} model.SimpleMsg @Failure 404 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/checkResource/{resourceType}/{resourceId} [get]
func RestComplementSshKey ¶ added in v0.12.3
RestComplementSshKey godoc @ID ComplementSshKeyRemoteCommand @Summary Complement SSH Key info to enable remote command execution @Description Update username and privateKey to enable remote command execution on registered nodes @Tags [Infra Resource] Access Key Management @Accept json @Produce json @Param sshKeyInfo body model.SshKeyComplementReq true "Username and privateKey for remote command" @Param nsId path string true "Namespace ID" default(default) @Param sshKeyId path string true "SSH Key ID" @Success 200 {object} model.SshKeyInfo @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/sshKey/{sshKeyId}/complement [put]
func RestCreateObjectStorage ¶ added in v0.12.2
RestCreateObjectStorage godoc @ID CreateObjectStorage @Summary Create an object storage (bucket) @Description Create an object storage (bucket) @Tags [Infra Resource] Object Storage Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param reqBody body model.ObjectStorageCreateRequest true "Object Storage Create Request" @Success 200 {object} model.ObjectStorageInfo "OK" @Failure 400 {object} model.SimpleMsg "Bad Request" @Failure 409 {object} model.SimpleMsg "Conflict" @Failure 500 {object} model.SimpleMsg "Internal Server Error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/objectStorage [put]
func RestCreateSharedResource ¶
RestCreateSharedResource godoc @ID CreateSharedResource @Summary Create shared resources for MC-Infra @Description Create shared resources for MC-Infra @Tags [Infra Resource] Common Utility @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param option query string true "Option" Enums(all,vnet,sg,sshkey) @Param connectionName query string false "connectionName of cloud for designated resource" default() @Success 200 {object} model.SimpleMsg @Failure 404 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/sharedResource [post]
func RestDelAllCustomImage ¶
RestDelAllCustomImage godoc @ID DelAllCustomImage @Summary Delete all customImages @Description Delete all customImages @Tags [Infra Resource] Image Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param match query string false "Delete resources containing matched ID-substring only" default() @Success 200 {object} model.ResourceDeleteResults @Failure 404 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/customImage [delete]
func RestDelAllDataDisk ¶
RestDelAllDataDisk godoc @ID DelAllDataDisk @Summary Delete all Data Disks @Description Delete all Data Disks @Tags [Infra Resource] Data Disk Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param match query string false "Delete resources containing matched ID-substring only" default() @Success 200 {object} model.ResourceDeleteResults @Failure 404 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/dataDisk [delete]
func RestDelAllImage ¶
RestDelAllImage godoc @ID DelAllImage @Summary Delete all images @Description Delete all images @Tags [Infra Resource] Image Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(system) @Param match query string false "Delete resources containing matched ID-substring only" default() @Success 200 {object} model.ResourceDeleteResults @Failure 404 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/image [delete]
func RestDelAllResources ¶
RestDelAllResources is a common function to handle 'DelAllResources' REST API requests. Dummy functions for Swagger exist in [resource/*.go]
func RestDelAllSecurityGroup ¶
RestDelAllSecurityGroup godoc @ID DelAllSecurityGroup @Summary Delete all Security Groups @Description Delete all Security Groups @Tags [Infra Resource] Security Group Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param match query string false "Delete resources containing matched ID-substring only" default() @Success 200 {object} model.ResourceDeleteResults @Failure 404 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/securityGroup [delete]
func RestDelAllSharedResources ¶
RestDelAllSharedResources godoc @ID DelAllSharedResources @Summary Delete all Default Resource Objects in the given namespace @Description Delete all Default Resource Objects in the given namespace @Tags [Infra Resource] Common Utility @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Success 200 {object} model.ResourceDeleteResults @Failure 404 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/sharedResources [delete]
func RestDelAllSshKey ¶
RestDelAllSshKey godoc @ID DelAllSshKey @Summary Delete all SSH Keys @Description Delete all SSH Keys @Tags [Infra Resource] Access Key Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param match query string false "Delete resources containing matched ID-substring only" default() @Success 200 {object} model.ResourceDeleteResults @Failure 404 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/sshKey [delete]
func RestDelAllVNet ¶
RestDelAllVNet godoc @ID DelAllVNet @Summary Delete all VNets @Description Delete all VNets @Tags [Infra Resource] Network Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param match query string false "Delete resources containing matched ID-substring only" default() @Success 200 {object} model.ResourceDeleteResults "OK" @Failure 404 {object} model.SimpleMsg "Not Found" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/vNet [delete]
func RestDelCustomImage ¶
RestDelCustomImage godoc @ID DelCustomImage @Summary Delete customImage @Description Delete customImage @Tags [Infra Resource] Image Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param customImageId path string true "customImage ID" @Success 200 {object} model.SimpleMsg @Failure 404 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/customImage/{customImageId} [delete]
func RestDelDataDisk ¶
RestDelDataDisk godoc @ID DelDataDisk @Summary Delete Data Disk @Description Delete Data Disk @Tags [Infra Resource] Data Disk Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param dataDiskId path string true "Data Disk ID" @Success 200 {object} model.SimpleMsg @Failure 404 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/dataDisk/{dataDiskId} [delete]
func RestDelFirewallRules ¶
RestDelFirewallRules godoc @ID DelFirewallRules @Summary Delete specific FirewallRules (Replace with remaining rules) @Description Delete specific FirewallRules: Remove specified rules from the Security Group while keeping other existing rules. @Description This API will remove only the specified rules from the Security Group, leaving all other rules intact. @Description @Description Usage: @Description Use this API to remove specific firewall rules from a Security Group. Only the rules matching the provided criteria will be deleted. @Description - Rules that exactly match the provided Direction, Protocol, Port, and CIDR will be removed. @Description - All other existing rules will remain unchanged. @Description @Description Notes: @Description - "Ports" field supports single port ("22"), port range ("80-100"), and multiple ports/ranges ("22,80-100,443"). @Description - "Protocol" can be TCP, UDP, ICMP, ALL, etc. (as supported by the cloud provider). @Description - "Direction" must be either "inbound" or "outbound". @Description - "CIDR" is the allowed IP range. @Tags [Infra Resource] Security Group Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param securityGroupId path string true "Security Group ID" @Param firewallRuleReq body model.SecurityGroupUpdateReq true "FirewallRules to delete (only firewallRules field is used)" @Success 200 {object} model.SecurityGroupUpdateResponse "Updated Security Group info after rule deletion" @Failure 404 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/securityGroup/{securityGroupId}/rules [delete]
func RestDelImage ¶
RestDelImage godoc @ID DelImage @Summary Delete image @Description Delete image @Tags [Infra Resource] Image Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(system) @Param imageId path string true "Image ID ({providerName}+{regionName}+{cspImageName})" @Success 200 {object} model.SimpleMsg @Failure 404 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/image/{imageId} [delete]
func RestDelResource ¶
RestDelResource is a common function to handle 'DelResource' REST API requests. Dummy functions for Swagger exist in [resource/*.go]
func RestDelSecurityGroup ¶
RestDelSecurityGroup godoc @ID DelSecurityGroup @Summary Delete Security Group @Description Delete Security Group @Tags [Infra Resource] Security Group Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param securityGroupId path string true "Security Group ID" @Success 200 {object} model.SimpleMsg @Failure 404 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/securityGroup/{securityGroupId} [delete]
func RestDelSpec ¶
RestDelSpec godoc @ID DelSpec @Summary Delete spec @Description Delete spec @Tags [Infra Resource] Spec Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(system) @Param specId path string true "Spec ID ({providerName}+{regionName}+{cspSpecName})" @Success 200 {object} model.SimpleMsg @Failure 404 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/spec/{specId} [delete]
func RestDelSshKey ¶
RestDelSshKey godoc @ID DelSshKey @Summary Delete SSH Key @Description Delete SSH Key @Tags [Infra Resource] Access Key Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param sshKeyId path string true "SSH Key ID" @Success 200 {object} model.SimpleMsg @Failure 404 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/sshKey/{sshKeyId} [delete]
func RestDelSubnet ¶
RestDelSubnet godoc @ID DelSubnet @Summary Delete Subnet (supporting actions: reconcile, force) @Description Delete Subnet @Description --- @Description **action options:** @Description @Description **reconcile** – Synchronize Tumblebug metadata with the actual CSP state. @Description Checks whether the Subnet resource still exists on CSP (via Spider). @Description If the CSP resource is gone, removes the orphaned Tumblebug metadata. @Description If the CSP resource still exists, keeps the metadata intact. @Description Use this to clean up stale metadata after system errors or partial failures. @Description (e.g., `DELETE /ns/{nsId}/resources/vNet/{vNetId}/subnet/{subnetId}?action=reconcile`) @Description @Description **force** – Force-delete the Subnet on CSP (passes `?force=true` to Spider). @Description Use this when normal deletion fails due to CSP-side constraints (e.g., resource in use). @Description (e.g., `DELETE /ns/{nsId}/resources/vNet/{vNetId}/subnet/{subnetId}?action=force`) @Tags [Infra Resource] Network Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param vNetId path string true "VNet ID" @Param subnetId path string true "Subnet ID" @Param action query string false "Action" Enums(reconcile, force) @Success 200 {object} model.SimpleMsg "OK" @Failure 404 {object} model.SimpleMsg "Not Found" @Failure 500 {object} model.SimpleMsg "Internal Server Error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/vNet/{vNetId}/subnet/{subnetId} [delete]
func RestDelVNet ¶
RestDelVNet godoc @ID DelVNet @Summary Delete VNet (supporting actions: withsubnet, reconcile, force) @Description Delete VNet @Description --- @Description **action options:** @Description @Description **withsubnets** – Delete the VNet together with all its subnets in a single call. @Description @Description **reconcile** – Synchronize Tumblebug metadata with the actual CSP state. @Description Checks whether the VNet/Subnet resource still exists on CSP (via Spider). @Description If the CSP resource is gone, removes the orphaned Tumblebug metadata. @Description If the CSP resource still exists, keeps the metadata intact. @Description Use this to clean up stale metadata after system errors or partial failures. @Description (e.g., `DELETE /ns/{nsId}/resources/vNet/{vNetId}?action=reconcile`) @Description @Description **force** – Force-delete the VNet and its subnets on CSP (passes `?force=true` to Spider). @Description Use this when normal deletion fails due to CSP-side constraints (e.g., resource in use). @Description (e.g., `DELETE /ns/{nsId}/resources/vNet/{vNetId}?action=force`) @Tags [Infra Resource] Network Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param vNetId path string true "VNet ID" @Param action query string false "Action" Enums(withsubnets,reconcile,force) @Success 200 {object} model.SimpleMsg "OK" @Failure 404 {object} model.SimpleMsg "Not Found" @Failure 500 {object} model.SimpleMsg "Internal Server Error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/vNet/{vNetId} [delete]
func RestDeleteAllK8sCluster ¶
RestDeleteAllK8sCluster godoc @ID DeleteAllK8sCluster @Summary Delete all K8sClusters @Description Delete all K8sClusters @Tags [Kubernetes] Cluster Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param match query string false "Delete resources containing matched ID-substring only" default() @Param option query string false "Option for K8sCluster deletion" Enums(force) @Success 200 {object} model.IdList @Failure 404 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/k8sCluster [delete]
func RestDeleteAllK8sClusterDynamicTemplate ¶ added in v0.12.15
RestDeleteAllK8sClusterDynamicTemplate godoc @ID DeleteAllK8sClusterDynamicTemplate @Summary Delete all K8s Cluster Dynamic Templates @Description Delete all K8s Cluster Dynamic Templates in a namespace. @Tags [K8s] K8s Cluster Template Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Success 200 {object} model.SimpleMsg "All templates deleted successfully" @Failure 500 {object} model.SimpleMsg "Internal error" @Param x-request-id header string false "Custom request ID for tracking" @Router /ns/{nsId}/template/k8sCluster [delete]
func RestDeleteAllSecurityGroupTemplate ¶ added in v0.12.3
RestDeleteAllSecurityGroupTemplate godoc @ID DeleteAllSecurityGroupTemplate @Summary Delete all SecurityGroup Templates @Description Delete all SecurityGroup Templates in a namespace. @Tags [Infra Resource] SecurityGroup Template Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Success 200 {object} model.SimpleMsg "All templates deleted successfully" @Failure 500 {object} model.SimpleMsg "Internal error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/template/securityGroup [delete]
func RestDeleteAllVNetTemplate ¶ added in v0.12.3
RestDeleteAllVNetTemplate godoc @ID DeleteAllVNetTemplate @Summary Delete all vNet Templates @Description Delete all vNet Templates in a namespace. @Tags [Infra Resource] vNet Template Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Success 200 {object} model.SimpleMsg "All templates deleted successfully" @Failure 500 {object} model.SimpleMsg "Internal error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/template/vNet [delete]
func RestDeleteDataObject ¶ added in v0.12.2
RestDeleteDataObject godoc @ID DeleteDataObject @Summary Delete an object from an object storage (bucket) @Description Delete an object from an object storage (bucket) @Tags [Infra Resource] Object Storage Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param osId path string true "Object Storage ID" default(os01) @Param objectKey path string true "Object Key" @Success 204 "No Content" @Failure 400 {object} model.SimpleMsg "Bad Request" @Failure 404 {object} model.SimpleMsg "Not Found" @Failure 500 {object} model.SimpleMsg "Internal Server Error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/objectStorage/{osId}/object/{objectKey} [delete]
func RestDeleteDeregisterSubnet ¶
RestDeleteDeregisterSubnet godoc @ID DeleteDeregisterSubnet @Summary Deregister Subnet (created in CSP) @Description Deregister Subnet, which was created in CSP @Tags [Infra Resource] Network Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param vNetId path string true "VNet ID" @Param subnetId path string true "Subnet ID" @Success 200 {object} model.SimpleMsg "OK" @Failure 404 {object} model.SimpleMsg "Not Found" @Failure 500 {object} model.SimpleMsg "Internal Server Error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/deregisterResource/vNet/{vNetId}/subnet/{subnetId} [delete]
func RestDeleteDeregisterVNet ¶
RestDeleteDeregisterVNet godoc @ID DeleteDeregisterVNet @Summary Deregister VNet (created in CSP) @Description Deregister the VNet, which was created in CSP @Tags [Infra Resource] Network Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param vNetId path string true "VNet ID" @Param withSubnets query string false "Delete subnets as well" Enums(true,false) @Success 200 {object} model.VNetInfo "OK" @Failure 404 {object} model.SimpleMsg "Not Found" @Failure 500 {object} model.SimpleMsg "Internal Server Error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/deregisterResource/vNet/{vNetId} [delete]
func RestDeleteGlobalDnsRecord ¶ added in v0.12.4
RestDeleteGlobalDnsRecord godoc @ID DeleteGlobalDnsRecord @Summary Delete GlobalDns Record @Description Delete DNS record(s) from Route53. If setIdentifier is provided, deletes only that specific record. @Description If setIdentifier is empty, deletes all records matching the name and type. @Tags [Utility] Global DNS Management @Accept json @Produce json @Param globalDnsDeleteReq body model.GlobalDnsDeleteReq true "Details for record deletion" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Success 200 {object} model.SimpleMsg @Failure 400 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Router /resources/globalDns/record [delete]
func RestDeleteK8sCluster ¶
RestDeleteK8sCluster func is a rest api wrapper for DeleteK8sCluster. RestDeleteK8sCluster godoc @ID DeleteK8sCluster @Summary Delete K8sCluster @Description Delete K8sCluster @Tags [Kubernetes] Cluster Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param k8sClusterId path string true "K8sCluster ID" default(k8scluster01) @Param option query string false "Option for K8sCluster deletion" Enums(force) @Success 200 {object} model.SimpleMsg @Failure 404 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/k8sCluster/{k8sClusterId} [delete]
func RestDeleteK8sClusterDynamicTemplate ¶ added in v0.12.15
RestDeleteK8sClusterDynamicTemplate godoc @ID DeleteK8sClusterDynamicTemplate @Summary Delete a K8s Cluster Dynamic Template @Description Delete a specific K8s Cluster Dynamic Template. @Tags [K8s] K8s Cluster Template Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param templateId path string true "Template ID" @Success 200 {object} model.SimpleMsg "Template deleted successfully" @Failure 404 {object} model.SimpleMsg "Template not found" @Failure 500 {object} model.SimpleMsg "Internal error" @Param x-request-id header string false "Custom request ID for tracking" @Router /ns/{nsId}/template/k8sCluster/{templateId} [delete]
func RestDeleteK8sNodeGroup ¶
RestDeleteK8sNodeGroup func is a rest api wrapper for RemoveK8sNodeGroup. RestDeleteK8sNodeGroup godoc @ID DeleteK8sNodeGroup @Summary Remove a K8sNodeGroup @Description Remove a K8sNodeGroup @Tags [Kubernetes] Cluster Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param k8sClusterId path string true "K8sCluster ID" default(k8scluster01) @Param k8sNodeGroupName path string true "K8sNodeGroup Name" default(k8sng01) @Param option query string false "Option for K8sNodeGroup deletion" Enums(force) @Success 200 {object} model.SimpleMsg @Failure 404 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/k8sCluster/{k8sClusterId}/k8sNodeGroup/{k8sNodeGroupName} [delete]
func RestDeleteObjectStorage ¶
RestDeleteObjectStorage godoc @ID RestDeleteObjectStorage @Summary Delete an object storage (bucket) @Description Delete an object storage (bucket). @Description @Description **Query option (mutually exclusive — specify at most one):** @Description @Description | option | Description | @Description |--------|-------------| @Description | (none) | Standard delete. Fails if the bucket is not empty. | @Description | `empty` | Empty the bucket first, then delete. | @Description | `force` | Force delete bucket with all contents (passed to Spider as `force=true`). Behaviour varies by CSP; use when standard delete is not sufficient. | @Description | `reconcile` | Do not call the CSP delete API. Instead, check whether the CSP bucket actually exists and remove only the Tumblebug metadata if the bucket is absent. Use this to clean up orphaned metadata that cannot be deleted through normal means (e.g., a bucket stuck in `Failed` status after a partial creation or a CSP-side deletion error such as Tencent 405). Returns a reconcile result object instead of 204. | @Tags [Infra Resource] Object Storage Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param osId path string true "Object Storage ID" default(os01) @Param option query string false "Delete option (mutually exclusive)" Enums(empty, force, reconcile) @Success 204 "No Content" @Success 200 {object} model.ObjectStorageReconcileResponse "OK (option=reconcile only)" @Failure 400 {object} model.SimpleMsg "Bad Request" @Failure 404 {object} model.SimpleMsg "Not Found" @Failure 500 {object} model.SimpleMsg "Internal Server Error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/objectStorage/{osId} [delete]
func RestDeleteObjectStorageCORS ¶ added in v0.12.2
RestDeleteObjectStorageCORS godoc @ID DeleteObjectStorageCORS @Summary Delete CORS configuration of an object storage (bucket) @Description Delete all CORS rules of an object storage (bucket) @Tags [Infra Resource] Object Storage Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param osId path string true "Object Storage ID" default(os01) @Success 204 "No Content" @Failure 400 {object} model.SimpleMsg "Bad Request" @Failure 404 {object} model.SimpleMsg "Not Found" @Failure 500 {object} model.SimpleMsg "Internal Server Error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/objectStorage/{osId}/cors [delete]
func RestDeleteSecurityGroupTemplate ¶ added in v0.12.3
RestDeleteSecurityGroupTemplate godoc @ID DeleteSecurityGroupTemplate @Summary Delete a SecurityGroup Template @Description Delete a specific SecurityGroup Template. @Tags [Infra Resource] SecurityGroup Template Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param templateId path string true "Template ID" @Success 200 {object} model.SimpleMsg "Template deleted successfully" @Failure 404 {object} model.SimpleMsg "Template not found" @Failure 500 {object} model.SimpleMsg "Internal error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/template/securityGroup/{templateId} [delete]
func RestDeleteSiteToSiteVpn ¶
RestDeleteSiteToSiteVpn godoc @ID DeleteSiteToSiteVpn @Summary Delete a site-to-site VPN @Description Delete a site-to-site VPN @Description @Description - Note: A one-time retry is performed to handle transient failures caused by CSP-internal timing issues between dependent resources. @Description @Description **Query option:** @Description @Description | option | Description | @Description |--------|-------------| @Description | (none) | Standard delete via Terrarium. | @Description | `reconcile` | Do not call the Terrarium delete API. Instead, check whether the Terrarium resource actually exists. If it is missing, remove orphaned Tumblebug metadata. If it exists but the metadata is stuck in a terminal-failure state (e.g., `Failed(DeletionFailed)`), restore the status to `Available`. Returns a reconcile result object instead of a normal delete response. | @Tags [Infra Resource] Site-to-site VPN Management (preview) @Accept json @Produce json-stream @Param nsId path string true "Namespace ID" default(default) @Param infraId path string true "Infra ID" default(infra01) @Param vpnId path string true "VPN ID" default(vpn01) @Param option query string false "Delete option" Enums(reconcile) @Success 200 {object} model.SimpleMsg "OK" @Success 200 {object} model.VpnReconcileResponse "OK (option=reconcile only)" @Failure 400 {object} model.SimpleMsg "Bad Request" @Failure 404 {object} model.SimpleMsg "Not Found" @Failure 500 {object} model.SimpleMsg "Internal Server Error" @Failure 503 {object} model.SimpleMsg "Service Unavailable" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/infra/{infraId}/vpn/{vpnId} [delete]
func RestDeleteSqlDB ¶
RestDeleteSqlDB godoc @ID DeleteSqlDb @Summary Delete a SQL datatbase @Description Delete a SQL datatbase @Tags [Infra Resource] SQL Database Management (under development) @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param sqlDbId path string true "SQL DB ID" default(sqldb01) @Success 200 {object} model.SimpleMsg "OK" @Failure 400 {object} model.SimpleMsg "Bad Request" @Failure 500 {object} model.SimpleMsg "Internal Server Error" @Failure 503 {object} model.SimpleMsg "Service Unavailable" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/sqlDb/{sqlDbId} [delete]
func RestDeleteVNetTemplate ¶ added in v0.12.3
RestDeleteVNetTemplate godoc @ID DeleteVNetTemplate @Summary Delete a vNet Template @Description Delete a specific vNet Template. @Tags [Infra Resource] vNet Template Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param templateId path string true "Template ID" @Success 200 {object} model.SimpleMsg "Template deleted successfully" @Failure 404 {object} model.SimpleMsg "Template not found" @Failure 500 {object} model.SimpleMsg "Internal error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/template/vNet/{templateId} [delete]
func RestDeleteVersionedObject ¶ added in v0.12.2
RestDeleteVersionedObject godoc @ID DeleteVersionedObject @Summary Delete a specific version of an object @Description Delete a specific version of an object in an object storage (bucket) @Description @Description **Note: ** @Description - If no version is specified, we will define how it behaves and update it when necessary. @Description @Tags [Infra Resource] Object Storage Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param osId path string true "Object Storage ID" default(os01) @Param objectKey path string true "Object Key" @Param versionId query string true "Version ID" @Success 204 "No Content" @Failure 400 {object} model.SimpleMsg "Bad Request" @Failure 404 {object} model.SimpleMsg "Not Found" @Failure 500 {object} model.SimpleMsg "Internal Server Error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/objectStorage/{osId}/versions/{objectKey} [delete]
func RestDeregisterCustomImage ¶ added in v0.12.3
RestDeregisterCustomImage godoc @ID DeregisterCustomImage @Summary Deregister customImage @Description Deregister customImage from Spider and TB without deleting the actual CSP resource @Tags [Infra Resource] Image Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param customImageId path string true "customImage ID" @Success 200 {object} model.SimpleMsg @Failure 404 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/deregisterResource/customImage/{customImageId} [delete]
func RestDeregisterDataDisk ¶ added in v0.12.3
RestDeregisterDataDisk godoc @ID DeregisterDataDisk @Summary Deregister Data Disk @Description Deregister Data Disk from Spider and TB without deleting the actual CSP resource @Tags [Infra Resource] Data Disk Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param dataDiskId path string true "Data Disk ID" @Success 200 {object} model.SimpleMsg @Failure 404 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/deregisterResource/dataDisk/{dataDiskId} [delete]
func RestDeregisterResource ¶ added in v0.12.3
RestDeregisterResource is a common function to handle 'DeregisterResource' REST API requests. This function deregisters resources from Spider and TB without deleting the actual CSP resource. Dummy functions for Swagger exist in [resource/*.go]
func RestDeregisterSecurityGroup ¶ added in v0.12.3
RestDeregisterSecurityGroup godoc @ID DeregisterSecurityGroup @Summary Deregister Security Group @Description Deregister Security Group from Spider and TB without deleting the actual CSP resource @Tags [Infra Resource] Security Group Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param securityGroupId path string true "Security Group ID" @Success 200 {object} model.SimpleMsg @Failure 404 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/deregisterResource/securityGroup/{securityGroupId} [delete]
func RestDeregisterSshKey ¶ added in v0.12.3
RestDeregisterSshKey godoc @ID DeregisterSshKey @Summary Deregister SSH Key @Description Deregister SSH Key from Spider and TB without deleting the actual CSP resource @Tags [Infra Resource] Access Key Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param sshKeyId path string true "SSH Key ID" @Success 200 {object} model.SimpleMsg @Failure 404 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/deregisterResource/sshKey/{sshKeyId} [delete]
func RestFetchImages ¶
RestFetchImages godoc @ID FetchImages @Summary Fetch images for regions of each CSP synchronously @Description Fetch images waiting for completion. @Description @Description **Provider Selection Options:** @Description - `targetProviders`: Specify exact providers to fetch (e.g., ["aws", "gcp"]). When set, only these providers are processed and `excludedProviders` is ignored. @Description - `excludedProviders`: Specify providers to skip (e.g., ["azure"]). Only used when `targetProviders` is not set. @Description - `regionAgnosticProviders`: Providers where images are shared across regions (e.g., ["gcp"]). Only one region will be fetched per provider. @Description @Description **Note:** `regionAgnosticProviders` should only contain providers that are also in `targetProviders` (or not excluded). @Tags [Infra Resource] Image Management @Accept json @Produce json @Param fetchOption body model.ImageFetchOption true "Fetch option" @Success 202 {object} resource.FetchImagesAsyncResult @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /fetchImages [post]
func RestFetchImagesAsync ¶
RestFetchImagesAsync godoc @ID FetchImagesAsync @Summary Fetch images asynchronously @Description Fetch images in the background without waiting for completion. @Description @Description **Provider Selection Options:** @Description - `targetProviders`: Specify exact providers to fetch (e.g., ["aws", "gcp"]). When set, only these providers are processed and `excludedProviders` is ignored. @Description - `excludedProviders`: Specify providers to skip (e.g., ["azure"]). Only used when `targetProviders` is not set. @Description - `regionAgnosticProviders`: Providers where images are shared across regions (e.g., ["gcp"]). Only one region will be fetched per provider. @Description @Description **Note:** `regionAgnosticProviders` should only contain providers that are also in `targetProviders` (or not excluded). @Tags [Infra Resource] Image Management @Accept json @Produce json @Param fetchOption body model.ImageFetchOption true "Fetch option" @Success 202 {object} model.SimpleMsg @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /fetchImagesAsync [post]
func RestFetchPrice ¶
RestFetchPrice godoc @ID FetchPrice @Summary Fetch price from all CSP connections and update the price information for associated specs in the system. @Description Fetch price from all CSP connections and update the price information for associated specs in the system. @Tags [Infra Resource] Spec Management @Accept json @Produce json @Success 200 {object} model.SimpleMsg @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /fetchPrice [post]
func RestFetchSpecs ¶
RestFetchSpecs godoc @ID FetchSpecs @Summary Fetch specs from CSPs and register them in the system. @Description Fetch specs from CSPs and register them in the system. @Description @Description **Provider Selection Options:** @Description - `targetProviders`: Specify exact providers to fetch (e.g., ["aws", "gcp"]). When set, only these providers are processed and `excludedProviders` is ignored. @Description - `excludedProviders`: Specify providers to skip (e.g., ["azure"]). Only used when `targetProviders` is not set. @Description - `regionAgnosticProviders`: Providers where specs are shared across regions (e.g., ["gcp"]). Only one region will be fetched per provider. @Description @Description **Note:** `regionAgnosticProviders` should only contain providers that are also in `targetProviders` (or not excluded). @Tags [Infra Resource] Spec Management @Accept json @Produce json @Param fetchOption body model.SpecFetchOption true "Fetch option" @Success 202 {object} resource.FetchSpecsAsyncResult @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /fetchSpecs [post]
func RestFilterSpecsByRange ¶
RestFilterSpecsByRange godoc @ID FilterSpecsByRange @Summary Filter specs by range @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. @Tags [Infra Resource] Spec Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(system) @Param specRangeFilter body model.FilterSpecsByRangeRequest false "Filter for range-filtering specs (limit: 0 for all results, >0 for limited results)" @Success 200 {object} RestFilterSpecsResponse @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/filterSpecsByRange [post]
func RestGeneratePresignedURL ¶ added in v0.12.2
RestGeneratePresignedURL godoc @ID GeneratePresignedURL @Summary Generate a presigned URL for uploading or downloading an object @Description Generate a presigned URL for uploading or downloading an object to an object storage (bucket) @Description @Description **Important Notes:** @Description - The generated presigned URL can be used to upload the object directly without further authentication @Description - The expiration time is specified in seconds (default: 3600 seconds) @Description @Description **Example Usage: Upload** @Description ```bash @Description # Using the presigned URL to upload a file @Description curl -i -H "Content-Type: text/plain" -X PUT "<PRESIGNED_URL>" --data-binary "@local-file.txt" @Description ``` @Description @Description **Example Usage: download** @Description ```bash @Description # Using the presigned URL to download a file @Description curl -X GET "<PRESIGNED_URL>" -o downloaded-file.txt @Description ``` @Tags [Infra Resource] Object Storage Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param osId path string true "Object Storage ID" default(os01) @Param objectKey path string true "Object Key" @Param operation query string false "Operation type" Enums(upload, download) @Param expires query int false "Expiration time in seconds" default(3600) @Success 200 {object} model.ObjectStoragePresignedUrlResponse "OK" @Failure 400 {object} model.SimpleMsg "Bad Request" @Failure 404 {object} model.SimpleMsg "Not Found" @Failure 500 {object} model.SimpleMsg "Internal Server Error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/objectStorage/{osId}/object/{objectKey}/presignedUrl [post]
func RestGetAllCustomImage ¶
RestGetAllCustomImage godoc @ID GetAllCustomImage @Summary List all customImages or customImages' ID @Description List all customImages or customImages' ID @Tags [Infra Resource] Image Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param option query string false "Option" Enums(id) @Param filterKey query string false "Field key for filtering (ex:guestOS)" @Param filterVal query string false "Field value for filtering (ex: Ubuntu18.04)" @Success 200 {object} JSONResult{[DEFAULT]=RestGetAllCustomImageResponse,[ID]=model.IdList} "Different return structures by the given option param" @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/customImage [get]
func RestGetAllDataDisk ¶
RestGetAllDataDisk godoc @ID GetAllDataDisk @Summary List all Data Disks or Data Disks' ID @Description List all Data Disks or Data Disks' ID @Tags [Infra Resource] Data Disk Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param option query string false "Option" Enums(id) @Param filterKey query string false "Field key for filtering (ex: systemLabel)" @Param filterVal query string false "Field value for filtering (ex: Registered from CSP resource)" @Success 200 {object} JSONResult{[DEFAULT]=RestGetAllDataDiskResponse,[ID]=model.IdList} "Different return structures by the given option param" @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/dataDisk [get]
func RestGetAllImage ¶
RestGetAllImage godoc @ID GetAllImage @Summary List all images or images' ID @Description List all images or images' ID @Tags [Infra Resource] Image Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(system) @Param option query string false "Option" Enums(id) @Param filterKey query string false "Field key for filtering (ex:guestOS)" @Param filterVal query string false "Field value for filtering (ex: Ubuntu18.04)" @Success 200 {object} JSONResult{[DEFAULT]=model.SearchImageResponse,[ID]=model.IdList} "Different return structures by the given option param" @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/image [get]
func RestGetAllK8sCluster ¶
RestGetAllK8sCluster godoc @ID GetAllK8sCluster @Summary List all K8sClusters or K8sClusters' ID @Description List all K8sClusters or K8sClusters' ID @Tags [Kubernetes] Cluster Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param option query string false "Option" Enums(id) @Param filterKey query string false "Field key for filtering (ex: cspResourceName)" @Param filterVal query string false "Field value for filtering (ex: default-alibaba-ap-northeast-2-vpc)" @Success 200 {object} JSONResult{[DEFAULT]=RestGetAllK8sClusterResponse,[ID]=model.IdList} "Different return structures by the given option param" @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/k8sCluster [get]
func RestGetAllK8sClusterDynamicTemplate ¶ added in v0.12.15
RestGetAllK8sClusterDynamicTemplate godoc @ID GetAllK8sClusterDynamicTemplate @Summary List all K8s Cluster Dynamic Templates @Description List all K8s Cluster Dynamic Templates in a namespace. @Description Optionally filter by keyword matching against template name or description (case-insensitive). @Tags [K8s] K8s Cluster Template Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param filterKeyword query string false "Keyword to filter templates by name or description" @Success 200 {object} model.K8sClusterDynamicTemplateListResponse "List of templates" @Failure 500 {object} model.SimpleMsg "Internal error" @Param x-request-id header string false "Custom request ID for tracking" @Router /ns/{nsId}/template/k8sCluster [get]
func RestGetAllResources ¶
RestGetAllResources is a common function to handle 'GetAllResources' REST API requests. Dummy functions for Swagger exist in [resource/*.go]
func RestGetAllSecurityGroup ¶
RestGetAllSecurityGroup godoc @ID GetAllSecurityGroup @Summary List all Security Groups or Security Groups' ID @Description List all Security Groups or Security Groups' ID @Tags [Infra Resource] Security Group Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param option query string false "Option" Enums(id) @Param filterKey query string false "Field key for filtering (ex: systemLabel)" @Param filterVal query string false "Field value for filtering (ex: Registered from CSP resource)" @Success 200 {object} JSONResult{[DEFAULT]=RestGetAllSecurityGroupResponse,[ID]=model.IdList} "Different return structures by the given option param" @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/securityGroup [get]
func RestGetAllSecurityGroupTemplate ¶ added in v0.12.3
RestGetAllSecurityGroupTemplate godoc @ID GetAllSecurityGroupTemplate @Summary List all SecurityGroup Templates @Description List all SecurityGroup Templates in a namespace. @Description Optionally filter by keyword matching against template name or description (case-insensitive). @Tags [Infra Resource] SecurityGroup Template Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param filterKeyword query string false "Keyword to filter templates by name or description" @Success 200 {object} model.SecurityGroupTemplateListResponse "List of templates" @Failure 500 {object} model.SimpleMsg "Internal error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/template/securityGroup [get]
func RestGetAllSiteToSiteVpn ¶
RestGetAllSiteToSiteVpn godoc @ID GetAllSiteToSiteVpn @Summary Get all site-to-site VPNs @Description Get all site-to-site VPNs @Tags [Infra Resource] Site-to-site VPN Management (preview) @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param infraId path string true "Infra ID" default(infra01) @Param option query string false "Option" Enums(InfoList, IdList) default(IdList) @Success 200 {object} model.VpnInfoList "OK" @Success 200 {object} model.VpnIdList "OK" @Failure 400 {object} model.SimpleMsg "Bad Request" @Failure 500 {object} model.SimpleMsg "Internal Server Error" @Failure 503 {object} model.SimpleMsg "Service Unavailable" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/infra/{infraId}/vpn [get]
func RestGetAllSqlDB ¶
RestGetAllSqlDb godoc @ID GetAllSqlDb @Summary Get all SQL Databases (TBD) @Description Get all SQL Databases (TBD) @Tags [Infra Resource] SQL Database Management (under development) @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param option query string false "Option" Enums(InfoList, IdList) default(IdList) @Success 200 {object} model.VpnInfoList "OK" ///////////// @Success 200 {object} model.VpnIdList "OK" ///////////// @Failure 400 {object} model.SimpleMsg "Bad Request" @Failure 500 {object} model.SimpleMsg "Internal Server Error" @Failure 503 {object} model.SimpleMsg "Service Unavailable" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/sqlDb [get]
func RestGetAllSshKey ¶
RestGetAllSshKey godoc @ID GetAllSshKey @Summary List all SSH Keys or SSH Keys' ID @Description List all SSH Keys or SSH Keys' ID @Tags [Infra Resource] Access Key Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param option query string false "Option" Enums(id) @Param filterKey query string false "Field key for filtering (ex: systemLabel)" @Param filterVal query string false "Field value for filtering (ex: Registered from CSP resource)" @Success 200 {object} JSONResult{[DEFAULT]=RestGetAllSshKeyResponse,[ID]=model.IdList} "Different return structures by the given option param" @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/sshKey [get]
func RestGetAllVNet ¶
RestGetAllVNet godoc @ID GetAllVNet @Summary List all VNets or VNets' ID @Description List all VNets or VNets' ID @Tags [Infra Resource] Network Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param option query string false "Option" Enums(id) @Param filterKey query string false "Field key for filtering (ex: cspResourceName)" @Param filterVal query string false "Field value for filtering (ex: default-alibaba-ap-northeast-1-vpc)" @Success 200 {object} JSONResult{[DEFAULT]=RestGetAllVNetResponse,[ID]=model.IdList} "Different return structures by the given option param" @Failure 404 {object} model.SimpleMsg "Not Found" @Failure 500 {object} model.SimpleMsg "Internal Server Error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/vNet [get]
func RestGetAllVNetTemplate ¶ added in v0.12.3
RestGetAllVNetTemplate godoc @ID GetAllVNetTemplate @Summary List all vNet Templates @Description List all vNet Templates in a namespace. @Description Optionally filter by keyword matching against template name or description (case-insensitive). @Tags [Infra Resource] vNet Template Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param filterKeyword query string false "Keyword to filter templates by name or description" @Success 200 {object} model.VNetTemplateListResponse "List of templates" @Failure 500 {object} model.SimpleMsg "Internal error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/template/vNet [get]
func RestGetAvailableK8sNodeImage ¶
RestGetAvailableK8sNodeImage func is a rest api wrapper for GetAvailableK8sNodeImage. RestGetAvailableK8sNodeImage godoc @ID GetAvailableK8sNodeImage @Summary (UNDER DEVELOPMENT!!!) Get available kubernetes cluster node image @Description (UNDER DEVELOPMENT!!!) Get available kubernetes cluster node image @Tags [Kubernetes] Cluster Management @Accept json @Produce json @Param providerName query string true "Name of the CSP to retrieve" @Param regionName query string true "Name of region to retrieve" @Success 200 {object} model.K8sClusterNodeImageDetailAvailable @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /availableK8sNodeImage [get]
func RestGetAvailableK8sVersion ¶
RestGetAvailableK8sVersion func is a rest api wrapper for GetAvailableK8sVersion. RestGetAvailableK8sVersion godoc @ID GetAvailableK8sVersion @Summary Get available kubernetes cluster version @Description Get available kubernetes cluster version @Tags [Kubernetes] Cluster Management @Accept json @Produce json @Param providerName query string true "Name of the CSP to retrieve" @Param regionName query string true "Name of region to retrieve" @Success 200 {object} model.K8sClusterVersionDetailAvailable @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /availableK8sVersion [get]
func RestGetAvailableRegionZonesForSpec ¶ added in v0.11.9
RestGetAvailableRegionZonesForSpec godoc @ID GetAvailableRegionZonesForSpec @Summary Get available regions and zones for a specific spec @Description Query the availability of a specific spec across all regions/zones @Tags [Infra Resource] Spec Management @Accept json @Produce json @Param availabilityReq body model.GetAvailableRegionZonesRequest true "Spec availability request" @Success 200 {object} model.SpecAvailabilityInfo @Failure 400 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /availableRegionZonesForSpec [post]
func RestGetAvailableRegionZonesForSpecList ¶ added in v0.11.9
RestGetAvailableRegionZonesForSpecList godoc @ID GetAvailableRegionZonesForSpecList @Summary Get available regions and zones for multiple specs @Description Query the availability for multiple specs in parallel and return batch results @Tags [Infra Resource] Spec Management @Accept json @Produce json @Param batchAvailabilityReq body model.GetAvailableRegionZonesListRequest true "Batch spec availability request" @Success 200 {object} model.SpecAvailabilityBatchResult @Failure 400 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /availableRegionZonesForSpecList [post]
func RestGetAvailableZonesForSpec ¶ added in v0.12.2
RestGetAvailableZonesForSpec godoc @ID GetAvailableZonesForSpec @Summary Get available (verified) zones for a specific spec ID @Description Query verified zones for a spec based on connection configs. Returns zones that are both verified and available for the specified spec. For Alibaba Cloud, additional CSP API filtering is applied. @Tags [Infra Resource] Spec Management @Accept json @Produce json @Param specId query string true "Spec ID (format: provider+region+cspSpecName)" example(aws+ap-northeast-2+t3.medium) @Param credentialHolder query string false "Credential holder name (defaults to 'admin')" example(admin) @Success 200 {object} model.AvailableZonesInfo "Available zones information" @Failure 400 {object} model.AvailableZonesError "Error with details" @Failure 404 {object} model.AvailableZonesError "Spec not found or resource not available" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /availableZonesForSpec [get]
func RestGetControlK8sCluster ¶
RestGetControlK8sCluster godoc @ID GetControlK8sCluster @Summary Control the creation of K8sCluster (continue, withdraw) @Description Control the creation of K8sCluster (continue, withdraw) @Tags [Kubernetes] Cluster Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param k8sClusterId path string true "K8sCluster ID" default(k8scluster01) @Param action query string true "Action to K8sCluster" Enums(continue, withdraw) @Success 200 {object} model.SimpleMsg @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/control/k8sCluster/{k8sClusterId} [get]
func RestGetCustomImage ¶
RestGetCustomImage godoc @ID GetCustomImage @Summary Get customImage @Description Get customImage @Tags [Infra Resource] Image Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param customImageId path string true "customImage ID" @Success 200 {object} model.ImageInfo @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/customImage/{customImageId} [get]
func RestGetDataDisk ¶
RestGetDataDisk godoc @ID GetDataDisk @Summary Get Data Disk @Description Get Data Disk @Tags [Infra Resource] Data Disk Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param dataDiskId path string true "Data Disk ID" @Success 200 {object} model.DataDiskInfo @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/dataDisk/{dataDiskId} [get]
func RestGetDataObjectInfo ¶ added in v0.12.2
RestGetDataObjectInfo godoc @ID GetDataObjectInfo @Summary Get object info from an object storage (bucket) @Description Get object info from an object storage (bucket) @Description @Description **Important Notes:** @Description - This API retrieves the metadata of an object without downloading the actual content @Description - Returns metadata in response headers (Content-Length, Content-Type, ETag, Last-Modified) @Tags [Infra Resource] Object Storage Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param osId path string true "Object Storage ID" default(os01) @Param objectKey path string true "Object Key" @Success 200 "OK - Object metadata returned in headers" @Failure 400 {object} model.SimpleMsg "Bad Request" @Failure 404 {object} model.SimpleMsg "Not Found" @Failure 500 {object} model.SimpleMsg "Internal Server Error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/objectStorage/{osId}/object/{objectKey} [head]
func RestGetFetchImagesAsyncResult ¶
RestGetFetchImagesAsyncResult godoc @ID GetFetchImagesAsyncResult @Summary Get result of asynchronous image fetching @Description Get detailed results from the last asynchronous image fetch operation @Tags [Infra Resource] Image Management @Accept json @Produce json @Success 200 {object} resource.FetchImagesAsyncResult @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /fetchImagesResult [get]
func RestGetGlobalDnsRecord ¶ added in v0.12.4
RestGetGlobalDnsRecord godoc @ID GetGlobalDnsRecord @Summary Get GlobalDns Record @Description Get DNS records for a domain from Route53. Includes routing policy and geoproximity info. @Tags [Utility] Global DNS Management @Accept json @Produce json @Param domainName query string true "Domain Name" @Param recordName query string false "Record Name (Prefix search)" @Param recordType query string false "Record Type" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Success 200 {object} model.RestGetGlobalDnsRecordResponse @Failure 400 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Router /resources/globalDns/record [get]
func RestGetHostedZones ¶ added in v0.12.4
RestGetHostedZones godoc @ID GetHostedZones @Summary List Hosted Zones @Description List all hosted zones available in Route53 @Tags [Utility] Global DNS Management @Produce json @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Success 200 {object} model.RestGetHostedZonesResponse @Failure 500 {object} model.SimpleMsg @Router /resources/globalDns/hostedZone [get]
func RestGetImage ¶
RestGetImage godoc @ID GetImage @Summary Get image @Description GetImage returns an image object if there are matched images for the given namespace and imageKey(imageId) @Tags [Infra Resource] Image Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(system) @Param imageId path string true "(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." @Success 200 {object} model.ImageInfo @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/image/{imageId} [get]
func RestGetK8sCluster ¶
RestGetK8sCluster func is a rest api wrapper for GetK8sCluster. RestGetK8sCluster godoc @ID GetK8sCluster @Summary Get K8sCluster @Description Get K8sCluster @Tags [Kubernetes] Cluster Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param k8sClusterId path string true "K8sCluster ID" default(k8scluster01) @Success 200 {object} model.K8sClusterInfo @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/k8sCluster/{k8sClusterId} [get]
func RestGetK8sClusterDynamicTemplate ¶ added in v0.12.15
RestGetK8sClusterDynamicTemplate godoc @ID GetK8sClusterDynamicTemplate @Summary Get a K8s Cluster Dynamic Template @Description Retrieve a specific K8s Cluster Dynamic Template by ID. @Tags [K8s] K8s Cluster Template Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param templateId path string true "Template ID" @Success 200 {object} model.K8sClusterDynamicTemplateInfo "Template information" @Failure 404 {object} model.SimpleMsg "Template not found" @Failure 500 {object} model.SimpleMsg "Internal error" @Param x-request-id header string false "Custom request ID for tracking" @Router /ns/{nsId}/template/k8sCluster/{templateId} [get]
func RestGetK8sClusterKubeconfig ¶ added in v0.12.6
RestGetK8sClusterKubeconfig func is a rest api wrapper for GetK8sClusterKubeconfig. RestGetK8sClusterKubeconfig godoc @ID GetK8sClusterKubeconfig @Summary Get CSP native kubeconfig for K8sCluster @Description Get a CSP native kubeconfig for the specified K8sCluster. @Description Returns a kubeconfig using CSP native auth plugins (e.g., aws-iam-authenticator for EKS, gke-gcloud-auth-plugin for GKE). @Tags [Kubernetes] Cluster Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param k8sClusterId path string true "K8sCluster ID" default(k8scluster01) @Success 200 {object} model.K8sClusterKubeconfigResponse @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/k8sCluster/{k8sClusterId}/kubeconfig [get]
func RestGetK8sClusterToken ¶ added in v0.12.3
RestGetK8sClusterToken func is a rest api wrapper for GetK8sClusterToken. RestGetK8sClusterToken godoc @ID GetK8sClusterToken @Summary Get a token for K8sCluster access @Description Get an access token for the specified K8sCluster. @Description Only applicable to CSPs that use exec-based authentication (e.g., GCP GKE, AWS EKS). @Tags [Kubernetes] Cluster Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param k8sClusterId path string true "K8sCluster ID" default(k8scluster01) @Success 200 {object} model.K8sClusterTokenResponse @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/k8sCluster/{k8sClusterId}/token [get]
func RestGetListSubnet ¶
RestGetListSubnet godoc @ID GetAllSubnet @Summary List all subnets @Description List all subnets @Tags [Infra Resource] Network Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param vNetId path string true "VNet ID" @Success 200 {object} RestGetAllSubnetResponse "OK" @Failure 404 {object} model.SimpleMsg "Not Found" @Failure 500 {object} model.SimpleMsg "Internal Server Error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/vNet/{vNetId}/subnet [get]
func RestGetNodeDataDisk ¶ added in v0.12.6
RestGetNodeDataDisk godoc @ID GetNodeDataDisk @Summary Get available dataDisks for a node @Description Get available dataDisks for a node @Tags [Infra Resource] Data Disk Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param infraId path string true "Infra ID" default(infra01) @Param nodeId path string true "Node ID" default(g1-1) @Success 200 {object} JSONResult{[DEFAULT]=RestGetAllDataDiskResponse,[ID]=model.IdList} "Different return structures by the given option param" @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/infra/{infraId}/node/{nodeId}/dataDisk [get]
func RestGetObjectStorage ¶
RestGetObjectStorage godoc @ID GetObjectStorage @Summary Get details of an object storage (bucket) @Description Get details of an object storage (bucket) @Tags [Infra Resource] Object Storage Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param osId path string true "Object Storage ID" default(os01) @Success 200 {object} model.ObjectStorageInfo "OK" @Failure 400 {object} model.SimpleMsg "Bad Request" @Failure 404 {object} model.SimpleMsg "Not Found" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/objectStorage/{osId} [get]
func RestGetObjectStorageCORS ¶ added in v0.12.2
RestGetObjectStorageCORS godoc @ID GetObjectStorageCORS @Summary Get CORS configuration of an object storage (bucket) @Description Get CORS configuration of an object storage (bucket) @Tags [Infra Resource] Object Storage Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param osId path string true "Object Storage ID" default(os01) @Success 200 {object} model.ObjectStorageGetCorsResponse "OK" @Failure 400 {object} model.SimpleMsg "Bad Request" @Failure 404 {object} model.SimpleMsg "Not Found" @Failure 500 {object} model.SimpleMsg "Internal Server Error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/objectStorage/{osId}/cors [get]
func RestGetObjectStorageLocation ¶ added in v0.12.2
RestGetObjectStorageLocation godoc @ID GetObjectStorageLocation @Summary Get the location of an object storage (bucket) @Description Get the location of an object storage (bucket) @Tags [Infra Resource] Object Storage Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param osId path string true "Object Storage ID" default(os01) @Success 200 {object} model.ObjectStorageLocationResponse "OK" @Failure 400 {object} model.SimpleMsg "Bad Request" @Failure 404 {object} model.SimpleMsg "Not Found" @Failure 500 {object} model.SimpleMsg "Internal Server Error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/objectStorage/{osId}/location [get]
func RestGetObjectStorageSupport ¶ added in v0.12.3
RestGetObjectStorageSupport godoc @ID GetObjectStorageSupport @Summary Get CSP support information for object storage features @Description Get CSP support information for object storage features (CORS, Versioning) @Description If cspType query parameter is provided, returns support information for that specific CSP @Description If cspType is not provided, returns support information for all CSPs @Tags [Infra Resource] Object Storage Management @Accept json @Produce json @Param cspType query string false "CSP Type (e.g., aws, gcp, azure, alibaba, tencent, ibm, openstack, ncp, nhn, kt)" Enums(aws, gcp, azure, alibaba, tencent, ibm, openstack, ncp, nhn, kt) @Success 200 {object} model.ObjectStorageSupportResponse "OK" @Failure 400 {object} model.SimpleMsg "Bad Request" @Failure 500 {object} model.SimpleMsg "Internal Server Error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /objectStorage/support [get]
func RestGetObjectStorageVersioning ¶ added in v0.12.2
RestGetObjectStorageVersioning godoc @ID GetObjectStorageVersioning @Summary Get versioning configuration of an object storage (bucket) @Description Get versioning configuration of an object storage (bucket) @Tags [Infra Resource] Object Storage Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param osId path string true "Object Storage ID" default(os01) @Success 200 {object} model.ObjectStorageGetVersioningResponse "OK" @Failure 400 {object} model.SimpleMsg "Bad Request" @Failure 404 {object} model.SimpleMsg "Not Found" @Failure 500 {object} model.SimpleMsg "Internal Server Error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/objectStorage/{osId}/versioning [get]
func RestGetRequestStatusOfSiteToSiteVpn ¶
RestGetRequestStatusOfSiteToSiteVpn godoc @ID GetRequestStatusOfSiteToSiteVpn @Summary Check the status of a specific request by its ID @Description Check the status of a specific request by its ID @Tags [Infra Resource] Site-to-site VPN Management (preview) @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param infraId path string true "Infra ID" default(infra01) @Param vpnId path string true "VPN ID" default(vpn01) @Param requestId path string true "Request ID" @Success 200 {object} model.Response "OK" @Failure 400 {object} model.SimpleMsg "Bad Request" @Failure 404 {object} model.SimpleMsg "Not Found" @Failure 500 {object} model.SimpleMsg "Internal Server Error" @Failure 503 {object} model.SimpleMsg "Service Unavailable" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/infra/{infraId}/vpn/{vpnId}/request/{requestId} [get]
func RestGetRequiredK8sSubnetCount ¶
RestGetRequiredK8sSubnetCount func is a rest api wrapper for GetModelK8sRequiredSubnetCount. RestGetRequiredK8sSubnetCount godoc @ID GetRequiredK8sSubnetCount @Summary Get the required subnet count to create a K8sCluster @Description Get the required subnet count to create a K8sCluster @Tags [Kubernetes] Cluster Management @Accept json @Produce json @Param providerName query string true "Name of the CSP to retrieve" @Success 200 {object} model.K8sClusterRequiredSubnetCount @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /requiredK8sSubnetCount [get]
func RestGetResource ¶
RestGetResource is a common function to handle 'GetResource' REST API requests. Dummy functions for Swagger exist in [resource/*.go]
func RestGetSecurityGroup ¶
RestGetSecurityGroup godoc @ID GetSecurityGroup @Summary Get Security Group @Description Get Security Group @Tags [Infra Resource] Security Group Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param securityGroupId path string true "Security Group ID" @Success 200 {object} model.SecurityGroupInfo @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/securityGroup/{securityGroupId} [get]
func RestGetSecurityGroupTemplate ¶ added in v0.12.3
RestGetSecurityGroupTemplate godoc @ID GetSecurityGroupTemplate @Summary Get a SecurityGroup Template @Description Retrieve a specific SecurityGroup Template by ID. @Tags [Infra Resource] SecurityGroup Template Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param templateId path string true "Template ID" @Success 200 {object} model.SecurityGroupTemplateInfo "Template information" @Failure 404 {object} model.SimpleMsg "Template not found" @Failure 500 {object} model.SimpleMsg "Internal error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/template/securityGroup/{templateId} [get]
func RestGetSiteToSiteVpn ¶
RestGetSiteToSiteVpn godoc @ID GetSiteToSiteVpn @Summary Get resource info of a site-to-site VPN @Description Get resource info of a site-to-site VPN @Tags [Infra Resource] Site-to-site VPN Management (preview) @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param infraId path string true "Infra ID" default(infra01) @Param vpnId path string true "VPN ID" default(vpn01) @Param refresh query boolean false "Refresh the resource info from CSPs" default(true) @Success 200 {object} model.VpnInfo "OK" @Failure 400 {object} model.SimpleMsg "Bad Request" @Failure 404 {object} model.SimpleMsg "Not Found" @Failure 500 {object} model.SimpleMsg "Internal Server Error" @Failure 503 {object} model.SimpleMsg "Service Unavailable" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/infra/{infraId}/vpn/{vpnId} [get]
func RestGetSitesInInfra ¶ added in v0.12.6
RestGetSitesInInfra godoc @ID GetSitesInInfra @Summary Get sites in Infra @Description Get sites in Infra @Tags [Infra Resource] Site-to-site VPN Management (preview) @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param infraId path string true "Infra ID" default(infra01) @Success 200 {object} model.SitesInfo "OK" @Failure 400 {object} model.SimpleMsg "Bad Request" @Failure 404 {object} model.SimpleMsg "Not Found" @Failure 500 {object} model.SimpleMsg "Internal Server Error" @Failure 503 {object} model.SimpleMsg "Service Unavailable" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/infra/{infraId}/site [get]
func RestGetSpec ¶
RestGetSpec godoc @ID GetSpec @Summary Get spec @Description Get spec @Tags [Infra Resource] Spec Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(system) @Param specId path string true "Spec ID ({providerName}+{regionName}+{cspSpecName})" @Success 200 {object} model.SpecInfo @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/spec/{specId} [get]
func RestGetSqlDB ¶
RestGetSqlDB godoc @ID GetSqlDb @Summary Get resource info of a SQL datatbase @Description Get resource info of a SQL datatbase @Tags [Infra Resource] SQL Database Management (under development) @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param sqlDbId path string true "SQL DB ID" default(sqldb01) @Param detail query string false "Resource info by detail (refined, raw)" default(refined) @Success 200 {object} model.SqlDBInfo "OK" @Failure 400 {object} model.SimpleMsg "Bad Request" @Failure 500 {object} model.SimpleMsg "Internal Server Error" @Failure 503 {object} model.SimpleMsg "Service Unavailable" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/sqlDb/{sqlDbId} [get]
func RestGetSshKey ¶
RestGetSshKey godoc @ID GetSshKey @Summary Get SSH Key @Description Get SSH Key @Tags [Infra Resource] Access Key Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param sshKeyId path string true "SSH Key ID" @Success 200 {object} model.SshKeyInfo @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/sshKey/{sshKeyId} [get]
func RestGetSubnet ¶
RestGetSubnet godoc @ID GetSubnet @Summary Get Subnet @Description Get Subnet @Tags [Infra Resource] Network Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param vNetId path string true "VNet ID" @Param subnetId path string true "Subnet ID" @Success 200 {object} model.SubnetInfo "OK" @Failure 404 {object} model.SimpleMsg "Not Found" @Failure 500 {object} model.SimpleMsg "Internal Server Error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/vNet/{vNetId}/subnet/{subnetId} [get]
func RestGetVNet ¶
RestGetVNet godoc @ID GetVNet @Summary Get VNet @Description Get VNet @Tags [Infra Resource] Network Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param vNetId path string true "VNet ID" @Success 200 {object} model.VNetInfo "OK" @Failure 404 {object} model.SimpleMsg "Not Found" @Failure 500 {object} model.SimpleMsg "Internal Server Error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/vNet/{vNetId} [get]
func RestGetVNetTemplate ¶ added in v0.12.3
RestGetVNetTemplate godoc @ID GetVNetTemplate @Summary Get a vNet Template @Description Retrieve a specific vNet Template by ID. @Tags [Infra Resource] vNet Template Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param templateId path string true "Template ID" @Success 200 {object} model.VNetTemplateInfo "Template information" @Failure 404 {object} model.SimpleMsg "Template not found" @Failure 500 {object} model.SimpleMsg "Internal error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/template/vNet/{templateId} [get]
func RestListDataObjects ¶ added in v0.12.2
RestListDataObjects godoc @ID ListDataObjects @Summary List objects in an object storage (bucket) @Description List all objects in an object storage (bucket) @Tags [Infra Resource] Object Storage Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param osId path string true "Object Storage ID" default(os01) // @Param prefix query string false "Filter objects by prefix" default() // @Param maxKeys query int false "Maximum number of keys to return" default(1000) @Success 200 {object} model.ObjectStorageListObjectsResponse "OK - Returns object storage info with contents" @Failure 400 {object} model.SimpleMsg "Bad Request" @Failure 404 {object} model.SimpleMsg "Not Found" @Failure 500 {object} model.SimpleMsg "Internal Server Error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/objectStorage/{osId}/object [get]
func RestListObjectStorages ¶ added in v0.12.2
RestListObjectStorages godoc @ID ListObjectStorages @Summary List object storages (buckets) @Description Get the list of object storages (buckets) @Description @Description **Filtering with filterKey and filterVal:** @Description Both parameters perform a case-insensitive substring match against the stored JSON of each resource. @Description A resource is included in the result only when its JSON contains **both** the filterKey string and the filterVal string. @Description @Description Common filterKey examples: @Description - `connectionName` — filter by cloud connection (e.g. filterVal: `aws-ap-northeast-2`) @Description - `status` — filter by resource status (e.g. filterVal: `Available`) @Tags [Infra Resource] Object Storage Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param option query string false "Option" Enums(id) @Param filterKey query string false "Field key for filtering (ex: connectionName)" @Param filterVal query string false "Field value for filtering (ex: aws-ap-northeast-2)" @Success 200 {object} JSONResult{[DEFAULT]=model.ObjectStorageListResponse,[ID]=model.IdList} "Different return structures by the given option param" @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/objectStorage [get]
func RestListObjectVersions ¶ added in v0.12.2
RestListObjectVersions godoc @ID ListObjectVersions @Summary List object versions in an object storage (bucket) @Description List all versions of objects in an object storage (bucket) @Tags [Infra Resource] Object Storage Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param osId path string true "Object Storage ID" default(os01) @Success 200 {object} model.ObjectStorageListObjectVersionsResponse "OK" @Failure 400 {object} model.SimpleMsg "Bad Request" @Failure 404 {object} model.SimpleMsg "Not Found" @Failure 500 {object} model.SimpleMsg "Internal Server Error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/objectStorage/{osId}/versions [get]
func RestLoadAssets ¶
RestLoadAssets godoc @ID LoadAssets @Summary Load Common Resources from internal asset files @Description Load Common Resources from internal asset files (Spec, Image). By default, Azure images are excluded for faster initialization. Use includeAzure=true to fetch Azure images (may take 40+ minutes). @Tags [Admin] System Configuration @Accept json @Produce json @Param includeAzure query string false "Include Azure images (may take 40+ minutes)" default(false) Enums(true, false) @Success 200 {object} model.IdList @Failure 404 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /loadAssets [get]
func RestLookupImage ¶
RestLookupImage godoc @ID LookupImage @Summary Lookup image (for debugging purposes) @Description Lookup image (for debugging purposes) @Tags [Infra Resource] Image Management @Accept json @Produce json @Param lookupImageReq body RestLookupImageRequest true "Specify connectionName, cspImageName" @Success 200 {object} model.SpiderImageInfo @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /lookupImage [post]
func RestLookupImageList ¶
RestLookupImageList godoc @ID LookupImageList @Summary Lookup image list (for debugging purposes) @Description Lookup image list (for debugging purposes) @Tags [Infra Resource] Image Management @Accept json @Produce json @Param lookupImagesReq body common.TbConnectionName true "Specify connectionName" @Success 200 {object} model.SpiderImageList @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /lookupImages [post]
func RestLookupSpec ¶
RestLookupSpec godoc @ID LookupSpec @Summary Lookup spec (for debugging purposes) @Description Lookup spec (for debugging purposes) @Tags [Infra Resource] Spec Management @Accept json @Produce json @Param lookupSpecReq body RestLookupSpecRequest true "Specify connectionName & cspSpecNameS" @Success 200 {object} model.SpiderSpecInfo @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /lookupSpec [post]
func RestLookupSpecList ¶
RestLookupSpecList godoc @ID LookupSpecList @Summary Lookup spec list (for debugging purposes) @Description Lookup spec list (for debugging purposes) @Tags [Infra Resource] Spec Management @Accept json @Produce json @Param lookupSpecsReq body common.TbConnectionName true "Specify connectionName" @Success 200 {object} model.SpiderSpecList @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /lookupSpecs [post]
func RestPostCmdK8sCluster ¶
RestPostCmdK8sCluster godoc @ID PostCmdK8sCluster @Summary Send a command to specified Container in K8sCluster @Description Send a command to specified Container in K8sCluster @Description [note] This feature is not intended for general use @Description This API is provided as an exceptional and limited function for specific purposes such as migration. @Description Kubernetes resource information required as input for this API is not currently provided, and its availability in the future is uncertain. @Tags [Kubernetes] Cluster's Container Remote Command @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param k8sClusterId path string true "K8sCluster ID" default(k8scluster01) @Param k8sClusterNamespace query string true "Namespace in K8sCluster to apply the command" default(default) @Param k8sClusterPodName query string true "Pod Name in K8sCluster to apply the command" default(mypod) @Param k8sClusterContainerName query string false "Container Name in K8sCluster to apply the command" @Param k8sClusterContainerCmdReq body model.K8sClusterContainerCmdReq true "K8sCluster's Container Command Request" @Param x-request-id header string false "Custom request ID" @Success 200 {object} model.K8sClusterContainerCmdResult @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/cmd/k8sCluster/{k8sClusterId} [post]
func RestPostCustomImage ¶
RestPostCustomImage godoc @ID PostCustomImage @Summary Register existing Custom Image in a CSP @Description Register existing Custom Image in a CSP (option=register) @Tags [Infra Resource] Image Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param option query string true "Option: " Enums(register) @Param customImageRegisterReq body model.CustomImageReq true "Request to Register existing Custom Image in a CSP" @Success 200 {object} model.ImageInfo @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/customImage [post]
func RestPostDataDisk ¶
RestPostDataDisk godoc @ID PostDataDisk @Summary Create Data Disk @Description Create Data Disk @Tags [Infra Resource] Data Disk Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param option query string false "Option: " Enums(register) @Param dataDiskInfo body model.DataDiskReq true "Details for an Data Disk object" @Success 200 {object} model.DataDiskInfo @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/dataDisk [post]
func RestPostFileToK8sCluster ¶
RestPostFileToK8sCluster godoc @ID PostFileToK8sCluster @Summary Transfer a file to specified Container in K8sCluster @Description Transfer a file to specified Container in K8sCluster. The tar command is required in the container. @Description [note] This feature is not intended for general use @Description This API is provided as an exceptional and limited function for specific purposes such as migration. @Description Kubernetes resource information required as input for this API is not currently provided, and its availability in the future is uncertain. @Tags [Kubernetes] Cluster's Container Remote Command @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param k8sClusterId path string true "K8sCluster ID" default(k8scluster01) @Param k8sClusterNamespace query string true "Namespace in K8sCluster to apply the command" default(default) @Param k8sClusterPodName query string true "Pod Name in K8sCluster to apply the command" default(mypod) @Param k8sClusterContainerName query string false "Container Name in K8sCluster to apply the command" @Param path formData string true "Target path where the file will be stored" default(/tmp) @Param file formData file true "The file to be uploaded (Max 10MB)" @Param x-request-id header string false "Custom request ID" @Success 200 {object} model.K8sClusterContainerCmdResults @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/transferFile/k8sCluster/{k8sClusterId} [post]
func RestPostFirewallRules ¶
RestPostFirewallRules godoc @ID PostFirewallRules @Summary Add new FirewallRules to existing rules @Description Add new FirewallRules: Add the provided firewall rules to the existing rules in the Security Group. @Description This API will only add new rules without deleting or modifying existing ones. @Description If a rule with identical properties already exists, it will be skipped to avoid duplicates. @Description @Description Usage: @Description Use this API to add new firewall rules to a Security Group while preserving existing rules. @Description - Only new rules that don't already exist will be added. @Description - Existing rules remain unchanged. @Description - If an identical rule already exists, it will be skipped. @Description @Description Notes: @Description - "Ports" field supports single port ("22"), port range ("80-100"), and multiple ports/ranges ("22,80-100,443"). @Description - The valid port number range is 0 to 65535 (inclusive). @Description - "Protocol" can be TCP, UDP, ICMP, ALL, etc. (as supported by the cloud provider). @Description - "Direction" must be either "inbound" or "outbound". @Description - "CIDR" is the allowed IP range. @Tags [Infra Resource] Security Group Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param securityGroupId path string true "Security Group ID" @Param firewallRuleReq body model.SecurityGroupUpdateReq true "FirewallRules to add (only firewallRules field is used)" @Success 200 {object} model.SecurityGroupUpdateResponse "Updated Security Group info with added firewall rules" @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/securityGroup/{securityGroupId}/rules [post]
func RestPostImage ¶
RestPostImage godoc @ID PostImage @Summary Register image @Description Register image @Tags [Infra Resource] Image Management @Accept json @Produce json @Param action query string true "registeringMethod" Enums(registerWithInfo, registerWithId) @Param nsId path string true "Namespace ID" default(system) @Param imageInfo body model.ImageInfo false "Specify details of a image object (cspResourceName, guestOS, description, ...) manually" @Param imageReq body model.ImageReq false "Specify (name, connectionName, cspImageName) to register an image object automatically" @Param update query boolean false "Force update to existing image object" default(false) @Success 200 {object} model.ImageInfo @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/image [post]
func RestPostK8sCluster ¶
RestPostK8sCluster func is a rest api wrapper for CreateK8sCluster. RestPostK8sCluster godoc @ID PostK8sCluster @Summary Create K8sCluster @Description Create K8sCluster<br>Find details from https://github.com/cloud-barista/cb-tumblebug/discussions/1614 @Tags [Kubernetes] Cluster Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param option query string false "Option: [required params for register] connectionName, name, cspResourceId" Enums(register) @Param skipVersionCheck query string false "Skip Kubernetes version validation (use for testing with unlisted versions)" default(false) @Param k8sClusterReq body model.K8sClusterReq true "Details of the K8sCluster object" @Success 200 {object} model.K8sClusterInfo @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/k8sCluster [post]
func RestPostK8sClusterDynamic ¶
RestPostK8sClusterDynamic godoc @ID PostK8sClusterDynamic @Summary Create K8sCluster Dynamically @Description Create K8sCluster Dynamically from common spec and image @Tags [Kubernetes] Cluster Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param k8sClusterDyanmicReq body model.K8sClusterDynamicReq true "Request body to provision K8sCluster dynamically. <br> Must include specId and imageId info. <br> (ex: {name: k8scluster01, imageId: azure+koreacentral+ubuntu22.04, specId: azure+koreacentral+Standard_B2s}]}) <br> You can use /k8sClusterRecommendNode and /k8sClusterDynamicCheckRequest to get it. <br> Check the guide: https://github.com/cloud-barista/cb-tumblebug/discussions/1913" @Param option query string false "Option for K8sCluster creation" Enums(hold) @Param skipVersionCheck query string false "Skip Kubernetes version validation (use for testing with unlisted versions)" default(false) @Param x-request-id header string false "Custom request ID" @Success 200 {object} model.K8sClusterInfo @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/k8sClusterDynamic [post]
func RestPostK8sClusterDynamicCheckRequest ¶
RestPostK8sClusterDynamicCheckRequest godoc @ID PostK8sClusterDynamicCheckRequest @Summary Check available ConnectionConfig list for creating K8sCluster Dynamically @Description Check available ConnectionConfig list before create K8sCluster Dynamically from common spec and image @Tags [Kubernetes] Cluster Management @Accept json @Produce json @Param k8sClusterConnectionConfigCandidatesReq body model.K8sClusterConnectionConfigCandidatesReq true "Details for K8sCluster dynamic request information" @Success 200 {object} model.CheckK8sClusterDynamicReqInfo @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /k8sClusterDynamicCheckRequest [post]
func RestPostK8sClusterDynamicTemplate ¶ added in v0.12.15
RestPostK8sClusterDynamicTemplate godoc @ID PostK8sClusterDynamicTemplate @Summary Create a K8s Cluster Dynamic Template @Description Create a reusable K8s Cluster Dynamic Template. Templates store K8sMultiClusterDynamic @Description request configurations that can be applied later to provision multi-cloud K8s clusters @Description with consistent settings. @Tags [K8s] K8s Cluster Template Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param templateReq body model.K8sClusterDynamicTemplateReq true "K8s Cluster Dynamic Template request" @Success 200 {object} model.K8sClusterDynamicTemplateInfo "Successfully created template" @Failure 400 {object} model.SimpleMsg "Invalid request format or template name" @Failure 409 {object} model.SimpleMsg "Template already exists" @Failure 500 {object} model.SimpleMsg "Internal error" @Param x-request-id header string false "Custom request ID for tracking" @Router /ns/{nsId}/template/k8sCluster [post]
func RestPostK8sClusterExtractTemplate ¶ added in v0.12.15
RestPostK8sClusterExtractTemplate godoc @ID PostK8sClusterExtractTemplate @Summary Extract a K8s Cluster Dynamic Template from an existing K8s cluster @Description Extract the configuration of an existing K8s cluster and save it as a @Description K8s Cluster Dynamic Template for reuse. @Tags [K8s] K8s Cluster Template Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param k8sClusterId path string true "K8s Cluster ID to extract from" @Param templateName query string true "Name for the new template" @Success 200 {object} model.K8sClusterDynamicTemplateInfo "Successfully extracted template" @Failure 400 {object} model.SimpleMsg "Invalid request" @Failure 404 {object} model.SimpleMsg "K8s cluster not found" @Failure 409 {object} model.SimpleMsg "Template already exists" @Failure 500 {object} model.SimpleMsg "Internal error" @Param x-request-id header string false "Custom request ID for tracking" @Router /ns/{nsId}/k8sCluster/{k8sClusterId}/extractTemplate [post]
func RestPostK8sMultiClusterDynamic ¶ added in v0.11.22
RestPostK8sMultiClusterDynamic godoc @ID PostK8sMultiClusterDynamic @Summary (PoC API. For developers only, and do not use in production.) Create Multiple K8s Clusters Dynamically in Parallel @Description (PoC API. For developers only, and do not use in production.) @Description Create multiple K8sClusters in parallel from common spec and image. @Description If namePrefix is provided, cluster names will be auto-generated as '{namePrefix}-{csp}-{number}' (e.g., 'across-aws-1', 'across-alibaba-2'). @Description @Description If namePrefix is not provided, each cluster must have a name specified. @Description @Description **Example request body:** @Description ```json @Description { @Description "namePrefix": "across", @Description "clusters": [ @Description { @Description "imageId": "default", @Description "specId": "aws+eu-west-2+t3a.xlarge" @Description }, @Description { @Description "nodeGroupName": "ng-1", @Description "imageId": "default", @Description "specId": "azure+germanywestcentral+standard_b4ms" @Description }, @Description { @Description "nodeGroupName": "ng-1", @Description "imageId": "https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/ubuntu-minimal-2204-jammy-v20251120", @Description "specId": "gcp+europe-west9+e2-highmem-4" @Description } @Description ] @Description } @Description ``` @Tags [Kubernetes] Cluster Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param k8sMultiClusterDynamicReq body model.K8sMultiClusterDynamicReq true "Request body to provision multiple K8sClusters dynamically in parallel. <br> Must include clusters array with specId and imageId info for each cluster. <br> Optional namePrefix will auto-generate cluster names. <br> You can use /k8sClusterRecommendNode and /k8sClusterDynamicCheckRequest to get spec and image info. <br> Check the guide: https://github.com/cloud-barista/cb-tumblebug/discussions/1913" @Param option query string false "Option for K8sCluster creation" Enums(hold) @Param skipVersionCheck query string false "Skip Kubernetes version validation (use for testing with unlisted versions)" default(false) @Param x-request-id header string false "Custom request ID" @Success 200 {object} model.K8sMultiClusterInfo "All clusters created successfully" @Success 207 {object} model.K8sMultiClusterInfo "Multi-Status - Partial success, some clusters created but others failed" @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/k8sMultiClusterDynamic [post]
func RestPostK8sMultiClusterDynamicFromTemplate ¶ added in v0.12.15
RestPostK8sMultiClusterDynamicFromTemplate godoc @ID PostK8sMultiClusterDynamicFromTemplate @Summary Provision K8s multi-cluster from a Template @Description Provision a new set of K8s clusters by applying a K8s Cluster Dynamic Template. @Description The template provides the full K8sMultiClusterDynamicReq configuration, and the @Description apply request allows overriding the namePrefix and description. @Description @Description **Override Behavior (Phase 1):** @Description - `namePrefix` (required): Overrides the namePrefix for all clusters @Description - `description` (optional): Propagated to each cluster's description @Description - All other configuration (specId, imageId, nodeGroupSize, etc.) comes from the template @Tags [K8s] K8s Cluster Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param templateId path string true "Template ID to apply" @Param applyReq body model.K8sClusterTemplateApplyReq true "Template apply request with namePrefix and optional description" @Success 200 {object} model.K8sMultiClusterInfo "Successfully provisioned K8s multi-cluster from template" @Failure 400 {object} model.SimpleMsg "Invalid request format" @Failure 404 {object} model.SimpleMsg "Template or namespace not found" @Failure 500 {object} model.SimpleMsg "Internal provisioning error" @Param x-request-id header string false "Custom request ID for tracking" @Router /ns/{nsId}/k8sCluster/template/{templateId} [post]
func RestPostK8sNodeGroup ¶
RestPostK8sNodeGroup func is a rest api wrapper for AddK8sNodeGroup. RestPostK8sNodeGroup godoc @ID PostK8sNodeGroup @Summary Add a K8sNodeGroup @Description Add a K8sNodeGroup @Tags [Kubernetes] Cluster Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param k8sClusterId path string true "K8sCluster ID" default(k8scluster01) @Param k8sNodeGroupReq body model.K8sNodeGroupReq true "Details of the K8sNodeGroup object" @Success 200 {object} model.K8sClusterInfo @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/k8sCluster/{k8sClusterId}/k8sNodeGroup [post]
func RestPostK8sNodeGroupDynamic ¶
RestPostK8sNodeGroupDynamic godoc @ID PostK8sNodeGroupDynamic @Summary Create K8sNodeGroup Dynamically @Description Create K8sNodeGroup Dynamically from common spec and image @Tags [Kubernetes] Cluster Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param k8sClusterId path string true "K8sCluster ID" default(k8scluster01) @Param k8sNodeGroupDynamicReq body model.K8sNodeGroupDynamicReq true "Request body to provision K8sNodeGroup dynamically. <br> Must include specId and imageId info. <br> (ex: {name: k8sng01, imageId: azure+koreacentral+ubuntu22.04, specId: azure+koreacentral+Standard_B2s}]}) <br> You can use /k8sClusterRecommendNode and /k8sClusterDynamicCheckRequest to get it. <br> Check the guide: https://github.com/cloud-barista/cb-tumblebug/discussions/1913" @Param x-request-id header string false "Custom request ID" @Success 200 {object} model.K8sNodeGroupInfo @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/k8sCluster/{k8sClusterId}/k8sNodeGroupDynamic [post]
func RestPostNodeDataDisk ¶ added in v0.12.6
RestPostNodeDataDisk godoc @ID PostNodeDataDisk @Summary Provisioning (Create and attach) dataDisk @Description Provisioning (Create and attach) dataDisk @Tags [Infra Resource] Data Disk Management @Accept json @Produce json @Param dataDiskInfo body model.DataDiskNodeReq true "Details for an Data Disk object" @Param nsId path string true "Namespace ID" default(default) @Param infraId path string true "Infra ID" default(infra01) @Param nodeId path string true "Node ID" default(g1-1) @Success 200 {object} model.NodeInfo @Failure 404 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/infra/{infraId}/node/{nodeId}/dataDisk [post]
func RestPostRegisterSubnet ¶
RestPostRegisterSubnet godoc @ID PostRegisterSubnet @Summary Register Subnet (created in CSP) @Description Register Subnet, which was created in CSP @Tags [Infra Resource] Network Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param vNetId path string true "VNet ID" @Param subnetReq body model.RegisterSubnetReq true "Details for an Subnet object" @Success 201 {object} model.SubnetInfo "Created" @Failure 404 {object} model.SimpleMsg "Not Found" @Failure 500 {object} model.SimpleMsg "Internal Server Error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/registerCspResource/vNet/{vNetId}/subnet [post]
func RestPostRegisterVNet ¶
RestPostRegisterVNet godoc @ID PostRegisterVNet @Summary Register VNet (created in CSP) @Description Register the VNet, which was created in CSP @Tags [Infra Resource] Network Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param vNetRegisterReq body model.RegisterVNetReq true "Inforamation required to register the VNet created externally" @Success 201 {object} model.VNetInfo "Created" @Failure 404 {object} model.SimpleMsg "Not Found" @Failure 500 {object} model.SimpleMsg "Internal Server Error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/registerCspResource/vNet [post]
func RestPostSecurityGroup ¶
RestPostSecurityGroup godoc @ID PostSecurityGroup @Summary Create Security Group @Description Create Security Group @Tags [Infra Resource] Security Group Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param option query string false "Option: [required params for register] connectionName, name, vNetId, cspResourceId" Enums(register) @Param securityGroupReq body model.SecurityGroupReq true "Details for an securityGroup object" @Success 200 {object} model.SecurityGroupInfo @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/securityGroup [post]
func RestPostSecurityGroupFromTemplate ¶ added in v0.12.3
RestPostSecurityGroupFromTemplate godoc @ID PostSecurityGroupFromTemplate @Summary Create SecurityGroup from a Template @Description Create a new SecurityGroup by applying a SecurityGroup Template. @Description The template provides the base SecurityGroup configuration (connectionName, vNetId, firewallRules), @Description and the apply request allows overriding the SecurityGroup name and description. @Description @Description **Override Behavior (Phase 1):** @Description - `name` (required): Name for the new SecurityGroup @Description - `description` (optional): Overrides the template's description @Description - All other configuration (connectionName, vNetId, firewallRules) comes from the template @Tags [Infra Resource] Security Group Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param templateId path string true "Template ID to apply" @Param applyReq body model.SecurityGroupTemplateApplyReq true "Template apply request with SecurityGroup name and optional description" @Success 200 {object} model.SecurityGroupInfo "Successfully created SecurityGroup from template" @Failure 400 {object} model.SimpleMsg "Invalid request format" @Failure 404 {object} model.SimpleMsg "Template or namespace not found" @Failure 500 {object} model.SimpleMsg "Internal resource creation error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/securityGroup/template/{templateId} [post]
func RestPostSecurityGroupTemplate ¶ added in v0.12.3
RestPostSecurityGroupTemplate godoc @ID PostSecurityGroupTemplate @Summary Create a SecurityGroup Template @Description Create a reusable SecurityGroup Template. Templates store SecurityGroup creation @Description request configurations that can be applied later to create SecurityGroups with consistent settings. @Description @Description **Template Contents:** @Description - Connection name (cloud provider and region) @Description - vNet ID for the security group @Description - Firewall rules (ports, protocol, direction, CIDR) @Description - Description @Description @Description Templates can be created manually with desired SecurityGroup configurations. @Tags [Infra Resource] SecurityGroup Template Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param templateReq body model.SecurityGroupTemplateReq true "SecurityGroup Template request" @Success 200 {object} model.SecurityGroupTemplateInfo "Successfully created template" @Failure 400 {object} model.SimpleMsg "Invalid request format or template name" @Failure 409 {object} model.SimpleMsg "Template already exists" @Failure 500 {object} model.SimpleMsg "Internal error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/template/securityGroup [post]
func RestPostSiteToSiteVpn ¶
RestPostSiteToSiteVpn godoc @ID PostSiteToSiteVpn @Summary Create a site-to-site VPN @Description Create a site-to-site VPN @Description @Description The supported CSP sets are as follows: @Description @Description - AWS and one of CSPs in Azure, GCP, Alibaba, Tencent, and IBM @Description @Description - Note: It will take about `15 ~ 45 minutes`. @Description @Description - Note: A one-time retry is performed to handle transient failures caused by CSP-internal timing issues between dependent resources. @Description @Tags [Infra Resource] Site-to-site VPN Management (preview) @Accept json @Produce json-stream @Param nsId path string true "Namespace ID" default(default) @Param infraId path string true "Infra ID" default(infra01) @Param vpnReq body model.RestPostVpnRequest true "Sites info for VPN configuration" @Param action query string false "Action" Enums(retry) @Success 200 {object} model.SimpleMsg "OK" @Failure 400 {object} model.SimpleMsg "Bad Request" @Failure 404 {object} model.SimpleMsg "Not Found" @Failure 500 {object} model.SimpleMsg "Internal Server Error" @Failure 503 {object} model.SimpleMsg "Service Unavailable" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/infra/{infraId}/vpn [post]
func RestPostSpec ¶
RestPostSpec godoc @ID PostSpec @Summary Register spec @Description Register spec @Tags [Infra Resource] Spec Management @Accept json @Produce json @Param action query string true "registeringMethod" Enums(registerWithInfo, registerWithCspResourceId) @Param nsId path string true "Namespace ID" default(system) @Param specInfo body model.SpecInfo false "Specify details of a spec object (vCPU, memoryGiB, ...) manually" @Param specReq body model.SpecReq false "Specify n(ame, connectionName, cspSpecName) to register a spec object automatically" @Param update query boolean false "Force update to existing spec object" default(false) @Success 200 {object} model.SpecInfo @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/spec [post]
func RestPostSqlDB ¶
RestPostSqlDB godoc @ID PostSqlDb @Summary Create a SQL Databases @Description Create a SQL Databases @Description @Description Supported CSPs: AWS, Azure, GCP, NCP @Description - Note - `connectionName` example: aws-ap-northeast-2, azure-koreacentral, gcp-asia-northeast3, ncp-kr @Description @Description - Note - Please check the `requiredCSPResource` property which includes CSP specific values. @Description @Description - Note - You can find the API usage examples on this link, https://github.com/cloud-barista/mc-terrarium/discussions/110 @Description @Tags [Infra Resource] SQL Database Management (under development) @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param sqlDbReq body model.RestPostSqlDBRequest true "Request body to create a SQL database" @Param action query string false "Action" Enums(retry) @Success 200 {object} model.SqlDBInfo "OK" @Failure 400 {object} model.SimpleMsg "Bad Request" @Failure 500 {object} model.SimpleMsg "Internal Server Error" @Failure 503 {object} model.SimpleMsg "Service Unavailable" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/sqlDb [post]
func RestPostSshKey ¶
RestPostSshKey godoc @ID PostSshKey @Summary Create SSH Key @Description Create SSH Key @Tags [Infra Resource] Access Key Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param option query string false "Option: [required params for register] connectionName, name, cspResourceId, fingerprint, username, publicKey, privateKey" Enums(register) @Param sshKeyInfo body model.SshKeyReq true "Details for an SSH Key object" @Success 200 {object} model.SshKeyInfo @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/sshKey [post]
func RestPostSubnet ¶
RestPostSubnet godoc @ID PostSubnet @Summary Create Subnet @Description Create Subnet @Tags [Infra Resource] Network Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param vNetId path string true "VNet ID" @Param subnetReq body model.SubnetReq true "Details for an Subnet object" @Success 201 {object} model.SubnetInfo "Created" @Failure 404 {object} model.SimpleMsg "Not Found" @Failure 409 {object} model.SimpleMsg "Conflict" @Failure 500 {object} model.SimpleMsg "Internal Server Error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/vNet/{vNetId}/subnet [post]
func RestPostVNet ¶
RestPostVNet godoc @ID PostVNet @Summary Create VNet @Description Create a new VNet @Tags [Infra Resource] Network Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param vNetReq body model.VNetReq false "Details for an VNet object" @Success 201 {object} model.VNetInfo "Created" @Failure 404 {object} model.SimpleMsg "Not Found" @Failure 409 {object} model.SimpleMsg "Conflict" @Failure 500 {object} model.SimpleMsg "Internal Server Error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/vNet [post]
func RestPostVNetFromTemplate ¶ added in v0.12.3
RestPostVNetFromTemplate godoc @ID PostVNetFromTemplate @Summary Create vNet from a Template @Description Create a new vNet by applying a vNet Template. @Description The template provides the base vNet configuration (connectionName, cidrBlock, subnets), @Description and the apply request allows overriding the vNet name and description. @Description @Description **Override Behavior (Phase 1):** @Description - `name` (required): Name for the new vNet @Description - `description` (optional): Overrides the template's description @Description - All other configuration (connectionName, cidrBlock, subnets) comes from the template @Tags [Infra Resource] Network Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param templateId path string true "Template ID to apply" @Param applyReq body model.VNetTemplateApplyReq true "Template apply request with vNet name and optional description" @Success 200 {object} model.VNetInfo "Successfully created vNet from template" @Failure 400 {object} model.SimpleMsg "Invalid request format" @Failure 404 {object} model.SimpleMsg "Template or namespace not found" @Failure 500 {object} model.SimpleMsg "Internal resource creation error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/vNet/template/{templateId} [post]
func RestPostVNetTemplate ¶ added in v0.12.3
RestPostVNetTemplate godoc @ID PostVNetTemplate @Summary Create a vNet Template @Description Create a reusable vNet Template. Templates store vNet creation @Description request configurations that can be applied later to create vNets with consistent settings. @Description @Description **Template Contents:** @Description - Connection name (cloud provider and region) @Description - CIDR block configuration @Description - Subnet definitions (names, CIDR blocks, zones) @Description - Description @Description @Description Templates can be created manually with desired vNet configurations. @Tags [Infra Resource] vNet Template Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param templateReq body model.VNetTemplateReq true "vNet Template request" @Success 200 {object} model.VNetTemplateInfo "Successfully created template" @Failure 400 {object} model.SimpleMsg "Invalid request format or template name" @Failure 409 {object} model.SimpleMsg "Template already exists" @Failure 500 {object} model.SimpleMsg "Internal error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/template/vNet [post]
func RestPutChangeK8sNodeGroupAutoscaleSize ¶
RestPutChangeK8sNodeGroupAutoscaleSize func is a rest api wrapper for ChangeK8sNodeGroupAutoscaleSize. RestPutChangeK8sNodeGroupAutoscaleSize godoc @ID PutChangeK8sNodeGroupAutoscaleSize @Summary Change a K8sNodeGroup's Autoscale Size @Description Change a K8sNodeGroup's Autoscale Size @Tags [Kubernetes] Cluster Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param k8sClusterId path string true "K8sCluster ID" default(k8scluster01) @Param k8sNodeGroupName path string true "K8sNodeGroup Name" default(k8sng01) @Param changeK8sNodeGroupAutoscaleSizeReq body model.ChangeK8sNodeGroupAutoscaleSizeReq true "Details of the ChangeK8sNodeGroupAutoscaleSizeReq object" @Success 200 {object} model.ChangeK8sNodeGroupAutoscaleSizeRes @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/k8sCluster/{k8sClusterId}/k8sNodeGroup/{k8sNodeGroupName}/autoscaleSize [put]
func RestPutDataDisk ¶
RestPutDataDisk godoc @ID PutDataDisk @Summary Upsize Data Disk @Description Upsize Data Disk @Tags [Infra Resource] Data Disk Management @Accept json @Produce json @Param dataDiskUpsizeReq body model.DataDiskUpsizeReq true "Request body to upsize the dataDisk" @Param nsId path string true "Namespace ID" default(default) @Param dataDiskId path string true "DataDisk ID" @Success 200 {object} model.DataDiskInfo @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/dataDisk/{dataDiskId} [put]
func RestPutGlobalDnsRecord ¶ added in v0.12.4
RestPutGlobalDnsRecord godoc @ID PutGlobalDnsRecord @Summary Update GlobalDns Record @Description Update (UPSERT) a DNS record for a domain in Route53. @Description Supports two routing policies: "simple" (default) and "geoproximity" (location-based). @Description Choose exactly one IP source method in 'setBy': @Description 1. Infra ID (infraId): Fetch Public IPs of all nodes in the Infra. @Description 2. Label Selector (labelSelector): Fetch IPs of matching resources. @Description 3. Manual IP Values (values): Manually provide IP addresses (simple routing only). @Tags [Utility] Global DNS Management @Accept json @Produce json @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Success 200 {object} model.SimpleMsg @Failure 400 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Router /resources/globalDns/record [put]
func RestPutImage ¶
RestPutImage godoc @ID PutImage @Summary Update image @Description Update image @Tags [Infra Resource] Image Management @Accept json @Produce json @Param imageInfo body model.ImageInfo true "Details for an image object" @Param nsId path string true "Namespace ID" default(system) @Param imageId path string true "Image ID ({providerName}+{regionName}+{cspImageName})" @Success 200 {object} model.ImageInfo @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/image/{imageId} [put]
func RestPutK8sCluster ¶
function RestPutK8sCluster not yet implemented
// RestPutK8sCluster godoc // @ID PutK8sCluster // @Summary Update K8sCluster // @Description Update K8sCluster // @Tags [Kubernetes] Cluster Management // @Accept json // @Produce json // @Param nsId path string true "Namespace ID" default(default) // @Param k8sClusterId path string true "K8sCluster ID" default(k8scluster01) // @Param k8sClusterInfo body model.K8sClusterInfo true "Details of the K8sCluster object" // @Success 200 {object} model.K8sClusterInfo // @Failure 404 {object} model.SimpleMsg // @Failure 500 {object} model.SimpleMsg // @Param x-request-id header string false "Custom request ID for tracking" // @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" // @Router /ns/{nsId}/k8sCluster/{k8sClusterId} [put]
func RestPutK8sClusterDynamicTemplate ¶ added in v0.12.15
RestPutK8sClusterDynamicTemplate godoc @ID PutK8sClusterDynamicTemplate @Summary Update a K8s Cluster Dynamic Template @Description Update an existing K8s Cluster Dynamic Template. @Tags [K8s] K8s Cluster Template Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param templateId path string true "Template ID" @Param templateReq body model.K8sClusterDynamicTemplateReq true "K8s Cluster Dynamic Template request" @Success 200 {object} model.K8sClusterDynamicTemplateInfo "Updated template information" @Failure 400 {object} model.SimpleMsg "Invalid request format" @Failure 404 {object} model.SimpleMsg "Template not found" @Failure 500 {object} model.SimpleMsg "Internal error" @Param x-request-id header string false "Custom request ID for tracking" @Router /ns/{nsId}/template/k8sCluster/{templateId} [put]
func RestPutNodeDataDisk ¶ added in v0.12.6
RestPutNodeDataDisk godoc @ID PutNodeDataDisk @Summary Attach/Detach available dataDisk @Description Attach/Detach available dataDisk @Tags [Infra Resource] Data Disk Management @Accept json @Produce json @Param attachDetachDataDiskReq body model.AttachDetachDataDiskReq false "Request body to attach/detach dataDisk" @Param nsId path string true "Namespace ID" default(default) @Param infraId path string true "Infra ID" default(infra01) @Param nodeId path string true "Node ID" default(g1-1) @Param option query string true "Option for Infra" Enums(attach, detach) @Param force query string false "Force to attach/detach even if node info is not matched" Enums(true, false) @Success 200 {object} model.NodeInfo @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/infra/{infraId}/node/{nodeId}/dataDisk [put]
func RestPutSecurityGroup ¶
RestPutSecurityGroup godoc @ID PutSecurityGroup @Summary Update Security Group (Synchronize Firewall Rules) @Description Update Security Group: Synchronize the firewall rules of the specified Security Group to match the requested list exactly. @Description This API will add missing rules and delete extra rules so that the Security Group's rules become identical to the requested set. @Description Only firewall rules are updated; other metadata (name, description, etc.) is not changed. @Description @Description Usage: @Description Use 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. @Description - All existing rules not present in the request will be deleted. @Description - All rules in the request that do not exist will be added. @Description - If a rule exists but differs in CIDR or port range, it will be replaced. @Description - Special protocols (ICMP, etc.) are handled in the same way. @Description @Description Notes: @Description - "Ports" field supports single port ("22"), port range ("80-100"), and multiple ports/ranges ("22,80-100,443"). @Description - The valid port number range is 0 to 65535 (inclusive). @Description - "Protocol" can be TCP, UDP, ICMP, etc. (as supported by the cloud provider). @Description - "Direction" must be either "inbound" or "outbound". @Description - "CIDR" is the allowed IP range. @Description - All existing rules not in the request (including default ICMP, etc.) will be deleted. @Description - Metadata (name, description, etc.) is not changed. @Tags [Infra Resource] Security Group Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param securityGroupId path string true "Security Group ID" @Param securityGroupInfo body model.SecurityGroupUpdateReq true "Details for an securityGroup object (only firewallRules field is used for update)" @Success 200 {object} model.SecurityGroupUpdateResponse "Updated Security Group info with synchronized firewall rules" @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/securityGroup/{securityGroupId} [put]
func RestPutSecurityGroupTemplate ¶ added in v0.12.3
RestPutSecurityGroupTemplate godoc @ID PutSecurityGroupTemplate @Summary Update a SecurityGroup Template @Description Update an existing SecurityGroup Template. @Tags [Infra Resource] SecurityGroup Template Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param templateId path string true "Template ID" @Param templateReq body model.SecurityGroupTemplateReq true "SecurityGroup Template request" @Success 200 {object} model.SecurityGroupTemplateInfo "Updated template information" @Failure 400 {object} model.SimpleMsg "Invalid request format" @Failure 404 {object} model.SimpleMsg "Template not found" @Failure 500 {object} model.SimpleMsg "Internal error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/template/securityGroup/{templateId} [put]
func RestPutSetK8sNodeGroupAutoscaling ¶
RestPutSetK8sNodeGroupAutoscaling func is a rest api wrapper for SetK8sNodeGroupAutoscaling. RestPutSetK8sNodeGroupAutoscaling godoc @ID PutSetK8sNodeGroupAutoscaling @Summary Set a K8sNodeGroup's Autoscaling On/Off @Description Set a K8sNodeGroup's Autoscaling On/Off @Tags [Kubernetes] Cluster Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param k8sClusterId path string true "K8sCluster ID" default(k8scluster01) @Param k8sNodeGroupName path string true "K8sNodeGroup Name" default(k8sng01) @Param setK8sNodeGroupAutoscalingReq body model.SetK8sNodeGroupAutoscalingReq true "Details of the SetK8sNodeGroupAutoscalingReq object" @Success 200 {object} model.SetK8sNodeGroupAutoscalingRes @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/k8sCluster/{k8sClusterId}/k8sNodeGroup/{k8sNodeGroupName}/onAutoscaling [put]
func RestPutSpec ¶
RestPutSpec godoc @ID PutSpec @Summary Update spec @Description Update spec @Tags [Infra Resource] Spec Management @Accept json @Produce json @Param specInfo body model.SpecInfo true "Details for an spec object" @Param nsId path string true "Namespace ID" default(system) @Param specId path string true "Spec ID ({providerName}+{regionName}+{cspSpecName})" @Success 200 {object} model.SpecInfo @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/spec/{specId} [put]
func RestPutSshKey ¶
RestPutSshKey godoc @ID PutSshKey @Summary Update SSH Key @Description Update SSH Key @Tags [Infra Resource] Access Key Management @Accept json @Produce json @Param sshKeyInfo body model.SshKeyUpdateReq true "SSH Key update details" @Param nsId path string true "Namespace ID" default(default) @Param sshKeyId path string true "SshKey ID" @Success 200 {object} model.SshKeyInfo @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/sshKey/{sshKeyId} [put]
func RestPutUpgradeK8sCluster ¶
RestPutUpgradeK8sCluster func is a rest api wrapper for UpgradeK8sCluster. RestPutUpgradeK8sCluster godoc @ID PutUpgradeK8sCluster @Summary Upgrade a K8sCluster's version @Description Upgrade a K8sCluster's version @Tags [Kubernetes] Cluster Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param k8sClusterId path string true "K8sCluster ID" default(k8scluster01) @Param skipVersionCheck query string false "Skip Kubernetes version validation (use for testing with unlisted versions)" default(false) @Param upgradeK8sClusterReq body model.UpgradeK8sClusterReq true "Details of the UpgradeK8sClusterReq object" @Success 200 {object} model.SimpleMsg @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/k8sCluster/{k8sClusterId}/upgrade [put]
func RestPutVNetTemplate ¶ added in v0.12.3
RestPutVNetTemplate godoc @ID PutVNetTemplate @Summary Update a vNet Template @Description Update an existing vNet Template. @Tags [Infra Resource] vNet Template Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param templateId path string true "Template ID" @Param templateReq body model.VNetTemplateReq true "vNet Template request" @Success 200 {object} model.VNetTemplateInfo "Updated template information" @Failure 400 {object} model.SimpleMsg "Invalid request format" @Failure 404 {object} model.SimpleMsg "Template not found" @Failure 500 {object} model.SimpleMsg "Internal error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/template/vNet/{templateId} [put]
func RestRecommendK8sNode ¶
RestRecommendK8sNode godoc @ID RecommendK8sNode @Summary Recommend K8sCluster's Node plan (filter and priority) @Description Recommend K8sCluster's Node plan (filter and priority) Find details from https://github.com/cloud-barista/cb-tumblebug/discussions/1234 @Tags [Kubernetes] Cluster Management @Accept json @Produce json @Param recommendSpecReq body model.RecommendSpecReq false "Recommend K8sCluster's Node plan (filter and priority)" @Success 200 {object} []model.SpecInfo @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /k8sClusterRecommendNode [post]
func RestReconcileAllVNets ¶ added in v0.12.14
RestReconcileAllVNets godoc @ID ReconcileAllVNets @Summary Reconcile all VNets in namespace @Description Reconcile all VNets and their subnets in the namespace by comparing TB metadata with CSP state. TB metadata is the source of truth; only TB-registered resources are reconciled. @Description @Description ⚠️ **PERFORMANCE NOTE**: Reconciliation may take 1-2 minutes per cloud connection due to CSP API response time. Plan accordingly for namespaces with multiple cloud connections. @Tags [Infra Resource] Network Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param maxConcurrent query int false "Maximum concurrent reconciliation operations (1-20)" default(5) minimum(1) maximum(20) @Success 200 {object} model.ResourceReconcileResults "Reconciliation results" @Failure 400 {object} model.SimpleMsg "Bad Request" @Failure 500 {object} model.SimpleMsg "Internal Server Error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/vNet/reconcile [put]
func RestSearchImage ¶
RestSearchImage godoc @ID SearchImage @Summary Search image @Description Search image @Tags [MC-Infra] Infra Provisioning and Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(system) @Param customImage query boolean false "Search custom images (snapshots) only" default(false) @Param condition body model.SearchImageRequest true "condition" @Success 200 {object} model.SearchImageResponse @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/searchImage [post]
func RestSearchImageOptions ¶
RestSearchImageOptions godoc @ID SearchImageOptions @Get available image search request options @Description Get all available options for image search fields @Tags [MC-Infra] Infra Provisioning and Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(system) @Success 200 {object} model.SearchImageRequestOptions @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/searchImageOptions [get]
func RestSetObjectStorageCORS ¶ added in v0.12.2
RestSetObjectStorageCORS godoc @ID SetObjectStorageCORS @Summary Set CORS configuration of an object storage (bucket) @Description Set CORS configuration of an object storage (bucket) @Tags [Infra Resource] Object Storage Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param osId path string true "Object Storage ID" default(os01) @Param reqBody body model.ObjectStorageSetCorsRequest true "CORS Configuration Request" @Success 200 "OK" @Failure 400 {object} model.SimpleMsg "Bad Request" @Failure 404 {object} model.SimpleMsg "Not Found" @Failure 500 {object} model.SimpleMsg "Internal Server Error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/objectStorage/{osId}/cors [put]
func RestSetObjectStorageVersioning ¶ added in v0.12.2
RestSetObjectStorageVersioning godoc @ID SetObjectStorageVersioning @Summary Set versioning configuration of an object storage (bucket) @Description Set versioning configuration of an object storage (bucket) @Description @Description **Note: ** @Description - Versioning options: "Enabled", "Suspended", "Unversioned" @Description @Tags [Infra Resource] Object Storage Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param osId path string true "Object Storage ID" default(os01) @Param reqBody body model.ObjectStorageSetVersioningRequest true "Versioning Configuration Request" @Success 200 "OK" @Failure 400 {object} model.SimpleMsg "Bad Request" @Failure 404 {object} model.SimpleMsg "Not Found" @Failure 500 {object} model.SimpleMsg "Internal Server Error" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/resources/objectStorage/{osId}/versioning [put]
func RestTestAddObjectAssociation ¶
RestTestAddObjectAssociation is a REST API call handling function to test "model.UpdateAssociatedObjectList" function with "add" argument.
func RestTestDeleteObjectAssociation ¶
RestTestDeleteObjectAssociation is a REST API call handling function to test "model.UpdateAssociatedObjectList" function with "delete" argument.
func RestTestGetAssociatedObjectCount ¶
RestTestGetAssociatedObjectCount is a REST API call handling function to test "model.GetAssociatedObjectCount" function.
func RestUpdateExistingSpecListByAvailableRegionZones ¶ added in v0.11.9
RestUpdateExistingSpecListByAvailableRegionZones godoc @ID UpdateExistingSpecListByAvailableRegionZones @Summary Clean up unavailable specs from database @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 @Tags [Infra Resource] Spec Management @Accept json @Produce json @Param nsId path string true "Namespace ID" default(system) @Param cleanupReq body model.UpdateSpecListByAvailabilityRequest true "Spec cleanup request" @Success 200 {object} model.SpecCleanupResult @Failure 400 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /ns/{nsId}/updateExistingSpecListByAvailableRegionZones [post]
func RestUpdateImagesFromAsset ¶
RestUpdateImagesFromAsset godoc @ID UpdateImagesFromAsset @Summary Update images from cloudimage.csv asset file @Description Update image information based on the cloudimage.csv asset file @Tags [Infra Resource] Image Management @Accept json @Produce json @Success 202 {object} resource.FetchImagesAsyncResult @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /updateImagesFromAsset [post]
func SetObjectStorageCORSLagacy ¶ added in v0.12.2
RestSetObjectStorageCORSLagacy godoc @ID SetObjectStorageCORSLagacy @Summary (To be deprecated) Set CORS configuration of an object storage (bucket) @Description (To be deprecated) Set CORS configuration of an object storage (bucket) @Description @Description **Important Notes:** @Description - The CORS configuration must be provided in the request body in XML format. @Description - The actual request body should have root element `CORSConfiguration` @Description @Description **Actual XML Request Body Example:** @Description ```xml @Description <?xml version="1.0" encoding="UTF-8"?> @Description <CORSConfiguration> @Description <CORSRule> @Description <AllowedOrigin>https://example.com</AllowedOrigin> @Description <AllowedOrigin>https://app.example.com</AllowedOrigin> @Description <AllowedMethod>GET</AllowedMethod> @Description <AllowedMethod>PUT</AllowedMethod> @Description <AllowedHeader>Content-Type</AllowedHeader> @Description <AllowedHeader>Authorization</AllowedHeader> @Description <ExposeHeader>ETag</ExposeHeader> @Description <MaxAgeSeconds>1800</MaxAgeSeconds> @Description </CORSRule> @Description <CORSRule> @Description <AllowedOrigin>*</AllowedOrigin> @Description <AllowedMethod>GET</AllowedMethod> @Description <MaxAgeSeconds>300</MaxAgeSeconds> @Description </CORSRule> @Description </CORSConfiguration> @Description ``` @Tags [Infra Resource] Object Storage Management @Accept xml @Produce xml @Param objectStorageName path string true "Object Storage Name" default(globally-unique-bucket-hctdx3) @Param credential header string true "This represents a credential or an access key ID. The required format is `{csp-region}` (i.e., the connection name)." default(aws-ap-northeast-2) @Param reqBody body CORSConfiguration true "CORS Configuration in XML format" @Success 200 "OK" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /resources/objectStorage/{objectStorageName}/cors [put]
func SetObjectStorageVersioningLagacy ¶ added in v0.12.2
RestSetObjectStorageVersioningLagacy godoc @ID SetObjectStorageVersioningLagacy @Summary (To be deprecated) Set versioning status of an object storage (bucket) @Description (To be deprecated) Set versioning status of an object storage (bucket) @Description @Description **Important Notes:** @Description - The request body must be XML format with root element `VersioningConfiguration` @Description - The `Status` field can be either `Enabled` or `Suspended` @Description @Description **Request Body Example:** @Description ```xml @Description <?xml version="1.0" encoding="UTF-8"?> @Description <VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> @Description <Status>Enabled</Status> @Description </VersioningConfiguration> @Description ``` @Tags [Infra Resource] Object Storage Management @Accept xml @Produce xml @Param objectStorageName path string true "Object Storage Name" default(globally-unique-bucket-hctdx3) @Param credential header string true "This represents a credential or an access key ID. The required format is `{csp-region}` (i.e., the connection name)." default(aws-ap-northeast-2) @Param reqBody body VersioningConfiguration true "Versioning Configuration" @Success 200 "OK" @Param x-request-id header string false "Custom request ID for tracking" @Param x-credential-holder header string false "Credential holder ID for selecting which credentials to use (default: system default holder)" @Router /resources/objectStorage/{objectStorageName}/versioning [put]
Types ¶
type Bucket ¶ added in v0.11.10
type Bucket struct {
Name string `xml:"Name" json:"name" example:"spider-test-bucket"`
CreationDate string `xml:"CreationDate" json:"creationDate" example:"2025-09-04T04:18:06Z"`
}
Bucket represents a single bucket in S3 bucket list response
type Buckets ¶ added in v0.11.10
type Buckets struct {
Bucket []Bucket `xml:"Bucket" json:"bucket"`
}
Buckets represents the collection of buckets in S3 bucket list response
type CORSConfiguration ¶ added in v0.11.10
type CORSConfiguration struct {
// The xmlns attribute will be set to "http://s3.amazonaws.com/doc/2006-03-01/"
// Xmlns string `xml:"xmlns,attr" json:"-" example:"http://s3.amazonaws.com/doc/2006-03-01/"`
CORSRule []CORSRule `xml:"CORSRule" json:"corsRule"`
}
type CORSRule ¶ added in v0.11.10
type CORSRule struct {
AllowedOrigin []string `xml:"AllowedOrigin" json:"allowedOrigin" example:"*"`
AllowedMethod []string `xml:"AllowedMethod" json:"allowedMethod" example:"GET"`
AllowedHeader []string `xml:"AllowedHeader" json:"allowedHeader" example:"*"`
ExposeHeader []string `xml:"ExposeHeader" json:"exposeHeader" example:"ETag"`
MaxAgeSeconds int `xml:"MaxAgeSeconds" json:"maxAgeSeconds" example:"3000"`
}
type DeleteResult ¶ added in v0.11.10
type DeleteResult struct {
// The xmlns attribute will be set to "http://s3.amazonaws.com/doc/2006-03-01/"
// Xmlns string `xml:"xmlns,attr" json:"-" example:"http://s3.amazonaws.com/doc/2006-03-01/"`
Deleted []Object `xml:"Deleted" json:"deleted"`
}
type Error ¶ added in v0.11.10
type Error struct {
Code string `xml:"Code" json:"code" example:"NoSuchCORSConfiguration"`
Message string `xml:"Message" json:"message" example:"The CORS configuration does not exist"`
Resource string `xml:"Resource" json:"resource" example:"/example-bucket"`
RequestId string `xml:"RequestId" json:"requestId" example:"656c76696e6727732072657175657374"`
}
type ListAllMyBucketsResult ¶ added in v0.11.10
type ListAllMyBucketsResult struct {
// The xmlns attribute will be set to "http://s3.amazonaws.com/doc/2006-03-01/"
// Xmlns string `xml:"xmlns,attr" json:"-" example:"http://s3.amazonaws.com/doc/2006-03-01/"`
// Owner information for the S3 account
Owner Owner `xml:"Owner" json:"owner"`
// Collection of buckets
Buckets Buckets `xml:"Buckets" json:"buckets"`
}
ListAllMyBucketsResult represents the response structure for S3 ListAllMyBuckets operation
The actual XML response will have the following structure: - Root element: ListAllMyBucketsResult - Namespace: xmlns="http://s3.amazonaws.com/doc/2006-03-01/" - Contains Owner and Buckets elements
Example XML response: ```xml <?xml version="1.0" encoding="UTF-8"?> <ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Owner> <ID>aws-ap-northeast-2</ID> <DisplayName>aws-ap-northeast-2</DisplayName> </Owner> <Buckets> </Buckets>
</ListAllMyBucketsResult> ```
Note: The xmlns attribute and root element name may not be accurately represented in Swagger UI due to XML rendering limitations.
type ListBucketResult ¶ added in v0.11.10
type ListBucketResult struct {
// The xmlns attribute will be set to "http://s3.amazonaws.com/doc/2006-03-01/"
// Xmlns string `xml:"xmlns,attr" json:"-" example:"http://s3.amazonaws.com/doc/2006-03-01/"`
Name string `xml:"Name" json:"name" example:"spider-test-bucket"`
Prefix string `xml:"Prefix" json:"prefix" example:""`
Marker string `xml:"Marker" json:"marker" example:""`
MaxKeys int `xml:"MaxKeys" json:"maxKeys" example:"1000"`
IsTruncated bool `xml:"IsTruncated" json:"isTruncated" example:"false"`
}
Note: The xmlns attribute and root element name may not be accurately represented in Swagger UI due to XML rendering limitations.
type ListVersionsResult ¶ added in v0.11.10
type ListVersionsResult struct {
// The xmlns attribute will be set to "http://s3.amazonaws.com/doc/2006-03-01/"
// Xmlns string `xml:"xmlns,attr" json:"-" example:"http://s3.amazonaws.com/doc/2006-03-01/"`
Name string `xml:"Name" json:"name" example:"spider-test-bucket"`
Prefix string `xml:"Prefix" json:"prefix" example:""`
KeyMarker string `xml:"KeyMarker" json:"keyMarker" example:""`
VersionIdMarker string `xml:"VersionIdMarker" json:"versionIdMarker" example:""`
NextKeyMarker string `xml:"NextKeyMarker" json:"nextKeyMarker" example:""`
NextVersionIdMarker string `xml:"NextVersionIdMarker" json:"nextVersionIdMarker" example:""`
MaxKeys int `xml:"MaxKeys" json:"maxKeys" example:"1000"`
IsTruncated bool `xml:"IsTruncated" json:"isTruncated" example:"false"`
Version Version `xml:"Version" json:"version"`
}
type LocationConstraint ¶ added in v0.11.10
type LocationConstraint struct {
}
type Object ¶ added in v0.11.10
type Object struct {
Key string `xml:"Key" json:"key" example:"test-object.txt"`
}
type Owner ¶ added in v0.11.10
type Owner struct {
ID string `xml:"ID" json:"id" example:"aws-ap-northeast-2"`
DisplayName string `xml:"DisplayName" json:"displayName" example:"aws-ap-northeast-2"`
}
========== Resource APIs: Object Storage ========== Owner represents the owner information in S3 bucket list response
type PresignedURLResult ¶ added in v0.11.10
type RestFilterSpecsResponse ¶
RestFilterSpecsResponse is Response structure for RestFilterSpecs
type RestGetAllCustomImageResponse ¶
Response structure for RestGetAllCustomImage
type RestGetAllDataDiskResponse ¶
type RestGetAllDataDiskResponse struct {
DataDisk []model.DataDiskInfo `json:"dataDisk"`
}
Response struct for RestGetAllDataDisk
type RestGetAllK8sClusterResponse ¶
type RestGetAllK8sClusterResponse struct {
K8sCluster []model.K8sClusterInfo `json:"K8sClusterInfo"`
}
Response structure for RestGetAllK8sCluster
type RestGetAllSecurityGroupResponse ¶
type RestGetAllSecurityGroupResponse struct {
SecurityGroup []model.SecurityGroupInfo `json:"securityGroup"`
}
Response structure for RestGetAllSecurityGroup
type RestGetAllSshKeyResponse ¶
type RestGetAllSshKeyResponse struct {
SshKey []model.SshKeyInfo `json:"sshKey"`
}
Response struct for RestGetAllSshKey
type RestGetAllSubnetResponse ¶
type RestGetAllSubnetResponse struct {
SubnetInfoList []model.SubnetInfo `json:"subnetInfoList"`
}
Response structure for RestGetAllSubnet
type RestGetAllVNetResponse ¶
Response structure for RestGetAllVNet
type RestLookupImageRequest ¶
type RestLookupImageRequest struct {
ConnectionName string `json:"connectionName"`
CspImageName string `json:"cspImageName"`
}
Request structure for RestLookupImage
type RestLookupSpecRequest ¶
type RestLookupSpecRequest struct {
ConnectionName string `json:"connectionName"`
CspResourceId string `json:"cspResourceId"`
}
Request structure for RestLookupSpec
type Version ¶ added in v0.11.10
type Version struct {
Key string `xml:"Key" json:"key" example:"test-file.txt"`
VersionId string `xml:"VersionId" json:"versionId" example:"yb4PgjnFVD2LfRZHXBjjsHBkQRHlu.TZ"`
IsLatest bool `xml:"IsLatest" json:"isLatest" example:"true"`
LastModified string `xml:"LastModified" json:"lastModified" example:"2025-09-04T04:24:12Z"`
ETag string `xml:"ETag" json:"etag" example:"23228a38faecd0591107818c7281cece"`
Size int `xml:"Size" json:"size" example:"23"`
StorageClass string `xml:"StorageClass" json:"storageClass" example:"STANDARD"`
Owner Owner `xml:"Owner" json:"owner"`
}
type VersioningConfiguration ¶ added in v0.11.10
type VersioningConfiguration struct {
// The xmlns attribute will be set to "http://s3.amazonaws.com/doc/2006-03-01/"
// Xmlns string `xml:"xmlns,attr" json:"-" example:"http://s3.amazonaws.com/doc/2006-03-01/"`
Status string `xml:"Status" json:"status" example:"Enabled"`
}