diff --git a/docs/api-content/api-docs/1-introduction.md b/docs/api-content/api-docs/1-introduction.md index 91b4483b74..91b98db490 100644 --- a/docs/api-content/api-docs/1-introduction.md +++ b/docs/api-content/api-docs/1-introduction.md @@ -7,16 +7,14 @@ sidebar_custom_props: icon: "graph" --- -Spectro Cloud Palette platform capabilities are exposed via REST APIs, providing a subset of features that comply with open application programming interface (API) standards. +Palette offers a range of capabilities you can access through the REST APIs. These REST APIs are designed in accordance with open API standards, which ensure that the platform's features can be integrated with other applications and systems. By utilizing these APIs, you can tap into the platform's capabilities through programmatic methods. Use the APIs to build custom integrations and workflows that leverage the power of the Palette. -### APIs and External Resources -Palette interacts with external-facing utility tools such as Terraform to provision, change, and manage your environment automatically and efficiently. -# Paths +## Paths Every API's URI has the prefix of the version and the Palette resource, such as: `v1/spectroclusters/...` -# Authentication +## Authentication Palette supports two types of user authentication methods: ### Using Authorization Token @@ -32,7 +30,7 @@ Palette uses API keys to provide secure API authentication and authorization. Th * Value: API key copied from the Palette Console. E.g. QMOI1ZVKVIoW6LM6uXqSWFPsjmt0juvl [Read More...](/user-management/user-authentication/#usingapikey) -# Requests +## Requests All requests are in the `JSON` format. In general, the request payload has three sections: *metadata, spec and status*. @@ -40,25 +38,27 @@ All requests are in the `JSON` format. In general, the request payload has three * *Spec* consists of attributes that define the resource * *Status* contains the status information of the resource. The API does not support creating or modifying the status section. -<:::info> +:::info + Certain update request schemas have restricted spec resource definitions, and specific fields like uid and creation timestamp cannot be modified post-creation. - -| HTTP Method | Documentation | +::: + +| **HTTP Method** | **Description** | | --- | --- | | POST | To create a resource or a sub-resource. | | PUT | To update the resource or a sub-resource. The PUT request will overwrite the existing resource data. | | PATCH | To add, modify, remove a specific attribute or sub-resource within a resource. | | DELETE | To delete the resource. | -# Response Codes +## Response Codes The API returns standard HTTP response codes: -| HTTP Code | Description | +| **HTTP Code** | **Description** | | --- | --- | -| 200 | For a successful response. The response payload will vary depending upon the API. Refer to the respective API response schema. | -| 201 | For a successful resource creation. The response payload contains the uid of the created resource. | +| 200 | Request succeeded. The response payload will vary depending upon the API. Refer to the respective API response schema. | +| 201 | A resource was successfully created. The response payload contains the uid of the created resource. | | 204 | Response without any content for a successful operation. These operations include update, delete and the other actions on the resource. | | 400 | Bad request. The request does not adhere to the API request payload schema. | | 401 | Missing authorization token or invalid authorization token. | @@ -66,7 +66,7 @@ The API returns standard HTTP response codes: | 404 | The resource or the dependent resource is not found for the operation. | | 500 | Operational error. For 500 error code, the server responds with an explicit error code and an error message. | -# Palette API Lifecycle +## Palette API Lifecycle Palette APIs maintain backward compatibility until deprecation. The three API phases in the lifecycle are *Production*, *Sunset*, and *Deprecated*. Spectro Cloud will inform users when APIs transition through this lifecycle. ### Production The Palette APIs are designed to work as intended and expected. @@ -83,11 +83,11 @@ The API lifecycle also applies to external-facing tools such as Terraform. ::: -# Versioning +## Versioning The version information is included in the API URI, such as `v1alpha1` or `v1`. Future APIs will increment the version, leaving the earlier version intact. The existing API request and response schema will be modified to add new attributes or query parameters while maintaining backward compatibility with earlier schemas. Prior notice will be given before advancing to the next version, and users will be advised to migrate to the new API. -# Scope +## Scope Palette groups resources under either a Tenant or Project scope. When making API requests targeting resources belonging to a project, the project scope should be specified. To specify the project scope, use the HTTP header key `ProjectUid` with the value `` in the API request. The `ProjectUid` needs to be specified for a request to be applied under a specific project scope. @@ -106,6 +106,114 @@ If you do not provide the ProjectUid header, then the assumed scope is of the te ::: -# Pagination +## Pagination + +API endpoints that return a list have a limit of 50 items per return payload. Pagination is necessary for this purpose. The API response for the list includes the listMeta resource that contains the `continue` token. To perform pagination, you need to check whether the `continue` token value is present in the API response. For subsequent requests, use the `continue` token as a query parameter to paginate the remaining resource items. + +
+ +```json hideClipboard + "listmeta": { + "continue": "eyJvZmZzZXQiOjUwLCJjb3VudCI6MTE3LCJ0b2tlbiI6IiJ9", + "count": 117, + "limit": 50, + "offset": 50 + } +``` + +
+ +Example of a subsequent request using the `continue` token. + +
+ +```shell hideClipboard +curl --location 'https://api.spectrocloud.com/v1/packs?continue=eyJvZmZzZXQiOjUwLCJjb3VudCI6MTE3LCJ0b2tlbiI6IiJ9' \ + --header 'Accept: application/json' \ + --header 'ProjectUid: yourProjectUid' \ + --header 'apiKey: yourAPIKey' +``` + -The resources list APIs are limited to 50 items, and therefore pagination is required to retrieve the complete resources list. The list API response includes listMeta with the continue token. To perform pagination, check the presence of the continue token value in the API response. For subsequent requests, use the continue token as a query parameter to paginate the remaining resource items. +## Rate Limits + +The API rate limits are as follows: + +* There is a limit of ten API requests per second for each source IP address. The API supports additional bursts through the usage of a burst queue. The default burst queue size is set to five. You could make 50 (10 * 5) requests in seconds before the API returns a `429 - TooManyRequests` error. Refer to the [Endpoint Prefix Rate](#endpointprefixrate) for additional information. + + + +* API request limits are categorized by the parent resources, such as `/v1/cloudconfig/:uid` and `/v1/roles`. You can find a list of all resource types in the [API documentation](v1/palette-apis-3-4.info.mdx). The requests are counted together if you make multiple requests to the same resource type but use different sub-resources. For example, if you make five requests to `/v1/clusterprofiles` and five requests to `/v1/clusterprofiles/macros`, the requests are counted together as ten requests to the resource `clusterprofiles`. + + +* If too many requests are issued, you may receive an error with HTTP code `429` - `TooManyRequests.` We recommend retrying the API call after a few moments. + +## Endpoint Prefix Rate + +| **Endpoint Prefix** | **Request Per Second** | **Burst Size** | **Max with Burst** | +|-----------------|--------------------|------------|--------------| +| /v1/auth | 10 | 5 | 50 | +| /v1/nats | 10 | 5 | 50 | +| /v1/users | 10 | 5 | 50 | +| /v1/userprofiles | 10 | 5 | 50 | +| /v1/permissions | 10 | 5 | 50 | +| /v1/roles | 10 | 5 | 50 | +| /v1/teams | 10 | 5 | 50 | +| /v1/tenants | 10 | 5 | 50 | +| /v1/projects | 10 | 5 | 50 | +| /v1/plans | 10 | 5 | 50 | +| /v1/payments | 10 | 5 | 50 | +| /v1/audits | 10 | 5 | 50 | +| /v1/apiKeys | 10 | 5 | 50 | +| /v1/datasinks | 10 | 5 | 50 | +| /v1/notifications | 10 | 5 | 50 | +| /v1/events | 10 | 5 | 50 | +| /v1/crypto | 10 | 5 | 50 | +| /v1/async | 10 | 5 | 50 | +| /v1/errlogs | 10 | 5 | 50 | +| /v1/jobs | 10 | 5 | 50 | +| /v1/health | 10 | 5 | 50 | +| /v1/cache | 10 | 5 | 50 | +| /v1/cloudaccounts | 10 | 5 | 50 | +| /v1/packs | 10 | 5 | 50 | +| /v1/workspaces | 10 | 5 | 50 | +| /v1/installers | 10 | 5 | 50 | +| /v1/git/webhook | 10 | 5 | 50 | +| /v1/registries | 10 | 5 | 50 | +| /v1/services | 10 | 5 | 50 | +| /v1/overlords | 10 | 5 | 50 | +| /v1/cluster | 10 | 5 | 50 | +| /v1/cloudconfigs | 10 | 5 | 50 | +| /v1/cloudconfigs/{cloudType}/{uid}/machinePools | 10 | 5 | 50 | +| /v1/edgehosts | 10 | 5 | 50 | +| /v1/metrics | 10 | 5 | 50 | +| /v1/system | 10 | 5 | 50 | +| /v1/mgmt | 10 | 5 | 50 | +| /v1/oidc | 10 | 5 | 50 | +| /v1/clouds | 10 | 5 | 50 | +| /v1/events/components | 10 | 5 | 50 | +| /v1/dashboard | 10 | 5 | 50 | +| /v1/cloudconfigs/{cloudType}/:uid/machinePools/{machinePoolName}/machines | 10 | 5 | 50 | +| /v1/cloudconfigs/{cloudType}/:uid/machinePools/{machinePoolName}/machines/:machineUid | 10 | 5 | 50 | +| /v1/auth/authenticate | 10 | 5 | 50 | +| /v1/auth/services/login | 10 | 5 | 50 | +| /v1/auth/services/edge/login | 10 | 5 | 50 | +| /v1/files | 10 | 5 | 50 | +| /v1/edgehosts/registers | 10 | 5 | 50 | +| /v1/edgehosts/:uid/health | 10 | 5 | 50 | +| /v1/edgehosts/:uid/spc/download | 10 | 5 | 50 | +| /v1/spectroclusters/features/logFetcher | 10 | 5 | 50 | +| /v1/spectroclusters/:uid/assets | 10 | 5 | 50 | +| /v1/spectroclusters/cost | 10 | 5 | 50 | +| /v1/spectroclusters/usage | 10 | 5 | 50 | +| /v1/spectroclusters/:uid/download | 10 | 5 | 50 | +| /v1/spectroclusters/acquire | 10 | 5 | 50 | +| /v1/auth/user/password/reset | 2 | 5 | 10 | +| /v1/spectroclusters | 50 | 5 | 250 | +| /v1/clusterprofiles | 50 | 5 | 250 | +| /v1/clusterprofiles/:uid/packs | 50 | 5 | 250 | +| /v1/clusterprofiles/:uid/packs/manifests | 50 | 5 | 250 | +| /v1/clusterprofiles/:uid/packs/{packName}/manifests | 50 | 5 | 250 | +| /v1/clusterprofiles/validate/packs | 50 | 5 | 250 | +| /v1/clusterprofiles/:uid/validate/packs | 50 | 5 | 250 | +| /v1/spectroclusters/:uid/profiles | 50 | 5 | 250 | \ No newline at end of file diff --git a/docs/api-content/api-docs/v1/api.json b/docs/api-content/api-docs/v1/api.json index 0fd017a613..230034b25f 100644 --- a/docs/api-content/api-docs/v1/api.json +++ b/docs/api-content/api-docs/v1/api.json @@ -36500,41 +36500,6 @@ "version": "v1" }, "paths": { - "/cluster/{uid}/manifest": { - "get": { - "description": "Deprecated", - "operationId": "v1SpectroClustersUidInstallerManifest", - "produces": [ - "application/octet-stream" - ], - "responses": { - "200": { - "description": "download file", - "headers": { - "Content-Disposition": { - "type": "string" - } - }, - "schema": { - "format": "binary", - "type": "string" - } - } - }, - "summary": "Returns the specified cluster's installer manifest file", - "tags": [ - "cluster" - ] - }, - "parameters": [ - { - "in": "path", - "name": "uid", - "required": true, - "type": "string" - } - ] - }, "/v1/apiKeys": { "get": { "operationId": "v1ApiKeysList", @@ -37801,34 +37766,6 @@ ] } }, - "/v1/auth/login": { - "post": { - "description": "Deprecated. Returns the authentication type for the specified user email id", - "operationId": "v1AuthLogin", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1Login" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/v1AuthLogins" - } - } - }, - "summary": "Deprecated. Returns the authentication type for the specified user email id", - "tags": [ - "auth" - ] - } - }, "/v1/auth/org": { "get": { "description": "Returns the allowed login method and information with the organization details", @@ -45213,156 +45150,6 @@ ] } }, - "/v1/cloudconfigs/{cloudType}/{configUid}/machinePools/{machinePoolName}/machines/{machineUid}/maintenance": { - "parameters": [ - { - "description": "Cluster's cloud config uid", - "in": "path", - "name": "configUid", - "required": true, - "type": "string" - }, - { - "description": "Machine pool name", - "in": "path", - "name": "machinePoolName", - "required": true, - "type": "string" - }, - { - "description": "Machine uid", - "in": "path", - "name": "machineUid", - "required": true, - "type": "string" - }, - { - "default": "all", - "description": "Cloud type", - "enum": [ - "all", - "aws", - "azure", - "gcp", - "vsphere", - "openstack", - "maas", - "nested", - "baremetal", - "eks", - "aks", - "edge", - "edge-native", - "libvirt", - "tencent", - "tke", - "coxedge", - "generic", - "gke" - ], - "in": "path", - "name": "cloudType", - "required": true, - "type": "string" - } - ], - "put": { - "operationId": "v1CloudConfigsMachinePoolsMachineUidMaintenanceUpdate", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/v1MachineMaintenance" - } - } - ], - "responses": { - "204": { - "description": "The resource was updated successfully" - } - }, - "summary": "Updates the specified machine maintenance", - "tags": [ - "cloudconfigs" - ] - } - }, - "/v1/cloudconfigs/{cloudType}/{configUid}/machinePools/{machinePoolName}/machines/{machineUid}/maintenance/status": { - "parameters": [ - { - "description": "Cluster's cloud config uid", - "in": "path", - "name": "configUid", - "required": true, - "type": "string" - }, - { - "description": "Machine pool name", - "in": "path", - "name": "machinePoolName", - "required": true, - "type": "string" - }, - { - "description": "Machine uid", - "in": "path", - "name": "machineUid", - "required": true, - "type": "string" - }, - { - "default": "all", - "description": "Cloud type", - "enum": [ - "all", - "aws", - "azure", - "gcp", - "vsphere", - "openstack", - "maas", - "nested", - "baremetal", - "eks", - "aks", - "edge", - "edge-native", - "libvirt", - "tencent", - "tke", - "coxedge", - "generic", - "gke" - ], - "in": "path", - "name": "cloudType", - "required": true, - "type": "string" - } - ], - "put": { - "operationId": "v1CloudConfigsMachinePoolsMachineUidMaintenanceStatusUpdate", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/v1MachineMaintenanceStatus" - } - } - ], - "responses": { - "204": { - "description": "The resource was updated successfully" - } - }, - "summary": "Updates the specified machine maintenance", - "tags": [ - "cloudconfigs" - ] - } - }, "/v1/cloudconfigs/{configUid}/machinePools/machineUids": { "get": { "operationId": "v1CloudConfigsMachinePoolsMachineUidsGet", @@ -46088,45 +45875,6 @@ ] } }, - "/v1/clouds/aws/securitygroups": { - "get": { - "operationId": "V1AwsSecurityGroups", - "parameters": [ - { - "description": "Uid for the specific AWS cloud account", - "in": "query", - "name": "cloudAccountUid", - "type": "string" - }, - { - "description": "Region for which security groups are requested", - "in": "query", - "name": "region", - "required": true, - "type": "string" - }, - { - "description": "Vpc Id for which security groups are requested", - "in": "query", - "name": "vpcId", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "(empty)", - "schema": { - "$ref": "#/definitions/v1AwsSecurityGroups" - } - } - }, - "summary": "Retrieves a list of AWS security groups for the specified account", - "tags": [ - "clouds" - ] - } - }, "/v1/clouds/aws/volumeTypes": { "get": { "description": "List all AWS Volume Types", @@ -47010,37 +46758,6 @@ ] } }, - "/v1/clouds/gcp/azs/validate": { - "post": { - "operationId": "V1GcpAzValidate", - "parameters": [ - { - "description": "Uid for the specific GCP cloud account", - "in": "body", - "name": "entity", - "required": true, - "schema": { - "$ref": "#/definitions/v1AzValidateEntity" - } - } - ], - "responses": { - "204": { - "description": "Ok response without content", - "headers": { - "AuditUid": { - "description": "Audit uid for the request", - "type": "string" - } - } - } - }, - "summary": "Validate the specified GCP az", - "tags": [ - "clouds" - ] - } - }, "/v1/clouds/gcp/bucketname/validate": { "post": { "operationId": "V1GcpBucketNameValidate", @@ -47273,44 +46990,6 @@ ] } }, - "/v1/clouds/gcp/projects/{project}/validate": { - "post": { - "operationId": "V1GcpProjectValidate", - "parameters": [ - { - "description": "GCP project uid", - "in": "path", - "name": "project", - "required": true, - "type": "string" - }, - { - "description": "Uid for the specific GCP cloud account", - "in": "body", - "name": "cloudAccountUid", - "required": true, - "schema": { - "$ref": "#/definitions/v1CloudAccountUidEntity" - } - } - ], - "responses": { - "204": { - "description": "Ok response without content", - "headers": { - "AuditUid": { - "description": "Audit uid for the request", - "type": "string" - } - } - } - }, - "summary": "Validate the specified GCP project", - "tags": [ - "clouds" - ] - } - }, "/v1/clouds/gcp/projects/{project}/zones": { "get": { "operationId": "V1GcpAvailabilityZones", @@ -48500,7 +48179,7 @@ } ] }, - "/v1/clustergroups/{uid}/clusters": { + "/v1/clustergroups/{uid}/hostCluster": { "parameters": [ { "in": "path", @@ -48510,39 +48189,7 @@ } ], "put": { - "description": "Deprecated: Use PUT /v1/clustergroups/{uid}/hostCluster", - "operationId": "v1ClusterGroupsUidClustersUpdate", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/v1ClusterGroupClusterRefs" - } - } - ], - "responses": { - "204": { - "description": "The resource was updated successfully" - } - }, - "summary": "Updates the specified cluster groups clusters", - "tags": [ - "clustergroups" - ] - } - }, - "/v1/clustergroups/{uid}/hostCluster": { - "parameters": [ - { - "in": "path", - "name": "uid", - "required": true, - "type": "string" - } - ], - "put": { - "operationId": "v1ClusterGroupsUidHostClusterUpdate", + "operationId": "v1ClusterGroupsUidHostClusterUpdate", "parameters": [ { "in": "body", @@ -48563,38 +48210,6 @@ ] } }, - "/v1/clustergroups/{uid}/hostCluster/config": { - "parameters": [ - { - "in": "path", - "name": "uid", - "required": true, - "type": "string" - } - ], - "put": { - "description": "Deprecated: Use PUT /v1/clustergroups/{uid}/hostCluster", - "operationId": "v1ClusterGroupsUidHostClusterConfigUpdate", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/v1ClusterGroupClustersConfig" - } - } - ], - "responses": { - "204": { - "description": "The resource was updated successfully" - } - }, - "summary": "Updates the host cluster config in cluster group", - "tags": [ - "clustergroups" - ] - } - }, "/v1/clustergroups/{uid}/meta": { "parameters": [ { @@ -48627,63 +48242,6 @@ } }, "/v1/clusterprofiles": { - "get": { - "description": "Deprecated: Use POST /v1/dashboard/clusterprofiles", - "operationId": "v1ClusterProfilesList", - "parameters": [ - { - "description": "Set of fields to be presented in the response with values. The fields are comma separated. Eg: metadata.uid,metadata.name", - "in": "query", - "name": "fields", - "type": "string" - }, - { - "description": "Filters can be combined with AND, OR operators with field path name. Eg: metadata.name=TestServiceANDspec.cloudType=aws\n\nServer will be restricted to certain fields based on the indexed data for each resource.", - "in": "query", - "name": "filters", - "type": "string" - }, - { - "description": "Specify the fields with sort order. 1 indicates ascending and -1 for descending. Eg: orderBy=metadata.name=1,metadata.uid=-1", - "in": "query", - "name": "orderBy", - "type": "string" - }, - { - "default": 50, - "description": "limit is a maximum number of responses to return for a list call. Default and maximum value of the limit is 50.\nIf more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results.", - "format": "int64", - "in": "query", - "name": "limit", - "type": "integer" - }, - { - "description": "offset is the next index number from which the response will start. The response offset value can be used along with continue token for the pagination.", - "format": "int64", - "in": "query", - "name": "offset", - "type": "integer" - }, - { - "description": "continue token to paginate the subsequent data items", - "in": "query", - "name": "continue", - "type": "string" - } - ], - "responses": { - "200": { - "description": "An array of cluster profile items", - "schema": { - "$ref": "#/definitions/v1ClusterProfiles" - } - } - }, - "summary": "Retrieves a list of cluster profiles", - "tags": [ - "clusterprofiles" - ] - }, "post": { "operationId": "v1ClusterProfilesCreate", "parameters": [ @@ -50142,53 +49700,6 @@ } }, "/v1/dashboard/projects": { - "get": { - "description": "Deprecated: Use POST /v1/dashboard/projects", - "operationId": "v1ProjectsSummary", - "parameters": [ - { - "default": 50, - "description": "limit is a maximum number of responses to return for a list call. Default and maximum value of the limit is 50.\nIf more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results.", - "format": "int64", - "in": "query", - "name": "limit", - "type": "integer" - }, - { - "description": "offset is the next index number from which the response will start. The response offset value can be used along with continue token for the pagination.", - "format": "int64", - "in": "query", - "name": "offset", - "type": "integer" - }, - { - "description": "continue token to paginate the subsequent data items", - "in": "query", - "name": "continue", - "type": "string" - }, - { - "default": 60, - "description": "Metric period in minutes defines latest metrics by period", - "format": "int32", - "in": "query", - "name": "metricPeriod", - "type": "integer" - } - ], - "responses": { - "200": { - "description": "An array of project summary items", - "schema": { - "$ref": "#/definitions/v1ProjectsSummary" - } - } - }, - "summary": "Retrieves a list of project summary", - "tags": [ - "dashboard" - ] - }, "post": { "operationId": "v1ProjectsFilterSummary", "parameters": [ @@ -50259,54 +49770,6 @@ ] } }, - "/v1/dashboard/spectroclusters": { - "post": { - "description": "Deprecated: Use POST /v1/dashboard/spectroclusters/search", - "operationId": "v1SpectroClustersFilterSummary", - "parameters": [ - { - "description": "limit is a maximum number of responses to return for a list call. Maximum value of the limit is 20.\nIf more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results.", - "format": "int64", - "in": "query", - "maximum": 20, - "name": "limit", - "type": "integer" - }, - { - "description": "offset is the next index number from which the response will start. The response offset value can be used along with continue token for the pagination.", - "format": "int64", - "in": "query", - "name": "offset", - "type": "integer" - }, - { - "description": "continue token to paginate the subsequent data items", - "in": "query", - "name": "continue", - "type": "string" - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/v1SpectroClusterSummarySpec" - } - } - ], - "responses": { - "200": { - "description": "An array of cluster summary items", - "schema": { - "$ref": "#/definitions/v1SpectroClustersSummary" - } - } - }, - "summary": "Retrieves a list of cluster summary with provided filter spec Supported filter fields - [\"cpuUsage\", \"memoryUsage\", \"clusterName\", \"tags\", \"healthState\", \"clusterStates\", \"isDeleted\", \"environments\", \"metricPeriod\"] Supported sort fields - [\"environment\", \"clusterName\", \"memoryUsage\", \"healthState\", \"creationTimestamp\", \"lastModifiedTimestamp\"]", - "tags": [ - "dashboard" - ] - } - }, "/v1/dashboard/spectroclusters/cost": { "post": { "operationId": "v1DashboardSpectroClustersCostSummary", @@ -52177,35 +51640,6 @@ ] } }, - "/v1/edgehosts/{uid}/reset": { - "parameters": [ - { - "description": "Edge host uid", - "in": "path", - "name": "uid", - "required": true, - "type": "string" - } - ], - "put": { - "operationId": "V1EdgeHostsUidReset", - "responses": { - "204": { - "description": "Ok response without content", - "headers": { - "AuditUid": { - "description": "Audit uid for the request", - "type": "string" - } - } - } - }, - "summary": "Reset the cluster through edge host", - "tags": [ - "edgehosts" - ] - } - }, "/v1/edgehosts/{uid}/spc/download": { "get": { "operationId": "v1EdgeHostDevicesUidSpcDownload", @@ -52634,29 +52068,6 @@ ] } }, - "/v1/installers/spectro/vsphere/{uid}": { - "delete": { - "description": "Deprecated: please use the generic api", - "operationId": "v1SpectroInstallerDeleteDeprecated", - "responses": { - "204": { - "description": "The resource was deleted successfully" - } - }, - "summary": "Deletes the spectroinstaller entity", - "tags": [ - "installers" - ] - }, - "parameters": [ - { - "in": "path", - "name": "uid", - "required": true, - "type": "string" - } - ] - }, "/v1/metrics/{resourceKind}/values": { "get": { "description": "Returns all the metrics for a given resource kind", @@ -53288,31 +52699,6 @@ ] } }, - "/v1/overlords/maas/{uid}/clusterprofile": { - "get": { - "operationId": "v1OverlordsUidMaasClusterProfile", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/v1ClusterProfile" - } - } - }, - "summary": "Returns the specified maas private gateway cluster profile", - "tags": [ - "overlords" - ] - }, - "parameters": [ - { - "in": "path", - "name": "uid", - "required": true, - "type": "string" - } - ] - }, "/v1/overlords/migrate": { "post": { "operationId": "V1OverlordsMigrate", @@ -53524,31 +52910,6 @@ ] } }, - "/v1/overlords/openstack/{uid}/clusterprofile": { - "get": { - "operationId": "v1OverlordsUidOpenStackClusterProfile", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/v1ClusterProfile" - } - } - }, - "summary": "Returns the specified OpenStack private gateway cluster profile", - "tags": [ - "overlords" - ] - }, - "parameters": [ - { - "in": "path", - "name": "uid", - "required": true, - "type": "string" - } - ] - }, "/v1/overlords/pairing/code": { "get": { "operationId": "v1OverlordsPairingCode", @@ -53783,31 +53144,6 @@ ] } }, - "/v1/overlords/vsphere/{uid}/clusterprofile": { - "get": { - "operationId": "v1OverlordsUidVsphereClusterProfile", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/v1ClusterProfile" - } - } - }, - "summary": "Returns the specified vsphere private gateway cluster profile", - "tags": [ - "overlords" - ] - }, - "parameters": [ - { - "in": "path", - "name": "uid", - "required": true, - "type": "string" - } - ] - }, "/v1/overlords/vsphere/{uid}/pools": { "get": { "operationId": "v1OverlordsUidPoolsList", @@ -54246,53 +53582,6 @@ "in": "query", "name": "layer", "type": "string" - }, - { - "description": "Comma seperated pack states. Example values are \"deprecated\" \"deprecated,disabled\". If states is not specified or empty then by default API will return all packs except \"disabled\" packs", - "in": "query", - "name": "states", - "type": "string" - } - ] - }, - "/v1/packs/{packUid}/logo": { - "get": { - "operationId": "v1PacksPackUidLogo", - "produces": [ - "image/png", - "image/gif", - "image/jpeg" - ], - "responses": { - "200": { - "description": "OK", - "headers": { - "Cache-Control": { - "description": "Cache control directive for the response", - "type": "string" - }, - "Expires": { - "type": "string" - } - }, - "schema": { - "format": "binary", - "type": "string" - } - } - }, - "summary": "Returns the logo for a specified pack", - "tags": [ - "packs" - ] - }, - "parameters": [ - { - "description": "Pack uid", - "in": "path", - "name": "packUid", - "required": true, - "type": "string" } ] }, @@ -54482,63 +53771,6 @@ } }, "/v1/projects": { - "get": { - "description": "Deprecated: Use POST /v1/dashboard/projects", - "operationId": "v1ProjectsList", - "parameters": [ - { - "description": "Set of fields to be presented in the response with values. The fields are comma separated. Eg: metadata.uid,metadata.name", - "in": "query", - "name": "fields", - "type": "string" - }, - { - "description": "Filters can be combined with AND, OR operators with field path name. Eg: metadata.name=TestServiceANDspec.cloudType=aws\n\nServer will be restricted to certain fields based on the indexed data for each resource.", - "in": "query", - "name": "filters", - "type": "string" - }, - { - "description": "Specify the fields with sort order. 1 indicates ascending and -1 for descending. Eg: orderBy=metadata.name=1,metadata.uid=-1", - "in": "query", - "name": "orderBy", - "type": "string" - }, - { - "default": 50, - "description": "limit is a maximum number of responses to return for a list call. Default and maximum value of the limit is 50.\nIf more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results.", - "format": "int64", - "in": "query", - "name": "limit", - "type": "integer" - }, - { - "description": "offset is the next index number from which the response will start. The response offset value can be used along with continue token for the pagination.", - "format": "int64", - "in": "query", - "name": "offset", - "type": "integer" - }, - { - "description": "continue token to paginate the subsequent data items", - "in": "query", - "name": "continue", - "type": "string" - } - ], - "responses": { - "200": { - "description": "An array of projects", - "schema": { - "$ref": "#/definitions/v1Projects" - } - } - }, - "summary": "Retrieves a list of projects", - "tags": [ - "projects" - ] - }, "post": { "operationId": "v1ProjectsCreate", "parameters": [ @@ -55512,37 +54744,6 @@ ] } }, - "/v1/registries/oci/basic/validate": { - "post": { - "description": "Returns no contents if oci registry is valid else error.", - "operationId": "v1BasicOciRegistriesValidate", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1BasicOciRegistrySpec" - } - } - ], - "responses": { - "204": { - "description": "Ok response without content", - "headers": { - "AuditUid": { - "description": "Audit uid for the request", - "type": "string" - } - } - } - }, - "summary": "Check if oci registry is valid", - "tags": [ - "registries" - ] - } - }, "/v1/registries/oci/ecr": { "post": { "operationId": "v1EcrRegistriesCreate", @@ -55555,69 +54756,21 @@ } } ], - "responses": { - "201": { - "description": "Created successfully", - "headers": { - "AuditUid": { - "description": "Audit uid for the request", - "type": "string" - } - }, - "schema": { - "$ref": "#/definitions/v1Uid" - } - } - }, - "summary": "Creates a ecr registry", - "tags": [ - "registries" - ] - } - }, - "/v1/registries/oci/ecr/validate": { - "post": { - "description": "Returns no contents if ecr registry is valid else error.", - "operationId": "v1EcrRegistriesValidate", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1EcrRegistrySpec" - } - } - ], - "responses": { - "204": { - "description": "Ok response without content", + "responses": { + "201": { + "description": "Created successfully", "headers": { "AuditUid": { "description": "Audit uid for the request", "type": "string" } - } - } - }, - "summary": "Check if ecr registry is valid", - "tags": [ - "registries" - ] - } - }, - "/v1/registries/oci/image": { - "get": { - "operationId": "v1OciImageRegistryGet", - "responses": { - "200": { - "description": "(empty)", + }, "schema": { - "$ref": "#/definitions/v1OciImageRegistry" + "$ref": "#/definitions/v1Uid" } } }, - "summary": "Creates a image registry", + "summary": "Creates a ecr registry", "tags": [ "registries" ] @@ -55728,61 +54881,6 @@ ] } }, - "/v1/registries/oci/{uid}/basic/sync": { - "parameters": [ - { - "in": "path", - "name": "uid", - "required": true, - "type": "string" - } - ], - "post": { - "description": "Sync all the content from the oci registry", - "operationId": "v1BasicOciRegistriesUidSync", - "responses": { - "202": { - "description": "Ok response without content", - "headers": { - "AuditUid": { - "description": "Audit uid for the request", - "type": "string" - } - } - } - }, - "summary": "Sync oci registry", - "tags": [ - "registries" - ] - } - }, - "/v1/registries/oci/{uid}/basic/sync/status": { - "get": { - "description": "Get sync status for the oci specified registry", - "operationId": "v1BasicOciRegistriesUidSyncStatus", - "responses": { - "200": { - "description": "Oci registry sync status", - "schema": { - "$ref": "#/definitions/v1RegistrySyncStatus" - } - } - }, - "summary": "Get oci registry sync status", - "tags": [ - "registries" - ] - }, - "parameters": [ - { - "in": "path", - "name": "uid", - "required": true, - "type": "string" - } - ] - }, "/v1/registries/oci/{uid}/ecr": { "delete": { "operationId": "v1EcrRegistriesUidDelete", @@ -55841,61 +54939,6 @@ ] } }, - "/v1/registries/oci/{uid}/ecr/sync": { - "parameters": [ - { - "in": "path", - "name": "uid", - "required": true, - "type": "string" - } - ], - "post": { - "description": "Sync all the content from the ecr registry", - "operationId": "v1EcrRegistriesUidSync", - "responses": { - "202": { - "description": "Ok response without content", - "headers": { - "AuditUid": { - "description": "Audit uid for the request", - "type": "string" - } - } - } - }, - "summary": "Sync ecr registry", - "tags": [ - "registries" - ] - } - }, - "/v1/registries/oci/{uid}/ecr/sync/status": { - "get": { - "description": "Get sync status for the ecr specified registry", - "operationId": "v1EcrRegistriesUidSyncStatus", - "responses": { - "200": { - "description": "Ecr registry sync status", - "schema": { - "$ref": "#/definitions/v1RegistrySyncStatus" - } - } - }, - "summary": "Get ecr registry sync status", - "tags": [ - "registries" - ] - }, - "parameters": [ - { - "in": "path", - "name": "uid", - "required": true, - "type": "string" - } - ] - }, "/v1/registries/pack": { "get": { "operationId": "v1RegistriesPackList", @@ -56584,65 +55627,6 @@ ] } }, - "/v1/spectroclusters": { - "get": { - "description": "Deprecated: Use POST /v1/dashboard/spectroclusters", - "operationId": "v1SpectroClustersList", - "parameters": [ - { - "description": "Set of fields to be presented in the response with values. The fields are comma separated. Eg: metadata.uid,metadata.name", - "in": "query", - "name": "fields", - "type": "string" - }, - { - "description": "Filters can be combined with AND, OR operators with field path name. Eg: metadata.name=TestServiceANDspec.cloudType=aws\n\nServer will be restricted to certain fields based on the indexed data for each resource.", - "in": "query", - "name": "filters", - "type": "string" - }, - { - "description": "Specify the fields with sort order. 1 indicates ascending and -1 for descending. Eg: orderBy=metadata.name=1,metadata.uid=-1", - "in": "query", - "name": "orderBy", - "type": "string" - }, - { - "default": 50, - "description": "limit is a maximum number of responses to return for a list call. Default and maximum value of the limit is 50.\nIf more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results.", - "format": "int64", - "in": "query", - "name": "limit", - "type": "integer" - }, - { - "description": "offset is the next index number from which the response will start. The response offset value can be used along with continue token for the pagination.", - "format": "int64", - "in": "query", - "name": "offset", - "type": "integer" - }, - { - "description": "continue token to paginate the subsequent data items", - "in": "query", - "name": "continue", - "type": "string" - } - ], - "responses": { - "200": { - "description": "An array of cluster items", - "schema": { - "$ref": "#/definitions/v1SpectroClusters" - } - } - }, - "summary": "Retrieves a list of clusters", - "tags": [ - "spectroclusters" - ] - } - }, "/v1/spectroclusters/agents/{messageKey}/notify": { "post": { "operationId": "V1SpectroClustersAgentsNotify", @@ -58796,41 +57780,6 @@ ] } }, - "/v1/spectroclusters/{uid}/assets/adminKubeconfig": { - "get": { - "operationId": "v1SpectroClustersUidAdminKubeConfig", - "produces": [ - "application/octet-stream" - ], - "responses": { - "200": { - "description": "download file", - "headers": { - "Content-Disposition": { - "type": "string" - } - }, - "schema": { - "format": "binary", - "type": "string" - } - } - }, - "summary": "Returns the specified cluster's kube config file", - "tags": [ - "spectroclusters" - ] - }, - "parameters": [ - { - "description": "Cluster uid", - "in": "path", - "name": "uid", - "required": true, - "type": "string" - } - ] - }, "/v1/spectroclusters/{uid}/assets/frpKubeconfig": { "delete": { "operationId": "v1SpectroClustersUidFrpKubeConfigDelete", @@ -59111,38 +58060,6 @@ ] } }, - "/v1/spectroclusters/{uid}/clusterConfig/controlPlaneHealthCheckTimeout": { - "parameters": [ - { - "description": "Cluster uid", - "in": "path", - "name": "uid", - "required": true, - "type": "string" - } - ], - "patch": { - "operationId": "V1ControlPlaneHealthCheckTimeoutUpdate", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/v1ControlPlaneHealthCheckTimeoutEntity" - } - } - ], - "responses": { - "204": { - "description": "The resource was updated successfully" - } - }, - "summary": "Updates the specified cluster controlPlane health check timeout", - "tags": [ - "spectroclusters" - ] - } - }, "/v1/spectroclusters/{uid}/clusterConfig/hostCluster": { "parameters": [ { @@ -60935,44 +59852,10 @@ ], "responses": { "204": { - "description": "The resource was updated successfully" - } - }, - "summary": "Patch update specified cluster's packs status", - "tags": [ - "spectroclusters" - ] - } - }, - "/v1/spectroclusters/{uid}/packs/{packName}/config": { - "get": { - "description": "Deprecated", - "operationId": "v1SpectroClustersUidPacksConfigGet", - "parameters": [ - { - "description": "cluster uid", - "in": "path", - "name": "uid", - "required": true, - "type": "string" - }, - { - "description": "pack name", - "in": "path", - "name": "packName", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "An array of cluster pack values", - "schema": { - "$ref": "#/definitions/v1SpectroClusterPackConfigList" - } + "description": "The resource was updated successfully" } }, - "summary": "Returns the specified cluster's pack configuration", + "summary": "Patch update specified cluster's packs status", "tags": [ "spectroclusters" ] @@ -62568,63 +61451,6 @@ } }, "/v1/teams/summary": { - "get": { - "description": "Deprecated, Use Post api - Returns a list of team summaries", - "operationId": "v1TeamsSummary", - "parameters": [ - { - "description": "Set of fields to be presented in the response with values. The fields are comma separated. Eg: metadata.uid,metadata.name", - "in": "query", - "name": "fields", - "type": "string" - }, - { - "description": "Filters can be combined with AND, OR operators with field path name. Eg: metadata.name=TestServiceANDspec.cloudType=aws\n\nServer will be restricted to certain fields based on the indexed data for each resource.", - "in": "query", - "name": "filters", - "type": "string" - }, - { - "description": "Specify the fields with sort order. 1 indicates ascending and -1 for descending. Eg: orderBy=metadata.name=1,metadata.uid=-1", - "in": "query", - "name": "orderBy", - "type": "string" - }, - { - "default": 50, - "description": "limit is a maximum number of responses to return for a list call. Default and maximum value of the limit is 50.\nIf more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results.", - "format": "int64", - "in": "query", - "name": "limit", - "type": "integer" - }, - { - "description": "offset is the next index number from which the response will start. The response offset value can be used along with continue token for the pagination.", - "format": "int64", - "in": "query", - "name": "offset", - "type": "integer" - }, - { - "description": "continue token to paginate the subsequent data items", - "in": "query", - "name": "continue", - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/v1TeamsSummary" - } - } - }, - "summary": "Retrieves a list of team summary", - "tags": [ - "teams" - ] - }, "post": { "operationId": "v1TeamsSummaryGet", "parameters": [ @@ -63162,58 +61988,6 @@ ] } }, - "/v1/tenants/{tenantUid}/authTokenSettings": { - "get": { - "operationId": "v1TenantUidAuthTokenSettingsGet", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/v1AuthTokenSettings" - } - } - }, - "summary": "Get tenant auth token settings", - "tags": [ - "tenants" - ] - }, - "parameters": [ - { - "in": "path", - "name": "tenantUid", - "required": true, - "type": "string" - } - ], - "put": { - "operationId": "v1TenantUidAuthTokenSettingsUpdate", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/v1AuthTokenSettings" - } - } - ], - "responses": { - "204": { - "description": "Ok response without content", - "headers": { - "AuditUid": { - "description": "Audit uid for the request", - "type": "string" - } - } - } - }, - "summary": "Update tenant auth token settings", - "tags": [ - "tenants" - ] - } - }, "/v1/tenants/{tenantUid}/contract/accept": { "parameters": [ { @@ -63600,58 +62374,6 @@ } ] }, - "/v1/tenants/{tenantUid}/loginBanner": { - "get": { - "operationId": "v1TenantUidLoginBannerGet", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/v1LoginBannerSettings" - } - } - }, - "summary": "Get tenant login banner settings", - "tags": [ - "tenants" - ] - }, - "parameters": [ - { - "in": "path", - "name": "tenantUid", - "required": true, - "type": "string" - } - ], - "put": { - "operationId": "v1TenantUidLoginBannerUpdate", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/v1LoginBannerSettings" - } - } - ], - "responses": { - "204": { - "description": "Ok response without content", - "headers": { - "AuditUid": { - "description": "Audit uid for the request", - "type": "string" - } - } - } - }, - "summary": "Update tenant login banner settings", - "tags": [ - "tenants" - ] - } - }, "/v1/tenants/{tenantUid}/macros": { "delete": { "operationId": "v1TenantsUidMacrosDeleteByMacroName", @@ -64029,58 +62751,6 @@ ] } }, - "/v1/tenants/{tenantUid}/preferences/fips": { - "get": { - "operationId": "v1TenantFipsSettingsGet", - "responses": { - "200": { - "description": "(empty)", - "schema": { - "$ref": "#/definitions/v1FipsSettings" - } - } - }, - "summary": "Get tenant fips settings", - "tags": [ - "tenants" - ] - }, - "parameters": [ - { - "in": "path", - "name": "tenantUid", - "required": true, - "type": "string" - } - ], - "put": { - "operationId": "v1TenantFipsSettingsUpdate", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/v1FipsSettings" - } - } - ], - "responses": { - "204": { - "description": "Ok response without content", - "headers": { - "AuditUid": { - "description": "Audit uid for the request", - "type": "string" - } - } - } - }, - "summary": "Update tenant fips setting", - "tags": [ - "tenants" - ] - } - }, "/v1/tenants/{tenantUid}/rateConfig": { "get": { "operationId": "v1RateConfigGet", @@ -65202,45 +63872,6 @@ } }, "/v1/users/summary": { - "get": { - "description": "Deprecated, Use Post api - Returns a list of user summaries", - "operationId": "v1UsersSummary", - "parameters": [ - { - "default": 50, - "description": "limit is a maximum number of responses to return for a list call. Default and maximum value of the limit is 50.\nIf more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results.", - "format": "int64", - "in": "query", - "name": "limit", - "type": "integer" - }, - { - "description": "offset is the next index number from which the response will start. The response offset value can be used along with continue token for the pagination.", - "format": "int64", - "in": "query", - "name": "offset", - "type": "integer" - }, - { - "description": "continue token to paginate the subsequent data items", - "in": "query", - "name": "continue", - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/v1UsersSummary" - } - } - }, - "summary": "Returns the specified user summary list", - "tags": [ - "users" - ] - }, "post": { "operationId": "v1UsersSummaryGet", "parameters": [ @@ -66247,38 +64878,6 @@ ] } }, - "/v1/workspaces/{uid}/resourceAllocations": { - "parameters": [ - { - "in": "path", - "name": "uid", - "required": true, - "type": "string" - } - ], - "put": { - "description": "Deprecated", - "operationId": "v1WorkspacesUidResourceAllocationsUpdate", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/v1WorkspaceResourceAllocationsEntity" - } - } - ], - "responses": { - "204": { - "description": "The resource was updated successfully" - } - }, - "summary": "Updates the specified workspace resource allocations", - "tags": [ - "workspaces" - ] - } - }, "/v1/workspaces/{uid}/restore": { "get": { "operationId": "v1WorkspaceOpsRestoreGet", @@ -66361,10 +64960,6 @@ ], "swagger": "2.0", "tags": [ - { - "name": "cluster", - "x-displayName": "Cluster" - }, { "name": "apiKeys", "x-displayName": "Api Keys" @@ -66425,10 +65020,6 @@ "name": "filters", "x-displayName": "Filters" }, - { - "name": "installers", - "x-displayName": "Installers" - }, { "name": "metrics", "x-displayName": "Metrics"