components: parameters: connectionID: description: ID of the private connection in: path name: connectionID required: true schema: format: uuid type: string fields: description: Comma-separated values list that correspond to the filtered fields for returned entities in: query name: fields schema: type: string organizationID: description: ID of the organization in: path name: organizationID required: true schema: format: uuid type: string secretID: description: ID of the secret in: path name: secretID required: true schema: format: uuid type: string workspaceGroupID: description: ID of the workspace group in: path name: workspaceGroupID required: true schema: format: uuid type: string workspaceID: description: ID of the workspace in: path name: workspaceID required: true schema: format: uuid type: string schemas: BillingUsage: description: Represents a billing usage entity properties: description: description: What the unit indicates type: string metric: description: The metric name type: string usage: items: properties: endTime: type: string ownerId: type: string resourceId: type: string resourceName: type: string resourceType: type: string startTime: type: string value: type: string type: object type: array type: object Organization: description: Represents information related to an organization properties: firewallRanges: description: The list of allowed IP addresses which can access the Management API items: type: string type: array name: description: Name of the organization type: string orgID: description: ID of the organization format: uuid type: string required: - orgID type: object PrivateConnection: description: Represents information related to a private link connection properties: activeAt: description: The timestamp of when the private connection became active example: "2023-09-18T09:56:56Z" type: string allowList: description: The private connection allow list. This is the account ID for AWS, subscription ID for Azure, and the project name GCP example: my-allow-list type: string createdAt: description: The timestamp of when the private connection was created example: "2023-09-18T09:56:56Z" type: string deletedAt: description: The timestamp of when the private connection was deleted example: "2023-09-18T09:56:56Z" type: string outboundAllowList: description: The account ID which must be allowed for outbound connections example: arn:aws:iam:xxxxxxxxx:root type: string privateConnectionID: description: The ID of the private connection example: 8900372e-0000-1000-9000-4c47638040af format: uuid type: string serviceName: description: The name of the private connection service example: My service type: string status: description: The status of the private connection enum: - PENDING - ACTIVE - DELETED example: ACTIVE type: string type: description: The private connection type enum: - INBOUND - OUTBOUND example: INBOUND type: string updatedAt: description: The timestamp of when the private connection was last updated example: "2023-09-18T09:56:56Z" type: string workspaceGroupID: description: The ID of the workspace group containing the private connection example: 68af2f46-0000-1000-9000-3f6f5365d878 format: uuid type: string workspaceID: description: The ID of the workspace to connect with example: 7d6b3a5a-0000-1000-9000-d454af4c785b format: uuid type: string required: - privateConnectionID - workspaceGroupID type: object PrivateConnectionCreate: description: Represents the information specified when creating a private connection properties: allowList: description: The private connection allow list example: my-allow-list type: string kaiEndpointID: description: VPC Endpoint ID for AWS example: vpce-12345678901234567 type: string serviceName: description: The name of the private connection service example: My private link type: string type: description: The private connection type enum: - INBOUND - OUTBOUND example: INBOUND type: string workspaceGroupID: description: The ID of the workspace group containing the private connection example: 68af2f46-0000-1000-9000-3f6f5365d878 format: uuid type: string workspaceID: description: The ID of the workspace to connect with format: uuid type: string required: - workspaceGroupID type: object PrivateConnectionKaiInfo: description: Represents the information for creating private connection to SingleStore Kai properties: serviceName: description: VPC Endpoint Service Name for AWS example: com.amazonaws.vpce.us-east-1.vpce-svc-0123456789abcdefg type: string type: object PrivateConnectionOutboundAllowList: description: Represents information related to a private connection outbound allow list properties: outboundAllowList: description: The account ID allowed for outbound connections example: arn:aws:iam:xxxxxxxxx:root type: string type: object PrivateConnectionUpdate: description: Represents the information specfied when updating a private connection properties: allowList: description: The private connection allow list example: my-allow-list type: string type: object Region: description: Represents information related to a region in which a workspace group is created properties: provider: description: Name of the provider enum: - AWS - GCP - Azure type: string region: description: Name of the region type: string regionID: description: ID of the region format: uuid type: string required: - regionID - region - provider type: object ReplicatedDatabase: description: Represents information related to a database's replication status properties: databaseName: description: Name of the database type: string duplicationState: description: Duplication state of the database enum: - Pending - Active - Inactive - Error type: string region: description: Name of the region type: string required: - databaseName - region - duplicationState type: object StageObjectMetadata: description: Represents the metadata corresponding to an object in a Stage properties: content: oneOf: - example: Hello World! type: string - example: [] items: $ref: '#/components/schemas/StageObjectMetadata' type: array created: example: "2023-09-08T17:35:43Z" type: string format: description: Format of the response enum: - json nullable: true type: string last_modified: example: "2023-09-08T17:35:43Z" type: string mimetype: type: string name: description: Name of the Stage object example: file.json type: string path: description: Path of the Stage object example: parent_folder/sample_folder/file.json type: string size: example: 32 type: integer type: description: Object type enum: - "" - json - directory nullable: true type: string writable: type: boolean type: object StorageDRSetup: description: Represents the information specified to setup Storage DR properties: databaseNames: description: List of database names items: example: x_db type: string type: array regionID: description: Region ID of the secondary region format: uuid type: string required: - regionID - databaseNames type: object StorageDRStatus: description: Represents Storage DR status information properties: compute: description: Represents information related to a workspace group's latest storage DR operation properties: completedAttachments: description: The number of database attachments that have been setup type: integer completedWorkspaces: description: The number of workspaces that have been setup type: integer storageDRState: description: Status of Storage DR operation enum: - Active - Completed - Failed - Expired - Canceled type: string storageDRType: description: Name of Storage DR operation enum: - Failover - Failback - PreProvisionStart - PreProvisionStop type: string totalAttachments: description: The total number of database attachments to setup type: integer totalWorkspaces: description: The total number of workspaces to setup type: integer required: - storageDRType - storageDRState - totalWorkspaceBuildTasks - totalDatabaseAttachTasks - completedWorkspaceBuildTasks - completedDatabaseAttachTasks type: object storage: items: $ref: '#/components/schemas/ReplicatedDatabase' type: array required: - compute - storage type: object UpdateWindow: description: Represents information related to an update window properties: day: description: Day of week (0-6), starting on Sunday example: 2 type: number hour: description: Hour of day - 0 to 23 (UTC) example: 1 type: number required: - hour - day type: object Workspace: description: Represents information related to a workspace properties: autoSuspend: description: (If included in the output) Represents the current auto suspend settings enabled for this workspace. If autoSuspend has an empty value, then the auto suspend settings are disabled properties: idleAfterSeconds: description: (If included in the output) The duration (in seconds) the workspace must be inactive until it automatically suspends type: number idleChangedAt: description: (If included in the output) The timestamp when idleAfterSeconds was last changed type: string scheduledChangedAt: description: (If included in the output) The timestamp when scheduledSuspendAt was last changed type: string scheduledSuspendAt: description: (If included in the output) The timestamp when the workspace will be suspended type: string suspendType: description: The type of auto suspend currently enabled enum: - IDLE - SCHEDULED type: string suspendTypeChangedAt: description: (If included in the output) The timestamp when suspendType was last changed type: string required: - suspendType type: object cacheConfig: description: | Specifies the multiplier for the persistent cache associated with the workspace. It can have one of the following values: 1, 2, or 4. type: number createdAt: description: The timestamp of when the workspace was created type: string deploymentType: description: | Specifies the deployment type for the workspace. It can have one of the following values: `PRODUCTION` or `NON-PRODUCTION`. If the value wasn't changed on creation, then the default will be `PRODUCTION`. If set to `NON-PRODUCTION`, the upgrades are only applied to the non-production workspaces. enum: - PRODUCTION - NON-PRODUCTION type: string endpoint: description: Endpoint to connect to the workspace type: string lastResumedAt: description: (If included in the output) The timestamp of when the workspace was last resumed type: string name: description: Name of the workspace type: string resumeAttachments: description: (If included in the output) The result of database attachments after the workspace was resumed items: description: Represents information related to database attachments properties: attachment: description: The type of attachment enum: - READWRITE - READONLY type: string database: description: Name of the database type: string error: description: The error if the attachment was not successful type: string success: description: Whether the attachment was successful or not type: boolean required: - database - attachment - success type: object type: array scalingProgress: description: (If included in the output) The current progress percentage for the scaling workspace type: number size: description: | Size of the workspace (in workspace size notation), such as "S-00" or "S-1" type: string state: description: State of the workspace enum: - ACTIVE - PENDING - SUSPENDED - FAILED - TERMINATED type: string terminatedAt: description: (If included in the output) The timestamp of when the workspace was terminated type: string workspaceGroupID: description: ID of the workspace group containing the workspace format: uuid type: string workspaceID: description: ID of the workspace format: uuid type: string required: - name - workspaceID - workspaceGroupID - size - state - createdAt type: object WorkspaceCreate: description: Represents the information specified while creating a workspace properties: autoSuspend: description: Auto suspend settings for the workspace. If this field is not provided, no settings will be enabled. properties: suspendAfterSeconds: description: When to suspend the workspace, according to the suspend type chosen example: 1200 type: number suspendType: description: The auto suspend mode for the workspace can have the values `IDLE`, `SCHEDULED`, or `DISABLED` (to create the workspace with no auto suspend settings). enum: - IDLE - SCHEDULED - DISABLED example: IDLE type: string type: object cacheConfig: description: | Specifies the multiplier for the persistent cache associated with the workspace. If specified, it enables the cache configuration multiplier. It can have one of the following values: 1, 2, or 4. example: 2 type: number enableKai: description: Whether to create a SingleStore Kai-enabled workspace type: boolean name: description: Name of the workspace example: demo-workspace type: string size: description: | Size of the workspace (in workspace size notation), such as "S-1". The default value is "S-00". example: S-2 type: string workspaceGroupID: description: ID of the workspace group in which the workspace is created example: c74bb6a6-0000-1000-9000-1d874fa277b0 format: uuid type: string required: - name - workspaceGroupID type: object WorkspaceGroup: description: Represents information related to a workspace group properties: allowAllTraffic: description: Whether or not all traffic is allowed to the workspace group type: boolean createdAt: description: The timestamp of when the workspace was created type: string expiresAt: description: The timestamp of when the workspace group will expire. At expiration, the workspace group is terminated and all the data is lost. type: string firewallRanges: description: The list of allowed inbound IP addresses. An empty list indicates that no inbound requests are allowed. items: type: string type: array name: description: Name of the workspace group type: string regionID: description: ID of the region format: uuid type: string state: description: State of the workspace group enum: - ACTIVE - PENDING - FAILED - TERMINATED type: string terminatedAt: description: (If included in the output) The timestamp of when the workspace group was terminated type: string updateWindow: $ref: '#/components/schemas/UpdateWindow' workspaceGroupID: description: ID of the workspace group format: uuid type: string required: - name - state - workspaceGroupID - createdAt - regionID type: object WorkspaceGroupCreate: description: Represents the information specified while creating a workspace group properties: adminPassword: description: | The admin password for the workspace group. The password must contain: * At least 8 characters * At least one uppercase character * At least one lowercase character * At least one number or special character If a password is not specified while creating a workspace group, a password is generated and returned in the response object. example: "" type: string allowAllTraffic: description: If enabled, allows all traffic to the workspace group. type: boolean backupBucketKMSKeyID: description: | Specifies the KMS key ID associated with the backup bucket. If specified, enables Customer-Managed Encryption Keys (CMEK) encryption for the backup bucket of the workspace group. This feature is only supported in workspace groups deployed in AWS. type: string dataBucketKMSKeyID: description: "Specifies the KMS key ID associated with the data bucket. If specified, enables Customer-Managed Encryption Keys (CMEK) encryption for the data bucket and Amazon Elastic Block Store (EBS) volumes of the workspace group. This feature is only supported in workspace groups deployed in AWS. \n" type: string expiresAt: description: | The timestamp of when the workspace group will expire. If the expiration time is not specified, the workspace group will have no expiration time. At expiration, the workspace group is terminated and all the data is lost. Expiration time can be specified as a timestamp or duration. For example, * "2023-09-02T15:04:05Z07:00" * "2023-09-02T15:04:05-0700" * "2023-09-02T15:04:05" * "2023-09-02" * "3h30m" example: "" type: string firewallRanges: description: | A list of allowed CIDR ranges. An empty list indicates that no inbound requests are allowed. Required example: - 192.168.0.1/32 - 192.168.0.81/12 items: type: string type: array name: description: Name of the workspace group example: demo-workspace-group type: string regionID: description: ID of the region where the new workspace group is created example: 7e7ffd27-0000-1000-9000-e72828a81ac7 format: uuid type: string smartDR: description: | Enables Smart Disaster Recovery (SmartDR) for the workspace group. SmartDR is a disaster recovery solution that ensures seamless and continuous replication of data from the primary region to a secondary region. For more information, refer to [SmartDR](https://docs.singlestore.com/cloud/manage-data/smart-disaster-recovery-dr-smartdr/). type: boolean updateWindow: $ref: '#/components/schemas/UpdateWindow' required: - name - regionID - firewallRanges type: object WorkspaceGroupUpdate: description: Represents the information specified while updating a workspace group properties: adminPassword: description: | The admin password for the workspace group. The password must contain: * At least 8 characters * At least one uppercase character * At least one lowercase character * At least one number or special character example: "" type: string allowAllTraffic: description: Whether to allow all traffic to the workspace group type: boolean expiresAt: description: | The timestamp of when the workspace group will expire. If the expiration time is not specified, the workspace group will have no expiration time. At expiration, the workspace group is terminated and all the data is lost. Expiration time can be specified as a timestamp or duration. For example, * "2023-09-02T15:04:05Z07:00" * "2023-09-02T15:04:05-0700" * "2023-09-02T15:04:05" * "2023-09-02" * "3h30m" example: "" type: string firewallRanges: description: A list of allowed CIDR ranges. An empty list indicates that no inbound requests are allowed. example: - 192.168.0.1/32 - 192.168.0.81/12 items: type: string type: array name: description: Name of the workspace group example: new-workspace-group-name type: string updateWindow: $ref: '#/components/schemas/UpdateWindow' type: object WorkspaceResume: description: Represents additional information specified when resuming a workspace properties: disableAutoSuspend: description: Whether to disable auto suspend or keep the existing auto suspend settings. By default, `disableAutoSuspend` is set to `false`, and the existing auto suspend settings are preserved. example: false type: boolean type: object WorkspaceUpdate: description: Represents the information specified while updating a workspace properties: autoSuspend: description: 'Specifies the auto suspend mode for the workspace. It can have one of the following values: `IDLE`, `SCHEDULED`, or `DISABLED`.' properties: suspendAfterSeconds: description: The time interval (in seconds) after which the workspace is suspended, depending on the auto suspend mode. example: 1200 type: number suspendType: description: The type of auto suspend mode. Set to `DISABLED` to disable auto suspend. enum: - IDLE - SCHEDULED - DISABLED example: IDLE type: string type: object cacheConfig: description: | Specifies the multiplier for the persistent cache associated with the workspace. If specified, it enables the cache configuration multiplier. It can have one of the following values: 1, 2, or 4. example: 2 type: number deploymentType: description: The deployment type that will be applied to all the workspaces within the group enum: - PRODUCTION - NON-PRODUCTION example: PRODUCTION type: string size: description: | Size of the workspace (in workspace size notation), such as "S-1". The default value is "S-00". example: S-2 type: string type: object securitySchemes: ApiKeyAuth: bearerFormat: API key description: | For information on authenticating your API requests, refer to [`Management` API Overview](https://docs.singlestore.com/managed-service/en/reference/management-api.html). scheme: bearer type: http info: contact: name: SingleStore Support url: https://www.singlestore.com/support/ description: | The `Management` API can be used to create and manage workspaces, workspace groups, private connections, etc. SingleStore recommends reading the [`Management` API Overview](https://docs.singlestore.com/managed-service/en/reference/management-api.html) before getting started with the API reference. All the URLs referenced in this API documentation use the `https://api.singlestore.com` service endpoint as their base. title: SingleStore Management API version: 1.1.58 openapi: 3.0.0 paths: /v1/billing/usage: description: The `usage` endpoint under billing can report compute and storage usage. get: description: | Lists the compute and storage usage of an organization in a given timeframe and aggregate type. The usage entries also contains details such as name, type and usage value. parameters: - description: Metrics include ComputeCredit, StorageAvgByte. default is all in: query name: metric schema: enum: - ComputeCredit - StorageAvgByte type: string - description: The start time for the usage interval in valid UTC ISO8601 format e.g. 2023-07-30T18:30:00Z in: query name: startTime required: true schema: type: string - description: The end time for the usage interval valid UTC ISO8601 format e.g. 2023-07-30T18:30:00Z in: query name: endTime required: true schema: type: string - description: The aggregate type used to group usage which includes hour, day and month. default is hour in: query name: aggregateBy schema: enum: - hour - day - month type: string responses: "200": content: application/json: schema: properties: billingUsage: items: $ref: '#/components/schemas/BillingUsage' type: array type: object description: OK "400": description: Invalid request "401": description: Unauthorized "429": description: Too many requests "500": description: Internal server error summary: Lists the compute and storage usage of a organization tags: - Billing [Beta] /v1/organizations/current: get: description: Returns information about the current authorized user's organization. responses: "200": content: application/json: schema: $ref: '#/components/schemas/Organization' description: OK "400": description: Invalid request "401": description: Unauthorized "429": description: Too many requests "500": description: Internal server error summary: Gets information about the current organization tags: - Organizations /v1/privateConnections: description: The `privateConnections` endpoint can be used to create and manage private connections to SingleStoreDB Cloud workspaces. post: description: | Creates a new private connection. Upon successful completion of the request, a private connection is scheduled for creation. To query the private connection status, use the endpoints for the workspace group and workspace (if provided). requestBody: content: application/json: schema: $ref: '#/components/schemas/PrivateConnectionCreate' description: Here's a sample of JSON data sent in the request body to the API. required: true responses: "200": content: application/json: example: privateConnectionID: b07fff9f-0000-1000-9000-b1974e06b736 schema: properties: privateConnectionID: format: uuid type: string required: - privateConnectionID type: object description: OK "400": description: Invalid request "401": description: Unauthorized "429": description: Too many requests "500": description: Internal server error summary: Creates a new private connection tags: - Private Connections /v1/privateConnections/{connectionID}: delete: description: Deletes a private connection for the specified connection ID. Upon successful completion, a private connection is scheduled for deletion. parameters: - $ref: '#/components/parameters/connectionID' responses: "200": content: application/json: example: privateConnectionID: b07fff9f-0000-1000-9000-b1974e06b736 schema: properties: privateConnectionID: format: uuid type: string required: - privateConnectionID type: object description: OK "400": description: Invalid request "401": description: Unauthorized "404": description: A private connection with the specified ID was not found "429": description: Too many requests "500": description: Internal server error summary: Deletes a private connection tags: - Private Connections get: description: Returns private connection information for the specified connection ID, in JSON format. You must specify the connection ID in the API call. parameters: - $ref: '#/components/parameters/connectionID' - $ref: '#/components/parameters/fields' responses: "200": content: application/json: schema: $ref: '#/components/schemas/PrivateConnection' description: OK "400": description: Invalid request "401": description: Unauthorized "404": description: A private connection with the specified ID was not found "429": description: Too many requests "500": description: Internal server error summary: Gets information about a private connection tags: - Private Connections patch: description: Updates a private connection. You must specify the connection ID in the API call. parameters: - $ref: '#/components/parameters/connectionID' requestBody: content: application/json: schema: $ref: '#/components/schemas/PrivateConnectionUpdate' description: Here's a sample of JSON data sent in the request body to the API. required: true responses: "200": content: application/json: example: privateConnectionID: b07fff9f-0000-1000-9000-b1974e06b736 schema: properties: privateConnectionID: format: uuid type: string required: - privateConnectionID type: object description: OK "400": description: Invalid request "401": description: Unauthorized "404": description: A private connection with the specified ID was not found "429": description: Too many requests "500": description: Internal server error summary: Updates a private connection tags: - Private Connections /v1/regions: get: description: Returns a list of valid regions for the user that support workspaces, including the region ID and provider for each region. parameters: - $ref: '#/components/parameters/fields' responses: "200": content: application/json: example: - provider: GCP region: US West 1 (Oregon) regionID: 1c1de314-0000-1000-9000-5047ff90842e - provider: AWS region: Europe Central 1 (Frankfurt) regionID: 7e7ffd27-0000-1000-9000-e72828a81ac7 - provider: AWS region: Asia Pacific Southeast 2 (Sydney) regionID: c74bb6a6-0000-1000-9000-1d874fa277b7 schema: items: $ref: '#/components/schemas/Region' type: array description: OK "401": description: Unauthorized "429": description: Too many requests "500": description: Internal server error summary: Lists all of the regions for the user that support workspaces tags: - Regions /v1/stage/{workspaceGroupID}/fs/: get: description: | Returns a list of files and folders in the root folder of the specified workspace group. You must specify the `workspaceGroupID`. parameters: - description: ID of the Stage-enabled workspace group example: 68af2f46-0000-1000-9000-3f6f5365d878 in: path name: workspaceGroupID required: true schema: format: uuid type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/StageObjectMetadata' description: OK "307": description: Temporary Redirect "400": description: Invalid request "401": description: Unauthorized "404": description: Not Found "429": description: Too many requests "500": description: Internal server error summary: Lists files and folders in the root folder. tags: - Stage /v1/stage/{workspaceGroupID}/fs/{path}: delete: description: | Deletes the file or folder at the specified path in a Stage. This endpoint supports both URL-encoded and regular URL paths. Here are some examples of valid requests: - Delete a folder: - /v1/stage/68af2f46-0000-1000-9000-3f6f5365d878/fs/parent_folder/sample_folder/ - /v1/stage/68af2f46-0000-1000-9000-3f6f5365d878/fs/parent_folder%2Fsample_folder%2F - Delete a file: - /v1/stage/68af2f46-0000-1000-9000-3f6f5365d878/fs/parent_folder/sample_file.txt - /v1/stage/68af2f46-0000-1000-9000-3f6f5365d878/fs/parent_folder%2Fsample_file.txt You must specify the `workspaceGroupID` and the folder/file path in the API call. ## Note: To delete a folder, ensure that the path includes a trailing slash. parameters: - description: ID of the Stage-enabled workspace group example: 68af2f46-0000-1000-9000-3f6f5365d878 in: path name: workspaceGroupID required: true schema: format: uuid type: string - description: Path in the Stage to a file or folder to delete examples: file: value: parent_folder/sample_folder/file.json folder: value: parent_folder/sample_folder/ in: path name: path required: true schema: type: string responses: "200": content: application/json: schema: properties: name: description: sample_file.txt type: string path: description: parent_folder/sample_file.txt type: string type: object description: OK "400": description: Invalid request "401": description: Unauthorized "404": description: Not Found "429": description: Too many requests "500": description: Internal server error summary: Deletes a file or folder tags: - Stage get: description: | If the specified path is a folder, the API returns the list of files and folders inside this folder in the Stage. If the specified path is a file, the API call is redirected to a download URL. This endpoint supports both URL-encoded and regular URL paths. Here are some examples of valid requests: - Get a folder: - /v1/stage/68af2f46-0000-1000-9000-3f6f5365d878/fs/parent_folder/sample_folder/ - /v1/stage/68af2f46-0000-1000-9000-3f6f5365d878/fs/parent_folder%2Fsample_folder%2F - Get a file: - /v1/stage/68af2f46-0000-1000-9000-3f6f5365d878/fs/parent_folder/sample_file.txt - /v1/stage/68af2f46-0000-1000-9000-3f6f5365d878/fs/parent_folder%2Fsample_file.txt You must specify the `workspaceGroupID` and the folder/file path in the API call. ## Note: To Get a folder, ensure that the path includes a trailing slash. parameters: - description: ID of the Stage-enabled workspace group example: 68af2f46-0000-1000-9000-3f6f5365d878 in: path name: workspaceGroupID required: true schema: format: uuid type: string - description: Path in the Stage to a file or folder examples: file: value: parent_folder/sample_folder/filename.json folder: value: parent_folder/sample_folder/ in: path name: path required: true schema: type: string - description: If enabled, the API request returns only metadata for the specified file instead of downloading it. This parameter is ignored if the specified path is a folder. in: query name: metadata schema: type: boolean responses: "200": content: application/json: schema: $ref: '#/components/schemas/StageObjectMetadata' description: OK "307": description: Temporary Redirect "400": description: Invalid request "401": description: Unauthorized "404": description: Not Found "429": description: Too many requests "500": description: Internal server error summary: Gets information about a folder or downloads a file tags: - Stage patch: description: | Modifies the path of the existing file or folder in a Stage to the new path specified in the request body. This endpoint supports both URL-encoded and regular URL paths, so both of the following examples are valid requests: - Modify a folder: - /v1/stage/68af2f46-0000-1000-9000-3f6f5365d878/fs/parent_folder/sample_folder/ - /v1/stage/68af2f46-0000-1000-9000-3f6f5365d878/fs/parent_folder%2Fsample_folder%2F - Modify a file: - /v1/stage/68af2f46-0000-1000-9000-3f6f5365d878/fs/parent_folder/sample_file.txt - /v1/stage/68af2f46-0000-1000-9000-3f6f5365d878/fs/parent_folder%2Fsample_file.txt You must specify the `workspaceGroupID` and the folder/file path in the API call. ## Note: To modify the path of a folder, ensure that it includes a trailing slash. parameters: - description: ID of the Stage-enabled workspace group example: 68af2f46-0000-1000-9000-3f6f5365d878 in: path name: workspaceGroupID required: true schema: format: uuid type: string - description: Path in the Stage to modify examples: file: value: parent_folder/sample_folder/file.json folder: value: parent_folder/sample_folder/ in: path name: path required: true schema: type: string requestBody: content: application/json: examples: file: value: newPath: parent_folder/sample_folder/file.json folder: value: newPath: parent_folder/sample_folder/ schema: properties: newPath: description: New path of the file or folder type: string type: object responses: "200": content: application/json: schema: properties: name: description: sample_file.txt type: string path: description: parent_folder/sample_file.txt type: string type: object description: OK "307": description: Temporary Redirect "400": description: Invalid request "401": description: Unauthorized "404": description: Not Found "429": description: Too many requests "500": description: Internal server error summary: Modifies a file or folder in a Stage tags: - Stage put: description: | This endpoint allows you to create a new folder or upload a new file at a specified path within Stage. The behavior depends on the contents of the request body and the format of the path:: - **File Upload:** If the request body contains a file, the file is uploaded to the specified path within the Stage. - **Folder Creation:** If the request body does not contain a file and the path ends with a trailing slash (`/`), a new folder is created at the specified path. - **Empty File Creation:** If the request body does not contain a file and the path does not end with a trailing slash, an empty file is created at the specified path. **Please ensure that the path is correctly formatted according to the desired action. Misformatted paths may lead to unexpected behavior.** This endpoint supports both URL-encoded and regular URL paths. Here are some examples of valid requests: - Create a folder: - /v1/stage/68af2f46-0000-1000-9000-3f6f5365d878/fs/parent_folder/sample_folder/ - /v1/stage/68af2f46-0000-1000-9000-3f6f5365d878/fs/parent_folder%2Fsample_folder%2F - Upload a file: - /v1/stage/68af2f46-0000-1000-9000-3f6f5365d878/fs/parent_folder/sample_folder/file.json - /v1/stage/68af2f46-0000-1000-9000-3f6f5365d878/fs/parent_folder%2Fsample_folder%2Ffile.json You must specify the `workspaceGroupID` and the folder/file path in the API call. parameters: - description: ID of the Stage-enabled workspace group example: 68af2f46-0000-1000-9000-3f6f5365d878 in: path name: workspaceGroupID required: true schema: format: uuid type: string - description: Path in the Stage examples: file: value: parent_folder/sample_folder/file.json folder: value: parent_folder/sample_folder/ in: path name: path required: true schema: type: string requestBody: content: multipart/form-data: schema: properties: file: description: File to upload format: binary type: string type: object responses: "200": content: application/json: schema: properties: name: example: file.json type: string path: example: /parent_folder/sample_folder type: string type: object description: OK "400": description: Invalid request "401": description: Unauthorized "429": description: Too many requests "500": description: Internal server error summary: Creates a new folder or uploads a file tags: - Stage /v1/workspaceGroups: description: The `workspaceGroups` endpoint can be used to manage workspaces. get: description: | Returns a list of all of the workspace groups accessible to the user. Use the `includeTerminated` parameter to get a list of terminated workspace groups. parameters: - description: To include any terminated workspace groups, set to `true` in: query name: includeTerminated schema: type: boolean - $ref: '#/components/parameters/fields' responses: "200": content: application/json: example: - createdAt: "2023-09-18T09:56:56Z" name: demo-workspace-group regionID: 7d6b3a5a-0000-1000-9000-d454af4c785c state: ACTIVE workspaceGroupID: 7d6b3a5a-0000-1000-9000-d454af4c785b schema: items: $ref: '#/components/schemas/WorkspaceGroup' type: array description: OK "400": description: Invalid request "401": description: Unauthorized "429": description: Too many requests "500": description: Internal server error summary: Lists the workspace groups the user can access tags: - Workspace Groups post: description: | Creates a new workspace group for the current user. You must specify the name, region ID, and firewall ranges for the workspace group in the API request body. You may use the admin user password to connect with any workspace of the group. The admin user password can be specified in the request body. If the admin user password is not specified in the API request, a password is generated and returned in the response object. requestBody: content: application/json: schema: $ref: '#/components/schemas/WorkspaceGroupCreate' description: Here's a sample of JSON data sent in the request body to the API. required: true responses: "200": content: application/json: example: workspaceGroupID: 7d6b3a5a-0000-1000-9000-d454af4c785b schema: properties: adminPassword: type: string workspaceGroupID: format: uuid type: string required: - workspaceGroupID type: object description: OK "400": description: Invalid request "401": description: Unauthorized "429": description: Too many requests "500": description: Internal server error summary: Creates a new workspace group tags: - Workspace Groups /v1/workspaceGroups/{workspaceGroupID}: delete: description: | Terminates a workspace group with the specified workspace group ID. You must specify the workspace group ID in the API call. By default, you may only terminate empty workspace groups (a workspace group without workspaces). To terminate a workspace group with active workspaces, use the `force` parameter. parameters: - $ref: '#/components/parameters/workspaceGroupID' - description: To terminate a workspace group even if it has active workspaces, set to `true` in: query name: force schema: type: boolean responses: "200": content: application/json: example: workspaceGroupID: 7d6b3a5a-0000-1000-9000-d454af4c785b schema: properties: workspaceGroupID: format: uuid type: string required: - workspaceGroupID type: object description: OK "400": description: Invalid request "401": description: Unauthorized "404": description: A workspace group with the specified ID was not found "429": description: Too many requests "500": description: Internal server error summary: Terminates a workspace group tags: - Workspace Groups get: description: | Returns information for the specified workspace group ID, in JSON format. You must specify the workspace group ID in the API call. parameters: - $ref: '#/components/parameters/workspaceGroupID' - $ref: '#/components/parameters/fields' responses: "200": content: application/json: example: createdAt: "2023-09-18T09:56:56Z" name: demo-workspace-group regionID: 7d6b3a5a-0000-1000-9000-d454af4c785c state: ACTIVE workspaceGroupID: 7d6b3a5a-0000-1000-9000-d454af4c785b schema: $ref: '#/components/schemas/WorkspaceGroup' description: OK "400": description: Invalid request "401": description: Unauthorized "404": description: A workspace group with the specified ID was not found "429": description: Too many requests "500": description: Internal server error summary: Gets information about a workspace group tags: - Workspace Groups patch: description: | Updates workspace group information for the specified workspace group, including the name, admin password, and firewall ranges. Specify the workspace group's new parameters in the request body. You must specify the workspace group ID in the API call. parameters: - $ref: '#/components/parameters/workspaceGroupID' requestBody: content: application/json: schema: $ref: '#/components/schemas/WorkspaceGroupUpdate' description: Here's a sample of JSON data sent to the API in the request body. required: true responses: "200": content: application/json: example: workspaceGroupID: 7d6b3a5a-0000-1000-9000-d454af4c785b schema: properties: workspaceGroupID: format: uuid type: string required: - workspaceGroupID type: object description: OK "400": description: Invalid request "401": description: Unauthorized "404": description: A workspace group with the specified ID was not found "429": description: Too many requests "500": description: Internal server error summary: Updates a workspace group tags: - Workspace Groups /v1/workspaceGroups/{workspaceGroupID}/privateConnections: get: description: | Returns private connection information for the specified workspace group ID, in JSON format. You must specify the workspace group ID in the API call. parameters: - $ref: '#/components/parameters/workspaceGroupID' - $ref: '#/components/parameters/fields' responses: "200": content: application/json: schema: items: $ref: '#/components/schemas/PrivateConnection' type: array description: OK "400": description: Invalid request "401": description: Unauthorized "404": description: A workspace group with the specified ID was not found "429": description: Too many requests "500": description: Internal server error summary: Gets private connection information for a workspace group tags: - Workspace Groups /v1/workspaceGroups/{workspaceGroupID}/storage/DR/failback: patch: description: You must specify the workspace group ID of the group in the standby (secondary) region from which you are triggering the failback. parameters: - $ref: '#/components/parameters/workspaceGroupID' responses: "200": description: OK "400": description: Invalid request "401": description: Unauthorized "429": description: Too many requests "500": description: Internal server error summary: Starts failback to the primary region tags: - Workspace Groups /v1/workspaceGroups/{workspaceGroupID}/storage/DR/failover: patch: description: You must specify the workspace group ID of the group in the inactive (primary) region from which you are triggering the failover. parameters: - $ref: '#/components/parameters/workspaceGroupID' responses: "200": description: OK "400": description: Invalid request "401": description: Unauthorized "429": description: Too many requests "500": description: Internal server error summary: Starts failover to the secondary region tags: - Workspace Groups /v1/workspaceGroups/{workspaceGroupID}/storage/DR/regions: get: description: Returns a list of regions with regions IDs in JSON format. You must specify the workspace group ID of the group you are setting up for disaster recovery. parameters: - $ref: '#/components/parameters/workspaceGroupID' - $ref: '#/components/parameters/fields' responses: "200": content: application/json: schema: items: $ref: '#/components/schemas/Region' type: array description: OK "400": description: Invalid request "401": description: Unauthorized "429": description: Too many requests "500": description: Internal server error summary: Gets information about which regions you can setup as a disaster recovery backup tags: - Workspace Groups /v1/workspaceGroups/{workspaceGroupID}/storage/DR/setup: post: description: You must specify the workspace group ID of the group you are setting up for disaster recovery and the region ID of your secondary region. parameters: - $ref: '#/components/parameters/workspaceGroupID' requestBody: content: application/json: schema: $ref: '#/components/schemas/StorageDRSetup' description: Here's a sample of JSON data sent in the request body to the API. required: true responses: "200": description: OK "400": description: Invalid request "401": description: Unauthorized "429": description: Too many requests "500": description: Internal server error summary: Sets up Storage DR for the workspace group. Backup region and selected databases to be replicated are provided as part of the request. tags: - Workspace Groups /v1/workspaceGroups/{workspaceGroupID}/storage/DR/startPreProvision: patch: description: You must specify the workspace group ID of the group in the primary region from which you are requesting to start pre-provision. parameters: - $ref: '#/components/parameters/workspaceGroupID' responses: "200": description: OK "400": description: Invalid request "401": description: Unauthorized "429": description: Too many requests "500": description: Internal server error summary: Start pre-provisioning from primary region tags: - Workspace Groups /v1/workspaceGroups/{workspaceGroupID}/storage/DR/status: get: description: Returns the replication status of each database and the status of the latest Storage DR operation (Failover, Failback, etc.). You must specify the workspace group ID of the group that you are requesting status information for. parameters: - $ref: '#/components/parameters/workspaceGroupID' responses: "200": content: application/json: schema: $ref: '#/components/schemas/StorageDRStatus' description: OK "400": description: Invalid request "401": description: Unauthorized "429": description: Too many requests "500": description: Internal server error summary: Gets information about the storage DR status of the workspace group tags: - Workspace Groups /v1/workspaceGroups/{workspaceGroupID}/storage/DR/stopPreProvision: patch: description: You must specify the workspace group ID of the group in the primary region from which you are requesting to stop pre-provision. parameters: - $ref: '#/components/parameters/workspaceGroupID' responses: "200": description: OK "400": description: Invalid request "401": description: Unauthorized "429": description: Too many requests "500": description: Internal server error summary: Stops pre-provisioning from primary region tags: - Workspace Groups /v1/workspaces: description: The `workspaces` endpoint can be used to manage workspaces. get: description: | Returns a list of all of the workspaces accessible to the user in the specified workspace group. You must specify the workspace group ID in the API call to list the workspaces in the group. Use the `includeTerminated` parameter to list the terminated workspaces. parameters: - description: ID of the workspace group in: query name: workspaceGroupID required: true schema: format: uuid type: string - description: To include any terminated workspaces, set to `true` in: query name: includeTerminated schema: type: boolean - $ref: '#/components/parameters/fields' responses: "200": content: application/json: example: - createdAt: "2023-09-18T09:56:56Z" endpoint: 192.168.224.3:30342 name: demo-workspace size: S-00 state: ACTIVE workspaceGroupID: 7d6b3a5a-0000-1000-9000-d454af4c785b workspaceID: 7d6b3a5a-0000-1000-9000-d454af4c785b schema: items: $ref: '#/components/schemas/Workspace' type: array description: OK "400": description: Invalid request "401": description: Unauthorized "404": description: A workspace group with the specified ID was not found "429": description: Too many requests "500": description: Internal server error summary: Lists the workspaces the user can access tags: - Workspaces post: description: |- Creates a new workspace for the current user in the specified workspace group. You must specify the name of the workspace and the workspace group ID in the request body. Once a workspace is created, you can neither change its name nor its workspace group. See [Workspaces](https://docs.singlestore.com/managed-service/en/reference/management-api.html#workspaces-729524) for more information. This API call does not take any request parameters. requestBody: content: application/json: schema: $ref: '#/components/schemas/WorkspaceCreate' description: Here's a sample of JSON data sent in the request body to the API. required: true responses: "200": content: application/json: example: workspaceID: 7d6b3a5a-0000-1000-9000-d454af4c785b schema: properties: workspaceID: format: uuid type: string required: - workspaceID type: object description: OK "400": description: Invalid request "401": description: Unauthorized "429": description: Too many requests "500": description: Internal server error summary: Creates a new workspace tags: - Workspaces /v1/workspaces/{workspaceID}: delete: description: | Terminates a workspace with the specified workspace ID. You must specify the workspace ID in the API call. All the databases attached to the workspace are detached when the workspace is terminated. parameters: - $ref: '#/components/parameters/workspaceID' responses: "200": content: application/json: example: workspaceID: 7d6b3a5a-0000-1000-9000-d454af4c785b schema: properties: workspaceID: format: uuid type: string required: - workspaceID type: object description: OK "400": description: Invalid request "401": description: Unauthorized "404": description: A workspace with the specified ID was not found "429": description: Too many requests "500": description: Internal server error summary: Terminates a workspace tags: - Workspaces get: description: Returns workspace information for the specified workspace ID, in JSON format. You must specify the workspace ID in the API call. parameters: - $ref: '#/components/parameters/workspaceID' - $ref: '#/components/parameters/fields' responses: "200": content: application/json: example: createdAt: "2023-09-18T09:56:56Z" endpoint: 192.168.224.3:30342 name: demo-workspace size: S-00 state: ACTIVE workspaceGroupID: 7d6a4a5a-0000-1000-9000-d454af4c785b workspaceID: 7d6b3a5a-0000-1000-9000-d454af4c785b schema: $ref: '#/components/schemas/Workspace' description: OK "400": description: Invalid request "401": description: Unauthorized "404": description: A workspace with the specified ID was not found "429": description: Too many requests "500": description: Internal server error summary: Gets information about a workspace tags: - Workspaces patch: description: | Updates workspace information for the specified workspace, including the size. Specify the workspace's new parameters in the request body. You must specify the workspace ID in the API call. parameters: - $ref: '#/components/parameters/workspaceID' requestBody: content: application/json: schema: $ref: '#/components/schemas/WorkspaceUpdate' description: Here's a sample of JSON data sent to the API in the request body. required: true responses: "200": content: application/json: example: workspaceID: 7d6b3a5a-0000-1000-9000-d454af4c785b schema: properties: workspaceID: format: uuid type: string required: - workspaceID type: object description: OK "400": description: Invalid request "401": description: Unauthorized "404": description: A workspace with the specified ID was not found "409": description: Request conflict "429": description: Too many requests "500": description: Internal server error summary: Updates information about a workspace tags: - Workspaces /v1/workspaces/{workspaceID}/privateConnections: get: description: Returns private connection information for the specified workspace ID, in JSON format. You must specify the workspace ID in the API call. parameters: - $ref: '#/components/parameters/workspaceID' - $ref: '#/components/parameters/fields' responses: "200": content: application/json: schema: items: $ref: '#/components/schemas/PrivateConnection' type: array description: OK "400": description: Invalid request "401": description: Unauthorized "404": description: A workspace with the specified ID was not found "429": description: Too many requests "500": description: Internal server error summary: Gets private connection information for a workspace tags: - Workspaces /v1/workspaces/{workspaceID}/privateConnections/kai: get: description: Returns the information needed to create private connection to SingleStore Kai. parameters: - in: path name: workspaceID required: true schema: format: uuid type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/PrivateConnectionKaiInfo' description: OK "400": description: Invalid request "401": description: Unauthorized "404": description: A private connection with the specified ID was not found "429": description: Too many requests "500": description: Internal server error summary: Gets information to create private connection to SingleStore Kai for a workspace tags: - Private Connections - Workspaces /v1/workspaces/{workspaceID}/privateConnections/outboundAllowList: get: description: Returns the account ID which must be allowed for outbound connections. parameters: - $ref: '#/components/parameters/workspaceID' responses: "200": content: application/json: schema: items: $ref: '#/components/schemas/PrivateConnectionOutboundAllowList' type: array description: OK "400": description: Invalid request "401": description: Unauthorized "404": description: A workspace with the specified ID was not found "429": description: Too many requests "500": description: Internal server error summary: Gets the outbound allow list for a workspace tags: - Workspaces /v1/workspaces/{workspaceID}/resume: post: description: | Resumes a workspace with the specified workspace ID. You must specify the workspace ID in the API call. parameters: - $ref: '#/components/parameters/workspaceID' requestBody: content: application/json: schema: $ref: '#/components/schemas/WorkspaceResume' description: Here's a sample of JSON data sent in the request body to the API. responses: "200": content: application/json: example: workspaceID: 7d6b3a5a-0000-1000-9000-d454af4c785b schema: properties: workspaceID: format: uuid type: string required: - workspaceID type: object description: OK "400": description: Invalid request "401": description: Unauthorized "404": description: A workspace with the specified ID was not found "429": description: Too many requests "500": description: Internal server error summary: Resumes a workspace tags: - Workspaces /v1/workspaces/{workspaceID}/storage/DR/failback: patch: description: You must specify the workspace ID of a workspace in the standby (secondary) region from which you are triggering the failback. parameters: - $ref: '#/components/parameters/workspaceID' responses: "200": description: OK "400": description: Invalid request "401": description: Unauthorized "429": description: Too many requests "500": description: Internal server error summary: Starts failback to the primary region tags: - Workspaces /v1/workspaces/{workspaceID}/storage/DR/failover: patch: description: You must specify the workspace ID of a workspace in the group in the inactive (primary) region from which you are triggering the failover. parameters: - $ref: '#/components/parameters/workspaceID' responses: "200": description: OK "400": description: Invalid request "401": description: Unauthorized "429": description: Too many requests "500": description: Internal server error summary: Starts failover to the secondary region tags: - Workspaces /v1/workspaces/{workspaceID}/storage/DR/regions: get: description: Returns a list of regions with regions IDs in JSON format. You must specify the workspace ID of a workspace in the group you are setting up for disaster recovery. parameters: - $ref: '#/components/parameters/workspaceID' - $ref: '#/components/parameters/fields' responses: "200": content: application/json: schema: items: $ref: '#/components/schemas/Region' type: array description: OK "400": description: Invalid request "401": description: Unauthorized "429": description: Too many requests "500": description: Internal server error summary: Gets information about which regions you can setup as a disaster recovery backup tags: - Workspaces /v1/workspaces/{workspaceID}/storage/DR/setup: post: description: You must specify the workspace ID of a workspace in the group you are setting up for disaster recovery and the region ID of your secondary region. parameters: - $ref: '#/components/parameters/workspaceID' requestBody: content: application/json: schema: $ref: '#/components/schemas/StorageDRSetup' description: Here's a sample of JSON data sent in the request body to the API. required: true responses: "200": description: OK "400": description: Invalid request "401": description: Unauthorized "429": description: Too many requests "500": description: Internal server error summary: Sets up Storage DR for the workspace group of the provided workspace. Backup region and selected databases to be replicated are provided as part of the request. tags: - Workspaces /v1/workspaces/{workspaceID}/storage/DR/startPreProvision: patch: description: You must specify the workspace ID of a workspace in the primary region from which you are requesting to start pre-provision. parameters: - $ref: '#/components/parameters/workspaceID' responses: "200": description: OK "400": description: Invalid request "401": description: Unauthorized "429": description: Too many requests "500": description: Internal server error summary: Start pre-provisioning from primary region tags: - Workspaces /v1/workspaces/{workspaceID}/storage/DR/status: get: description: Returns the replication status of each database and the status of the latest Storage DR operation (Failover, Failback, etc.). You must specify the workspace ID of a workspace in the group for which you are requesting the status information. parameters: - $ref: '#/components/parameters/workspaceID' responses: "200": content: application/json: schema: $ref: '#/components/schemas/StorageDRStatus' description: OK "400": description: Invalid request "401": description: Unauthorized "429": description: Too many requests "500": description: Internal server error summary: Gets information about the storage DR status of the group in which the provided workspace belongs to tags: - Workspaces /v1/workspaces/{workspaceID}/storage/DR/stopPreProvision: patch: description: You must specify the workspace ID of a workspace in the primary region from which you are requesting to stop pre-provision. parameters: - $ref: '#/components/parameters/workspaceID' responses: "200": description: OK "400": description: Invalid request "401": description: Unauthorized "429": description: Too many requests "500": description: Internal server error summary: Stops pre-provisioning from primary region tags: - Workspaces /v1/workspaces/{workspaceID}/suspend: post: description: Suspends a workspace with the specified workspace ID. You must specify the workspace ID in the API call. parameters: - $ref: '#/components/parameters/workspaceID' responses: "200": content: application/json: example: workspaceID: 7d6b3a5a-0000-1000-9000-d454af4c785b schema: properties: workspaceID: format: uuid type: string required: - workspaceID type: object description: OK "400": description: Invalid request "401": description: Unauthorized "404": description: A workspace with the specified ID was not found "429": description: Too many requests "500": description: Internal server error summary: Suspends a workspace tags: - Workspaces /v2/organizations/{organizationID}/workspaceGroups/{workspaceGroupID}/metrics: get: description: Returns metrics for the specified workspace group ID, in [OpenMetrics](https://github.com/OpenObservability/OpenMetrics/blob/main/specification/OpenMetrics.md) compatible format. You must specify the organization ID and workspace group ID in the API call. To fetch the organization id use the /v1/organizations/current endpoint. parameters: - $ref: '#/components/parameters/organizationID' - $ref: '#/components/parameters/workspaceGroupID' responses: "200": content: text/plain: example: |- # TYPE singlestoredb_cloud_threads_running gauge # singlestoredb_cloud_threads_running{extractor="monitoring-customer-prd/memsql-exporter",node="node-3337afc7-443e-4126-b784-413903527186-aggregator-0",role="CA",workspace_group_id="3337afc7-443e-4126-b784-413903527186",workspace_name="singlestore-central"} 1 schema: type: string description: OK "400": description: Invalid request "401": description: Unauthorized "429": description: Too many requests "500": description: Internal server error summary: Gets metrics for a workspace group tags: - Metrics security: - ApiKeyAuth: [] servers: - url: https://api.singlestore.com